R:在另一个向量中找到一个向量的值和相应的值

问题描述 投票:0回答:1

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

r dataframe
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.