2015-04-16 17 views
14

R mag mich nicht heute ...Merge r bringt Fehler "'durch' muss eindeutig gültige Spalten angeben"

Ich habe zwei Tabellen über cbind() zusammengestellt. Tab 1 (dwd_nogap) ist

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" 

Tab 2 (dwd_gap) ist:

 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" 

Mein merge-Befehl ist:

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

Meiner Meinung nach ist der Befehl korrekt aber es geht anscheinend nicht gut ...

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

Haben Sie tatsächlich die Beispiele von '? Merge' studiert ?. Sie müssen die tatsächlichen Spaltennamen wie 'by.x =" x1 ",, by.y =" x2 "' –

+0

Mein Fehler war noch trivialer, ich habe vergessen, die ''. Ich habe die tatsächlichen Spaltennamen aber mit x1 anstelle von 'x1' versucht. – user3519324

+0

Ich wusste nicht, dass 'merge'' fill' unterstützt. Das war ein netter Bonus. Es ist nicht einmal in "? Merge" erwähnt. –

Antwort

15

Rather Namen der Spalte geben, auf dem Sie zusammenführen möchten:

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

Dies ist, was ich für richtig versucht Outer-Joins [nach meiner Anforderung]

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

Fehler in fix.by (by.x, x): 'by' muss eindeutig gültige Spalten angeben

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

Dies funktionierte.

Verwandte Themen