2017-09-18 2 views
0

Ich bin für eine einfache Antwort für die folgende Suche:R: bind_rows mit UNFD Werte

Beispieldaten, data4 und data3 sind ähnlich und data1 und Daten2 sind ähnlich:

data4 <-           X__1  X__2 
                <chr>  <dbl> 
        No-C1-PG3.7-LDI0-LDE0-LB0.045-PDC0-D10 -12.27027 
        No-C0.95-PG3.7-LDI0-LDE0-LB0.045-PDC0-D10 Undf 

data1 <-          X__1  X__2 
       Yes-C0.9-PG3.7-LDI0-LDE0-LB0.045-PDC0-D10 -12.2 
       Yes-C0.85-PG3.7-LDI0-LDE0-LB0.045-PDC0-D10 20 
       Yes-C0.8-PG3.7-LDI0-LDE0-LB0.045-PDC0-D10 -15.2 
       Yes-C0.75-PG3.7-LDI0-LDE0-LB0.045-PDC0-D10 -19.2 

Ich bin versuchen Reihen von zwei Datensätzen zu binden:

data1 <- read_excel("~/location1.xlsx") 
data2 <- read_excel("~/location2.xlsx") 
data3 <- read_excel("~/location3.xlsx") 
data4 <- read_excel("~/location4.xlsx") 

YesFR <- rbind(data1,data2) 
NoFR <- rbind(data3, data4) 

Impact <- bind_rows(YesFR, NoFR)  

ich die folgende Fehlermeldung: Fehler in bind_rows_ (x, .id): Spalte X__2 kann nicht sein, konvertiert von Zeichen zu numerisch

Ich denke, dass es etwas mit dem Undf-Zeichen in den Daten zu tun hat und dass ich es in NA konvertieren muss. Was ist der einfachste Weg dies zu tun und warum tritt diese Nachricht nicht auf, wenn ich data3 mit data4 verbinde?

+0

Was ist zu raten, 'X_2' in' YesFR' ist numerisch und 'X_2' in' NoFR' ist ein Zeichen (da Sie "Undf" in 'data4' haben). Jetzt gibt 'bind_rows' in 'dplyr' dem Output den gleichen Typ wie die erste Eingabe. Da 'X_2' in' YesFR' numerisch ist, wird versucht, 'X_2' in' NoFR' in ein numerisches Format zu konvertieren, aber es schlägt fehl. Probieren Sie 'bind_rows (NoFR, YesFR)' und sehen Sie, ob es dieselbe Fehlermeldung gibt. – useR

+0

Schwer zu sagen, ohne die Daten zu sehen. versuche: 'data4 $ X__2 [data4 $ X__2 ==" Undf "] <- NA' und versuche dann rbind erneut –

+0

@useR das gibt den Fehler Fehler in bind_rows_ (x, .id): Spalte X__2 kann nicht konvertiert werden numerisch zu Zeichen. Aber danke für die Erklärung! – ima

Antwort

2

Grundsätzlich müssen Sie die "Undf" durch eine echte NA ersetzen, da ansonsten der Spaltentyp ein Zeichen enthalten muss, das "Undf" enthält. Sie können dies nach dem Laden tun, aber die bessere Option ist, "Undf" gleich NA während des Ladens mit read_excel() zu machen.

Das na Argument für read_excel() Standardwerte na = "" oder leere Zellen. Sie können zu diesem Argument etwas wie

hinzufügen

Tun Sie dies für jede Datei und die Bindung sollte gut funktionieren.