【问题标题】:merging data with different codes but failed合并具有不同代码的数据但失败
【发布时间】:2019-01-22 11:03:26
【问题描述】:

令人惊讶的是,我尝试了三种不同类型的代码来通过两个变量合并我的两个数据。我还检查了数据和变量的类型,并确保它们都是相同的。这里是我使用但不适用于合并的代码。

第一个代码:

merge(data1,data2, 
    by.x = c(data1$Country, data1$Year), 
    by.y = c(data2$Country, data2$Year))

第二个代码:

merge(data1,data2, 
    by = c("Country", "Year"))

第三个代码:

merge(data1, data2, by.x="Country", by.y = "Year")

我从所有这些代码中都得到了这个错误:

fix.by(by.x, x) 中的错误:“by”必须指定唯一有效的列

任何帮助将不胜感激。

【问题讨论】:

  • 请通过包含示例数据使您的帖子可重现,例如dput.
  • 很抱歉我不能发布数据,如果您有任何预测或建议,我打开。
  • 然后模拟一些具有代表性和最小的模拟数据并将其包含在内。
  • 您可以提供与您所拥有的数据相似的示例数据,否则我们无法为您提供帮助

标签: r


【解决方案1】:

首先,您应该查看How to make a great R reproducible example,特别是有关当您无法共享原始数据时该怎么做的建议。

由于我们不知道您的数据实际上是什么样子,因此很难提供具体的帮助。也就是说,为了找到解决方案,我在下面模拟了一些模拟数据,并展示了如何根据两列中的条目合并两个 data.frames:

set.seed(2018)
data1 <- data.frame(
    Country = sample(letters, 10),
    Year = sample(1:4, 10, replace = T),
    Value = sample(10))

data2 <- data.frame(
    Country = sample(letters, 10),
    Year = sample(1:4, 10, replace = T),
    Value = sample(10))

merge(data1, data2, by = c("Country", "Year"))
#  Country Year Value.x Value.y
#1       l    3       6       6

或者,如果您想保留每个 data.frame 中不匹配的行

merge(data1, data2, by = c("Country", "Year"), all = TRUE)
#   Country Year Value.x Value.y
#1        b    4       2      NA
#2        c    3       9      NA
#3        c    4      NA       3
#4        e    3       1      NA
#5        g    3      10      NA
#6        i    2       3      NA
#7        j    4       7      NA
#8        k    1      NA       1
#9        k    4       5      NA
#10       l    3       6       6
#11       m    2       8      NA
#12       r    3       4      NA
#13       a    3      NA       9
#14       d    4      NA       5
#15       q    1      NA      10
#16       t    1      NA       7
#17       v    4      NA       2
#18       w    3      NA       4
#19       x    4      NA       8

【讨论】:

  • @FGH 不,请不要将链接分享给第三方文件托管商。大多数 SO 用户(包括我自己)都不愿意从随机的 dropbox/GoogleDrive/OneDrive/等下载文件。链接。在您的原始帖子(edit您的帖子)中包含示例数据非常重要。使用dput 共享(部分)您的数据或包含代码以生成具有代表性和最少的数据。
猜你喜欢
  • 2015-01-25
  • 2012-05-31
  • 2021-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多