.SD を使用して集計し、lapply からの FUN 引数を明示的に指定して lapply を指定すると、data.table で次の問題が発生しました。これは予期しない動作ですか、それとも何かが足りないだけですか。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)
アップデート:
バグとして報告: #4839。(現在、v1.8.9 で Arun の修正が行われています)