假设我有以下数据表:
require(data.table)
dt <- data.table(a = LETTERS[c(1:4)], b = LETTERS[10:13])
即dt
是
a b
1: A J
2: B K
3: C L
4: D M
我想添加一列merge
,所以dt
变成这样:
a b merge
1: A J A J
2: B K B K
3: C L C L
4: D M D M
这是paste
应用于当前行向量的简单函数(在本例中为)。现在,我当然可以
dt[, merge := paste(a, b)]
但是,假设我不预先知道各列-我只想使用ALL列值作为参数。在这种情况下,我将如何调用我的函数?
您可以尝试:
dt[, merge:=do.call(paste,.SD)]
dt
# a b merge
#1: A J A J
#2: B K B K
#3: C L C L
#4: D M D M
或者您可以使用Reduce
代替do.call
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句