是否可以在同一语句中更新超过 1 列的 data.table?
就像是
dt[,onecol:=1 anothercol:=2]
我看过一些他们做的例子
dt[,c("onecol","anothercol"):=1]
但我不知道如何为每一列分配不同的公式
是否可以在同一语句中更新超过 1 列的 data.table?
就像是
dt[,onecol:=1 anothercol:=2]
我看过一些他们做的例子
dt[,c("onecol","anothercol"):=1]
但我不知道如何为每一列分配不同的公式
是的,从 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
在当前 data.table NEWS 文件中搜索“Multiple LHS”以查看这也适用于by=
参数。