R data.table将函数应用于两列的总和

时间:2015-04-29 04:24:34

标签: r data.table apply

我有一个data.table,我想在其列上应用一个函数。通常这样做是这样的:

dt[, lapply(.SD, func), .SDcols = c("col1", "col2")]

这会在这两列上应用函数func。但是,如果我想将它应用于这两列的总和呢?像

这样的东西
dt[, lapply(.SD, func), .SDcols = "col1 + col2"]

显然不起作用。

您可以将此概括为将func应用于另一个函数(在本例中为sum)的结果,该函数将列作为参数。我知道我可以创建另一个包含第一个函数结果的列,但有没有解决方法?

1 个答案:

答案 0 :(得分:2)

要添加列,请尝试

dt[, func(Reduce(`+`,.SD)), .SDcols = c("col1","col2")]

这也适用于两列以上,在应用func之前将它们全部添加在一起。