同じステートメントで data.table の複数の列を更新することは可能ですか?
何かのようなもの
dt[,onecol:=1 anothercol:=2]
私は彼らがそうするいくつかの例を見てきました
dt[,c("onecol","anothercol"):=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.tableNEWSファイルで「MultipleLHS」を検索して、これがby=
引数でも機能することを確認します。