R 将大型数据集拆分为组
我的数据集有2列和300000行,其中包含1800个组,我想按这些组拆分数据集并cbind它们 这些组可能有不同的长度 范例R 将大型数据集拆分为组,r,R,我的数据集有2列和300000行,其中包含1800个组,我想按这些组拆分数据集并cbind它们 这些组可能有不同的长度 范例 X<-data.frame(Dev=c("a","b","a","d","a"), value=(1,2,3,4,7)) Split<-split(X,f=X$Dev) X从整个列表中获取最大行数,并为长度较短的列表追加NA n <- 1:max(sap
X<-data.frame(Dev=c("a","b","a","d","a"), value=(1,2,3,4,7))
Split<-split(X,f=X$Dev)
X从整个列表中获取最大行数,并为长度较短的列表追加NA
n <- 1:max(sapply(Split, nrow))
result <- do.call(cbind, lapply(Split, `[`, n, ))
result
# a.Dev a.value b.Dev b.value d.Dev d.value
#1 a 1 b 2 d 4
#3 a 3 <NA> NA <NA> NA
#5 a 7 <NA> NA <NA> NA
n如果您的预期结果是一个数据帧,那么您可以使用pivot\u wider()轻松实现这一点。
如果您的真实数据帧有两列以上,您可以省略行id
部分。有关更多示例,请参见。非常感谢,这也是working@DhanuLukalapu很高兴得到帮助!点击左边的复选标记,您可以随意接受其中一个最适合您的答案。每个帖子只能接受一个答案。提及-
X<-data.frame(Dev=c("a","b","a","d","a"), value=c(1,2,3,4,7))
Split<-split(X,f=X$Dev)
library(tidyr)
X %>%
rowid_to_column() %>%
pivot_wider(names_from = Dev, values_from = value) %>%
select((-rowid))