11
多列是否有可能在同一个语句更新data.table超过1列?更新的data.table
喜欢的东西
dt[,onecol:=1 anothercol:=2]
我见过一些例子,他们做
dt[,c("onecol","anothercol"):=1]
,但我不知道如何不同的公式分配给每一列
多列是否有可能在同一个语句更新data.table超过1列?更新的data.table
喜欢的东西
dt[,onecol:=1 anothercol:=2]
我见过一些例子,他们做
dt[,c("onecol","anothercol"):=1]
,但我不知道如何不同的公式分配给每一列
是的,这
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
:自1.8.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=
参数工作。
FWIW,在'?“:=”'帮助页是有点过时它什么可以用'做说明:='。它的“实施例”部分不包括这里所示的语法的例子,和“参数”部分意味着这仅适用时与'= FALSE'。 –