我在聚合时遇到了 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)
更新:
归档为错误:#4839。(Arun 的修复现在在 v1.8.9 中)