首页 > 解决方案 > 将大型数据集拆分为组

问题描述

我的数据集有 2 列和 300000 行,其中包含 1800 个组,我想按这些组拆分数据集并将它们绑定。

这些组可能有不同的长度。

例子

X<-data.frame(Dev=c("a","b","a","d","a"), value=(1,2,3,4,7))
Split<-split(X,f=X$Dev)

然后我必须 cbind 这些列表。

由于我有庞大的数据集,我无法从列表中提取每个列表。由于每个都有不同的长度,所以不允许直接使用 function cbind(Split)

请帮我解决这个问题。

标签: r

解决方案


如果您的预期结果是一个数据框,您可以轻松地做到这一点pivot_wider()

library(tidyr)

X %>% 
    rowid_to_column() %>%  
    pivot_wider(names_from = Dev, values_from = value) %>% 
    select((-rowid))

如果您的真实数据框有两列以上,您可以省略该row_id部分。有关更多示例,请参阅文档


推荐阅读