如果我有一个data.frame(df1)如下:
Name Count
a 1
b 2
c 3
和另一个data.frame(df2),例如:
Name Count
aa 0
ba 0
ca 0
b 0
a 0
c 0
我想获取名称匹配的df2中与df1对应的值。我目前正在尝试:
idx = which(df2$Name %in% df1$Name)
df2[idx,2] = df1$Count
这似乎可以交换或置换一些存储的计数。可以保留原始data.frame中的顺序的方法是什么?
答案 0 :(得分:1)
您可以使用match
获取要替换的索引:
df2[match(df1$Name, df2$Name),]$Count <- df1$Count
关于您的解决方案为何不起作用的原因,请比较以下内容的输出:
which(df2$Name %in% df1$Name)
[1] 4 5 6
和
match(df1$Name, df2$Name)
[1] 5 4 6