【问题标题】:Joining two datasets in R在 R 中连接两个数据集
【发布时间】:2019-11-20 20:30:21
【问题描述】:

我有 2 个要合并的数据集

Dataset_1:

id| value_1
1 |   a
1 |   b
1 |   b
2 |   a
2 |   a
2 |   b
...

Dataset_2:

id| value_2
1 |   123
1 |   433
1 |   234
2 |   222
2 |   333
2 |   333
...

结果应该是这样的:

id| value_1 | value 2
1 |   a     | 123
1 |   b     | 433
1 |   b     | 234
2 |   a     | 222
2 |   a     | 333
2 |   b     | 333

如果尝试使用这些功能:

inner_join(dataset_1,dataset_2,by="id")
and
full_join(dataset_1,dataset_2,by="id") 
and
merge(dataset_1,dataset_2,by="id")

但我总是得到 2 个数据集的所有可能组合,而不是组合的一个。 它应该很简单,但我无法弄清楚我做错了什么。

id 是 double,value_1 是 chr,value_2 是 int。

感谢您的帮助!

【问题讨论】:

  • 在你的情况下,试试cbind。如果你想使用连接,你必须有一个规则,Dataset_1 的哪一行要与Dataset_2 的哪一行连接。例如,为什么在您预期输出的第二行 value 2 等于 433 而不是 234
  • 我相信连接函数默认为“自然连接”,因为 id cols 中有重复的 id 值?试试 '?inner_join' 来查看帮助文件。
  • 最终你可以使用cbind(...)

标签: r dataset


【解决方案1】:

您的示例显示需要绑定而不是连接。

Dataset_3 <- bind_cols(Dataset_1,Dataset_2[-1]  )

发生了什么:

当连接发现重复的 id 时,它会为每个结果组合创建更多案例。

【讨论】:

    猜你喜欢
    • 2020-07-12
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 2018-03-27
    • 1970-01-01
    相关资源
    最近更新 更多