1

我正在尝试根据 2 个不同列中的信息合并 2 个数据表(csv 文件)。一个是名称列,另一个是数字列。数据表 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

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

# 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 回答