A と B の 2 つのテーブルがあるとします。
テーブル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 の 2 つのテーブルがあるとします。
テーブル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
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
これは、大規模なデータ セットではかなり高速です。