【发布时间】:2015-06-19 16:13:21
【问题描述】:
我正在尝试将多个函数应用于data.table 的多个列。示例:
DT <- data.table("a"=1:5,
"b"=2:6,
"c"=3:7)
假设我想获得a 和b 列的平均值和中位数。
这有效:
stats <- DT[,.(mean_a=mean(a),
median_a=median(a),
mean_b=mean(b),
median_b=median(b))]
但它太重复了。有没有使用.SDcols 和lapply 实现类似结果的好方法?
【问题讨论】:
-
为什么不把函数放到自定义函数中调用呢?
-
或者,也许看看“data.table”的开发版本,
dcast可以同时处理多个列聚合。 -
这可能更容易使用
dplyrsummarise_each(DT,funs(mean, median), 1:2) -
实现
colwise()会更好。
标签: r data.table