我怀疑这很容易。我有两个数据集;数据集一在第一列中有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)
答案 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