首页 文章

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

提问于
浏览
2

这是我向社区提出的第一个问题,我希望通过在这里与有经验的人交流来解决我的疑问 . 我有三个组,每个组包含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 回答

  • 3

    将组数据集放入 list 后,我们可以使用 transpose 来自 purrr

    library(purrr)
    lst <- transpose(list(group1, group2, group3))
    group1New <- lst[[1]]
    group2New <- lst[[2]]
    group3New <- lst[[3]]
    

相关问题