1

2 つの異なる列の情報に基づいて、2 つのデータ テーブル (csv ファイル) をマージしようとしています。1 つは名前列で、もう 1 つは数値列です。マージするには、データ テーブル A のこれら 2 つの列がデータ テーブル B の列と一致する必要があります。ただし、数値列はほぼ一致する必要があります。例を挙げる

データセット A

    Name  Number   A Value
 1:    A    125    16   
 2:    B    1735   76   
 3:    C    2985   22   
 4:    D    3245   76   
 5:    E    4211   22 

データセット B

    Name  Number   B Value
 1:    A    127    56   
 2:    B    1729   84   
 3:    C    2990   11   
 4:    D    3247   36   
 5:    F    4293   49

マージされたテーブル

    Name  Number   A Value  B Value
 1:    A    125    16        56
 2:    B    1735   76        84
 3:    C    2985   22        11
 4:    D    3245   76        36
 5:    E    4211   22        N/A
 6:    F    4293   N/A       49

私はRの使用に非常に慣れていません。どんな助けも大歓迎です!!

ありがとうございました!!!

4

1 に答える 1

0

1 つの戦略は、2 つの共通の列を各データ フレームに一緒に貼り付け、それを結合/マージし、不要になった場合は削除することです。このようなもの:

# Fake data
A <- data.frame(name = LETTERS[1:5], number = seq(10, 50, 10), Avalue = runif(5, 1, 1000))
B <- data.frame(name = LETTERS[3:7], number = seq(30, 70, 10), Bvalue = runif(5, 1, 1000))

# create id for merging
A$id <- paste(A$name, A$number, sep = "")
B$id <- paste(B$name, B$number, sep = "")

# do it
library("plyr")
AB <- join(A, B, by = "id", type = "full")
于 2013-07-20T00:03:33.403 に答える