我正在尝试聚合数据框,但出现了一个我不理解的错误。 我有一个名为M15的数据帧,其中包含200k +记录的33个变量。 我无法使用可以与社区共享的数据复制此错误。
M15<-M15backup[c(600:700),]
# setting the fields to roll up
aggField<-c('Location','EEStatus')
# group by rest of fields
byField<-setdiff(x=colnames(M15),y=aggField)
# example uses built in function, my production code uses a custom
M15.2<-aggregate(x=M15[aggField],
by=M15[byField],
FUN=length
)
如果我调整第一行中的600:700,我可以让脚本在数据框的小块上运行,但是如果我对整个数据框运行,就会出现以下形式的错误:
Error in `[[<-.data.frame`(`*tmp*`, len + i, value = c("All Locations", :
replacement has 341 rows, data has 394
有人能解释一下这个错误是什么意思,或者提出处理它的方法吗?
aggregate
函数中的变量x
不能有两个列。你需要将它们合并为一个向量。当行数很多时,aggregate
函数也会非常慢。建议使用data.table
或SQL数据库。 - nograpes