假设这两个表--A和B
表A是
id v1
1 10
3 20
5 20
6 15
表B是
id v2
1 200
2 300
3 200
4 250
5 190
6 290
我想将B的“v2”添加到A,并使用相同的“id”,如下所示:
表A应该是
id v1 v2
1 10 200
3 20 200
5 20 190
6 15 290
感谢您的帮助!
答案 0 :(得分:2)
使用基于X [Y]语法的data.table
:
require(data.table)
dt1 <- data.table(df1)
dt2 <- data.table(df2)
setkey(dt1, "id")
setkey(dt2, "id")
> dt2[dt1]
# id v2 v1
# 1: 1 200 10
# 2: 3 200 20
# 3: 5 190 20
# 4: 6 290 15
答案 1 :(得分:1)
您可以使用sqldf
library(sqldf)
sqldf('SELECT dat.*,dat1.v2
FROM dat,dat1
WHERE dat.id = dat1.id')
id v1 v2
1 1 10 200
2 3 20 200
3 5 20 190
4 6 15 290
但是使用merge
我们会得到相同的结果
merge(dat,dat1)
id v1 v2
1 1 10 200
2 3 20 200
3 5 20 190
4 6 15 290
答案 2 :(得分:0)
您可以通过以下方式使用环境查找:
library(qdap)
A$v2 <- lookup(A$id, B)
A
> A
id v1 v2
1 1 10 200
2 3 20 200
3 5 20 190
4 6 15 290
这在大型数据集上非常快。