更新包含来自具有唯一行条目的第二个数据集的重复行条目的数据集

时间:2013-12-11 15:32:36

标签: r dataset

我怀疑这很容易。我有两个数据集;数据集一在第一列中有ID,每个ID只有一行。第二列有数据(value1)。第二个数据集在第1列中具有相同的ID,但每个ID有多个实例。我想将value1输入到第二个数据集的相应行中,以便每个ID从dataset1获取正确的value1。所以一对多的映射问题。

示例数据集:

tC <- textConnection("ID    Cat1    Cat2
1   AA  BB
1   AA  BB
2   CC  DD
2   DD  EE
2   DD  FF
3   AA  GG")
data1 <- read.table(header=TRUE, tC)
close.connection(tC)
rm(tC)

tC <- textConnection("ID    Value1
1   a
2   b
3   c")
data2 <- read.table(header=TRUE, tC)
close.connection(tC)
rm(tC)

最终结果应如下所示:

tC <- textConnection("ID    Cat1    Cat2    value1
1   AA  BB  a
1   AA  BB  a
2   CC  DD  b
2   DD  EE  b
2   DD  FF  b
3   AA  GG  c")
data3 <- read.table(header=TRUE, tC)
close.connection(tC)

1 个答案:

答案 0 :(得分:1)

函数merge用于组合多个数据帧的信息。

merge(data1, data2)

#   ID Cat1 Cat2 Value1
# 1  1   AA   BB      a
# 2  1   AA   BB      a
# 3  2   CC   DD      b
# 4  2   DD   EE      b
# 5  2   DD   FF      b
# 6  3   AA   GG      c