【问题标题】:Merge r brings error "'by' must specify uniquely valid columns"合并 r 带来错误“'by'必须指定唯一有效的列”
【发布时间】:2015-04-16 10:08:57
【问题描述】:

R今天不喜欢我...

我有两个通过 cbind() 组装的表。选项卡 1 (dwd_nogap) 是

  x1                 col1_x1       col2_x1      
A "1982 12 01 00:00" "        0.4" "          0"
B "1982 12 02 00:00" "       -0.5" "          0"
C "1982 12 03 00:00" "       -0.2" "          0"
D "1982 12 04 00:00" "         -1" "        0.1"
E "1982 12 05 00:00" "       -0.9" "          0"
F "1982 12 06 00:00" "        3.7" "        4.1"

标签 2 (dwd_gap) 是:

     x2                 col1_x2       col2_x2      
[1,] "1982 12 01 00:00" "        0.4" "          0"
[2,] "1982 12 03 00:00" "       -0.2" "          0"
[3,] "1982 12 04 00:00" "         -1" "        0.1"
[4,] "1982 12 05 00:00" "       -0.9" "          0"
[5,] "1982 12 06 00:00" "        3.7" "        4.1"
[6,] "1982 12 07 00:00" "          7" "        5.8"

我的合并命令是:

exporttab <- merge(x=dwd_nogap,y=dwd_gap,by.x=dwd_nogap[,1],by.y=dwd_gap[,1], fill=-9999)

在我看来这个命令是正确的,但它显然做得不好......

Error in fix.by(by.x, x) : 'by' must specify uniquely valid columns

【问题讨论】:

  • 你真的研究过?merge的例子吗?您需要指定实际的列名,例如by.x= "x1", ,by.y= "x2"
  • 我的错误更加微不足道,我忘记放置''。我尝试了实际的列名,但使用 x1 而不是 'x1'。
  • 我不知道merge支持fill。那是一笔不错的奖金。 ?merge 中甚至都没有提到它。

标签: r merge


【解决方案1】:

宁可给出要合并的列的名称:

exporttab <- merge(x=dwd_nogap, y=dwd_gap, by.x='x1', by.y='x2', fill=-9999)

【讨论】:

    【解决方案2】:

    这是我尝试的右外连接 [根据我的要求]:

    m1 <- merge(x=companies, y=rounds2, by.x=companies$permalink, 
                by.y=rounds2$company_permalink, all.y=TRUE)
    # Error in fix.by(by.x, x) : 'by' must specify uniquely valid columns
    m1 <- merge(x=companies, y=rounds2, by.x=c("permalink"), 
                by.y=c("company_permalink"), all.y=TRUE)
    

    这行得通。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-25
      • 1970-01-01
      • 2018-09-23
      • 2022-06-14
      • 2021-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多