假设我有一个数据表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
执行此操作的最有效方法是什么?
感谢。
答案 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