【发布时间】:2013-08-19 13:15:25
【问题描述】:
我在聚合时遇到了 data.table 的以下问题,使用 .SD 并指定 lapply 并明确说明来自 lapply 的 FUN 参数。 这是出乎意料的行为还是我只是错过了一些东西。为什么我不能在 lapply 中明确说明 FUN? 下面是一个可重现的例子。
require(data.table)
dt <- as.data.table(iris)
dt$Sepal.Length[sample(1:nrow(dt), 10)] <- NA
dt[, lapply(.SD, function(x) sum(!is.na(x), na.rm=TRUE)), by = Species]
Species Sepal.Length Sepal.Width Petal.Length Petal.Width
1: setosa 47 50 50 50
2: versicolor 46 50 50 50
3: virginica 47 50 50 50
dt[, lapply(.SD, FUN=function(x) sum(!is.na(x), na.rm=TRUE)), by = Species]
Error in ..FUN(FUN = Sepal.Length) :
unused argument(s) (FUN = Sepal.Length)
更新:
Filed as bug: #4839。 (Arun 的修复现在在 v1.8.9 中)
【问题讨论】:
标签: r data.table lapply