我有一个 2.5M x 13 的矩阵,我尝试通过 ID 变量对其进行聚合。起初我尝试使用 ddply,但我的内存力爆炸了。之后我尝试使用 data.table,它的工作速度要快得多:
data <- as.data.table(data)
key(data) <- "ID"
agg<-mydata[,mutate(.SD,
start = min(Date))
, by = ID]
但是,现在没有内存问题,到目前为止,在具有 4.0GB RAM 的 Intel i5 2.50GHz 上运行它需要大约 4 个小时以上。操作系统是windows 7,所以没有并行计算。
我究竟做错了什么?
最佳答案
你不需要mutate
,只需使用 start := min(Date)
.我相信这应该会加快很多速度。
agg <- mydata[, start := min(Date), by = ID]
关于r - 为什么按组 mutate() 需要永远?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24715221/