使用向量替换 data.table 中的多列

Replace multiple columns in data.table using a vector

我想知道如何在 data.table 中同时替换多个列中的值。

类似于以下内容:

fake_DT <- data.table(iter = 1:5, A = 0, B = 0, C =0)
vec = c(1,2,3)
fake_DT[iter == 1, c("A", "B", "C") := vec]

谢谢!

我们可以使用 as.listvector 转换为 list,因为 data.frame/data.table/tibble 等都是 list 以列作为元素并具有一些附加属性

fake_DT[iter == 1, c("A", "B", "C") := as.list(vec)]

-输出

fake_DT
   iter A B C
1:    1 1 2 3
2:    2 0 0 0
3:    3 0 0 0
4:    4 0 0 0
5:    5 0 0 0

data.table语法中,当我们使用

dt[, c('col1', 'col2' ) := .(5, 3)]`

.( 是指定 list(5, 3)

的紧凑方式