【问题标题】:Better syntax for adding a column from other data.table [duplicate]从其他 data.table 添加列的更好语法 [重复]
【发布时间】:2019-01-28 06:47:27
【问题描述】:

我有两个索引数据表,我想通过索引将一个表中的列添加到另一个表中。我目前的做法如下:

A <- data.table(index = seq(6,10), a = rnorm(5))
B <- data.table(index = seq(10), b = rnorm(10))
setkey(B, index)
A[, b := B[.(A[,index]), b]]

虽然这可以完成工作,但语法似乎有点多余。有没有更简洁的方法来执行相同的操作?

【问题讨论】:

    标签: r data.table


    【解决方案1】:

    我们可以通过加入来做到这一点

    A[B, b := b, on = .(index)]
    

    这里不需要setkey 步骤

    【讨论】:

    • 谢谢。如果index 列没有相同的名称怎么办?例如,假设 B 具有索引列 index1
    • @user3294195 在这种情况下,将on 更改为on = .(index = index1)]A[B, b := b, on = .(index = index1)]
    猜你喜欢
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    • 2015-01-28
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多