使用dplyr中的group_by函数来操作data.frame对象集

时间:2016-07-17 14:39:53

标签: r dataframe dplyr data-manipulation

这是我向社区提出的第一个问题,我希望通过在这里与有经验的人交流来解决我的疑问。 我有三个组,每个组包含3个不同的data.frame对象,具有不同的长度和维度。我希望通过特定的data.frame对象对它们进行某种操作。我认为来自dply包的group_by可以完成这个任务,但是我不确定这个,甚至我还不完全知道使用dplyr包,所以请在我的问题上给你贡献。谢谢大家。

这是一个简单的可重复的例子,可以清楚地表达我的问题:

模拟数据

group1 <- list(a1 <- iris[1:10,],
               b1 <- airquality[1:20,],
               c1 <- cars[1:20,])

group2 <- list(a2 <- iris[15:35,],
               b2 <- airquality[10:25,],
               c2 <- cars[15:30,])
group3 <- list(a3 <- iris[40:60,],
               b3 <- airquality[30:50,],
               c3 <- cars[25:45,])

想象group1,group2,group3被放置在R内存中的三个不同目录中,所以我想同时访问每个组,并按特定的data.frame对象对它们进行分组。所以这是我的预期输出:

期望的输出:

group_a <- list(a1, a2, a3)
group_b <- list(b1, b2, b3)
group_c <- list(c1, c2, c3)

要清楚,我可重复的示例是基于我实现的函数结果进行模拟的,每次执行我的函数时它都会将结果作为列表返回并存储在不同的R目录中,这就是我需要访问的原因每组结果同一时间,并按照我的预期分组。任何有经验的成员能否就我所述的问题如何实现我的预期结果?感谢所有在这里提供帮助的人。

最佳

杰夫

1 个答案:

答案 0 :(得分:3)

将群组数据集放入transpose

后,我们可以使用purrr中的list
library(purrr)
lst <- transpose(list(group1, group2, group3))
group1New <- lst[[1]]
group2New <- lst[[2]]
group3New <- lst[[3]]