【发布时间】:2016-05-13 07:00:15
【问题描述】:
R 中的数据表具有三个(主要)组件:DT[i, j, by]。
我正在使用by 功能创建我的data.table DT 的子集,该功能将我的数据子集返回到j,在那里我可以对它们执行操作。在每个新子集中,我可以在j 中指定要使用的列。
来自the documentation(我略有改动):
DT[, lapply(.SD, mean), by=., .SDcols=...]- 将乐趣(=mean)应用于所有人 .SDcols 中指定的列,同时按指定的列分组 由。
这是很棒的功能!
我想知道是否可以为j 中使用的函数提供参数 - 在这种情况下:mean?
函数mean可以接受以下输入:
mean(x, trim = 0, na.rm = FALSE, ...)
如何在j 部分AND 中使用mean,例如na.rm = TRUE?
顺便说一句,我确实遇到了关于Reduce 的类似问题
函数,它将函数递归地应用于数据集。我发现的最佳想法是创建要应用的函数的自定义版本,例如:
my_mean <- function(Data) {
output <- mean(Data, na.rm = TRUE)
return(output)
}
然后使用上面的示例,我将执行:
DT[, lapply(.SD, my_mean), by=., .SDcols=...]
【问题讨论】:
标签: r arguments data.table