是否可以在同一语句中更新data.table的1列以上?
像
这样的东西dt[,onecol:=1 anothercol:=2]
我见过他们做过的一些例子
dt[,c("onecol","anothercol"):=1]
但我不知道如何为每列分配不同的公式
答案 0 :(得分:9)
是的,自1.8.4版以来就可以实现这一点:
library(data.table)
dt <- data.table(a=1:4, b=4:1)
dt[,c("a", "b") := list(min(a), max(b))]
# dt
# a b
# 1: 1 4
# 2: 1 4
# 3: 1 4
# 4: 1 4
或者以更易读的方式做同样的事情:
dt <- data.table(a=1:4, b=4:1)
dt[,`:=`(a = min(a),
b = max(a))]
dt
# a b
# 1: 1 4
# 2: 1 4
# 3: 1 4
# 4: 1 4
在the current data.table NEWS file搜索“多个LHS”,看看这也适用于by=
参数。