映射两个data.tables之间的条目

时间:2017-01-18 16:18:45

标签: r data.table

假设我有一个数据表A,其中包含一组条目和一个index列,为每行分配一个唯一编号。我还有一个包含B条目的数据表A,如下所示:

library(data.table)
set.seed(1)
A <- do.call(CJ, list(seq(3), seq(2), seq(2)))
A[,index := seq(nrow(A))]
B <- data.table(sample(3,3,replace=TRUE), sample(2,3,replace=TRUE),
                sample(2,3,replace=TRUE))

我想为index定义一个B列,将每一行分配给A中的相应索引。使用data.table执行此操作的最有效方法是什么?

感谢。

2 个答案:

答案 0 :(得分:3)

根据匹配的行添加A到B的列:

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

主要文档位于?data.table

答案 1 :(得分:1)

我认为你需要一个join

A[B, on = c("V1", "V2", "V3")]

#   V1 V2 V3 index
#1:  1  2  2     4
#2:  2  1  2     6
#3:  2  2  2     8