我试图根据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的新手。非常感谢任何帮助!!
谢谢!!!
答案 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")