循环遍历 r 中的 groupby 列并应用函数

Chippycentra

大家好,我需要帮助才能按列组循环遍历数据框。

这是数据框的示例

  Group       Species Values
1    G1 Cattus_cattus   Val1
2    G1 Cattus_cattus   Val2
3    G1 Cattus_cattus   Val3
4    G2   Canis_lupus   Val4
5    G2   Canis_lupus   Val5
6    G3  Griseus_lupa   Val6
7    G4  Griseus_lupa   Val7

我想:

1 - 走过去 c(df$Group,df$Species)

2 - 将其df$Values存储为vector

3 - 将该向量放入一个名为的函数中 afunction

4 -打开一个treefileanotherfunction其中它的名字是df$Group name

5 - 获取该output value函数的 并将其添加到new_column

所以这里是代码应该做什么的一个例子:

第一组是G1,Cattus_cattus

  Group       Species Values
1    G1 Cattus_cattus   Val1
2    G1 Cattus_cattus   Val2
3    G1 Cattus_cattus   Val3

然后我打开treefiletreefile <- anotherfunction(G1)

然后我生成输出值,如 output_value<-afunction(treefile,c("Val1","Val2","Val3))

那么 output_value = 30

所以我将 30 添加到 df 中:

  Group       Species Values new_column
1    G1 Cattus_cattus   Val1 30
2    G1 Cattus_cattus   Val2 30
3    G1 Cattus_cattus   Val3 30

如果组中只有一行,那么我什么都不做并添加一个 NA。

请注意,当然它是一个不存在的函数,因此您无法重现该示例。

我们应该得到类似的东西(这里的new_column值是随机的)。

  Group       Species Values new_column
1    G1 Cattus_cattus   Val1 30
2    G1 Cattus_cattus   Val2 30
3    G1 Cattus_cattus   Val3 30
4    G2   Canis_lupus   Val4 21
5    G2   Canis_lupus   Val5 21
6    G3  Griseus_lupa   Val6 NA
7    G4  Griseus_lupa   Val7 NA

有人有想法吗?到目前为止,我知道如何使用 for 循环遍历数据帧,但在这里我不知道如何处理由 2 列组成的组。

数据

structure(list(Group = structure(c(1L, 1L, 1L, 2L, 2L, 3L, 4L
), .Label = c("G1", "G2", "G3", "G4"), class = "factor"), Species = structure(c(2L, 
2L, 2L, 1L, 1L, 3L, 3L), .Label = c("Canis_lupus", "Cattus_cattus", 
"Griseus_lupa"), class = "factor"), Values = structure(1:7, .Label = c("Val1", 
"Val2", "Val3", "Val4", "Val5", "Val6", "Val7"), class = "factor")), class = "data.frame", row.names = c(NA, 
-7L))
罗纳克·沙阿

你可以尝试这样的事情:

library(dplyr)
library(purrr)

df %>%
  group_by(Group) %>%
  summarise(treefile = anotherfunction(first(Group)), 
            Values = list(Values)) %>%
  mutate(new_column = map2_dbl(treefile, Values, afunction)) 

这将为您提供一个汇总的数据框。要获得相同数量的行,您可以left_join使用dfby Group

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用于循环遍历R中的列

如何编写for循环以遍历R中的列

循环遍历 R 中的特定列时 for 循环出错

在R中的数据框中循环遍历多列

R循环遍历lm函数中的自变量

循环遍历data.table R中的列

R中的for循环:如何应用定义的函数来循环R中的行和列?

在r中循环遍历字符串

遍历两个匹配列的表(矩阵)并在R中应用函数

如何遍历 R 中的列并根据列名应用不同的函数

循环遍历文件并在 Python 中应用函数

循环遍历Dataframe中的列以在R中构建重复测量线性模型lme

循环遍历数据框的行并将其用作r中的函数输入

循环遍历特定的列数据,并将结果添加为R中的新列

遍历列[R]时如何避免for循环

在函数中循环遍历因子变量的级别

创建循环遍历数据框中列的函数

如果/然后以 R 中的列值为条件替换循环遍历行的值

如何在 R 中循环遍历带有列表的数据框列?

循环遍历 Pandas 中的分组列

循环遍历excel表格中的特定列

循环遍历python中的空列

使用 groupby 在多个键上聚合 R 中不同函数的多个列:R 中的命名聚合

如何遍历目录以在没有循环的情况下使用 R 中的应用系列处理光栅文件

如何循环遍历 R 中的虚拟数据以使用示例函数随机替换随机数量的值 NA?

在 Pyspark 中循环 GroupBy

使用groupby条件遍历Pandas DataFrame中的列

循环遍历数据框列表并更改 R 中的列名

如何循环遍历R中的csv单元格?