【问题标题】:R: Finding values of one vector in another and corresponding valuesR:在另一个向量中查找一个向量的值以及对应的值
【发布时间】:2019-04-11 23:48:22
【问题描述】:

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

【问题讨论】:

  • 试试:df2[match(df1$Name, df2$Name),]$Count <- df1$Count

标签: r dataframe


【解决方案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

【讨论】:

    猜你喜欢
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多