【发布时间】:2021-06-20 19:07:03
【问题描述】:
我想知道如何在 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]
谢谢!
【问题讨论】:
标签: r dplyr data.table
我想知道如何在 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]
谢谢!
【问题讨论】:
标签: r dplyr data.table
我们可以将vector 转换为list 和as.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) 的简洁方式
【讨论】: