使用R来合并数据集基于2个不同列中的信息 - 名称列和数字列

时间:2013-07-19 23:28:32

标签: r merge multiple-columns

我试图根据2个不同列中的信息合并2个数据表(csv文件)。 一个是名称列,另一个是数字列。数据表A中的这两列需要与数据表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的新手。非常感谢任何帮助!!

谢谢!!!

1 个答案:

答案 0 :(得分:0)

一种策略是在每个数据框中粘贴两个公共列,然后在其上加入/合并,如果您不再需要它,请将其删除。像这样:

# 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")