r - 将向量附加到 data.table 作为单独的新列,向量回收单个值

标签 r data.table

我想将一个向量添加到 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.

最佳答案

我们也可以在不循环的情况下做到这一点

x[, names(v) := as.list(v)]
x
#   a b c d
#1: 1 3 5 6
#2: 2 4 5 6

关于r - 将向量附加到 data.table 作为单独的新列,向量回收单个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43500767/

相关文章:

r - 如何优化批量预测

r - ggplot数据逐年 - 轴标签未显示

R 编程 XML : extract specific node

search - 跨多个向量查找不常见元素

R中的滚动计算

r - 在 data.table 中使用 i 中变量的字符串表示形式

r - data.table 将 `by` 中的因子转换为基础整数?

r - 如何在 R 中循环多个数据框以使用每个客户一个 Excel 文件创建多选项卡 Excel 输出

没有 for 循环的 R 二进制详尽列表

r - 将字符串中由两个不同分隔符分隔的值列表转换为单独的行