【问题标题】:using group_by function from dplyr to manipulate set of data.frame object使用 dplyr 中的 group_by 函数来操作一组 data.frame 对象
【发布时间】:2016-11-20 05:12:15
【问题描述】:

这是我向这个社区提出的第一个问题,我希望通过在这里与经验丰富的人交流来解决我的疑问。 我有三个组,每个组包含 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 目录中,这就是为什么我需要访问每组结果同时,按照我的预期对它们进行分组。任何有经验的成员都可以就我所说的问题给出一些想法吗?我感谢所有在这里尝试提供帮助的人。

最好的

杰夫

【问题讨论】:

    标签: r dataframe dplyr data-manipulation


    【解决方案1】:

    将组数据集放在list中后,我们可以使用purrr中的transpose

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

    【讨论】:

    • @user88911 你不能使用?list.files指定路径或使用?dir从不同的目录读取这些文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    • 2016-11-26
    • 2015-03-18
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多