【问题标题】:Compare two data frame values for retrieve extra values from one them in R比较两个数据框值以从 R 中的一个中检索额外值
【发布时间】:2016-06-15 21:03:54
【问题描述】:

我有两个数据框,df1 有 76349 行和 4 列(long、lat、country、year),df2 有 2999 行和 2 列(long、lat)。 df2 中的所有坐标都是与 df1 的相互坐标。对于 df2 的相同值,我需要获取 df1 的国家和年份的值。我尝试使用合并功能解决。显然输出是正确的,显示 df1 中国家和年份的值与 df2 相同,但是输出中的行数大于 df2(数据参考)。我试图删除 NA 值和重复值,但输出仍然大于 df2。

如何从 df1 中的国家和年份获取 df2 中的确切值?

我使用命令:

x = merge(df1,df2, by=c('long','lat'))

感谢您的帮助!

这里:数据下载链接。 https://www.dropbox.com/sh/zr9n56by0qs3h4l/AABjUO6wVi4zzrY2LWHH5P65a?dl=0

【问题讨论】:

  • 你需要一个all 参数,比如x = merge(df1,df2, by=c('long','lat'), all.y=TRUE)(我认为)

标签: r dataframe


【解决方案1】:

dplyr 有几个可能有用的连接选项。
如果我理解你的问题,该包中的函数“inner_join”应该返回你想要的,即:

library(dplyr)
x = inner_join(df2, df1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    • 1970-01-01
    相关资源
    最近更新 更多