R:由另一个函数调用的函数的参数(dcast.data.table)

时间:2016-05-05 13:41:28

标签: r nested data.table

我正在使用函数dcast.data.table,它将一个汇总函数作为参数,例如sum或mean。我的数据包含条目“NA”,我想要忽略,所以我想添加na.rm作为均值的参数。我可以使用什么语法?

以下是我能成功完成的事情:

> library("data.table")
> library("reshape2")
> DT = data.table(x=rep(c("a","b"),each=5), y=c(1,2), v=c(1:7,NA,NA)) # created as an example
# tabulate the mean value of v for each x-y combination:
> dcast.data.table(DT, x~y,fun = mean, value.var = 'v')
   x  1  2
1: a  3  3
2: b NA NA

我想将参数na.rm传递给dcast.data.table中使用的函数mean,有没有办法做到这一点?

1 个答案:

答案 0 :(得分:-1)

您可以通过这种方式封装:function(x){mean(x, na.rm=T)}

这样,您的代码就会变成:

library("data.table")
library("reshape2")
DT = data.table(x=rep(c("a","b"),each=5), y=c(1,2), v=c(1:7,NA,NA))
myMean = function(x){mean(x, na.rm=T)}
dcast.data.table(DT, x~y,fun = myMean, value.var = 'v')

希望有所帮助