【问题标题】:Repeated "by" error with R Merge FunctionR合并功能重复“按”错误
【发布时间】:2018-12-03 05:30:55
【问题描述】:

我有以下两个数据框: all_cards,它有 32 个变量的 1,334 个观察值,以及接触,它有 12 个变量的 1,321 个观察值。两个数据框都包含一个名为 id 的列,它具有相同的 id 编号,但顺序不同(all_cards 的 id 编号比联系人多 13 个)。

我想将 all_cards 中的两个变量(列)添加到联系人。

我尝试使用以下代码进行此操作;

contacts2 <- merge(x = contacts, y = all_cards[,c("idList", "idLabels")], by = "id")

并收到以下错误;

Error in fix.by(by.y, y) : 'by' must specify a uniquely valid column

当我指定 by.x = "id" 和 by.y = "id" 时,我得到了同样的错误。我已经检查过,两个数据框只有一个名为“id”的列,并且两列都是“字符”类。我不知道为什么这个合并功能不起作用。

我想要的结果是拥有数据框 contacts2,其中包含 14 个变量的 1,321 个观察值,最后两个是 idList 和 idLabels。

我在运行 macOS Sierra(版本 10.12.6)的 Mac 上使用 RStudio 版本 1.1.456。任何帮助将不胜感激。

【问题讨论】:

  • 您在 all_cards 中将 id 插入到 merge 之前。只需将其包含在其他两列中即可。

标签: r merge


【解决方案1】:

by 列必须存在于两个 data.frame 中,因此列 id 也必须包含在 y data.frame 中:

contacts2 <- merge(contacts, all_cards[, c("id", "idList", "idLabels")], by = "id")

【讨论】:

    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-24
    • 1970-01-01
    • 1970-01-01
    • 2019-09-11
    相关资源
    最近更新 更多