【发布时间】:2017-04-19 16:03:31
【问题描述】:
我想向data.table 添加一个向量,向量元素的每个名称对应一个新列,并且值根据向量的元素值重复。
所以给定:
x <- data.table(a=1:2, b=3:4)
v <- c(c=5, d=6)
我正在寻找以下结果:
data.table(a=1:2, b=3:4, c=5, d=6)
# a b c d
# 1: 1 3 5 6
# 2: 2 4 5 6
我尝试过的事情:
cbind 将向量添加为单列:
cbind(x, v)
# a b v
# 1: 1 3 5
# 2: 2 4 6
使用Adding multiple columns to a data.table, where column names are held in a vector 的方法也会错误地矢量化(水平而不是垂直):
x[, (names(v)) := v]
# a b c d
# 1: 1 3 5 5
# 2: 2 4 6 6
x[, (names(v)) := list(v)]
# Same as above.
【问题讨论】:
-
它适用于
vlist <- list(c=5, d=6)。 -
不要说“使用单个值”,您想要的术语是“矢量回收单个值”
标签: r data.table