R:在另一个矢量中找到一个矢量的值以及相应的值

时间:2019-04-11 23:48:23

标签: r dataframe

如果我有一个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中的顺序的方法是什么?

1 个答案:

答案 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