0

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

私はあなたの助けに感謝します!

4

3 に答える 3

2

data.tableX[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
于 2013-02-10T00:15:49.903 に答える
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
于 2013-02-10T01:26:30.527 に答える
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

これは、大規模なデータ セットではかなり高速です。

于 2013-02-10T01:40:06.770 に答える