r - 为什么按组 mutate() 需要永远?

标签 r aggregate data.table

我有一个 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/

相关文章:

r - 在ggplot2中调整图例标题的位置和字体大小

r - 如何使用dplyr以新列名作为字符串重命名选定的列

domain-driven-design - DDD : Aggregate Roots

c# - 有没有一种简单的方法可以通过非交换操作进行并行聚合?

r - 如何计算每个类别中的非零值

r - 使用代码范围转换 data.table

r - 查找特定日期属于哪个季节

algorithm - R 结构中的节数

javascript - 聚合组多个_id和访问权限

r - fread(data.table)选择列,如果未找到列则抛出错误