7

.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 の修正が行われています)

4

1 に答える 1