web-dev-qa-db-ja.com

マージrは、「 'by'は一意に有効な列を指定する必要があります」というエラーを表示します

Rは今日私を好きではない...

Cbind()を使用して2つのテーブルを組み立てました。タブ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
17
user3519324

むしろ、マージする列の名前を指定します。

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

これは私が右外部結合に試したものです[私の要件に従って]

m1 <- merge(x=companies,y=rounds2,by.x = companies$permalink,by.y = rounds2$company_permalink,all.y=TRUE)

Fix.by(by.x、x)のエラー: 'by'は一意に有効な列を指定する必要があります

m1 <- merge(x=companies,y=rounds2,by.x = c("permalink"),by.y = c("company_permalink"),all.y = TRUE)

これはうまくいきました。

1
Smita Hundekar