假设这两个表 - 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”添加到具有相同“id”的A,如下所示:
表A应该是
id v1 v2
1 10 200
3 20 200
5 20 190
6 15 290
我感谢您的帮助!
假设这两个表 - 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”添加到具有相同“id”的A,如下所示:
表A应该是
id v1 v2
1 10 200
3 20 200
5 20 190
6 15 290
我感谢您的帮助!
使用data.table
which 基于 X[Y] 语法:
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
您可以使用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
您可以通过以下方式使用环境查找:
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
这在大型数据集上非常快。