使用向量替换 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.list
将 vector
转换为 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)
的紧凑方式
我想知道如何在 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.list
将 vector
转换为 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)