2017-10-15 3 views
0

Ich möchte machen eine von mehreren xlsx in R mit list.files und lapply wie folgt aus:Wie man aus mehreren xlsx machen mehrere Spalten in R wählen

file.list <- list.files(pattern='*.xlsx') 
df.list <- lapply(file.list, read_excel) 

jedoch die Dateien haben unterschiedliche Spalten.

file1a.xlsx:

V1 V2 
A A 

file2a.xlsx:

V1 V3 
A A 

file3a.xlsx:

V1 V4 
A A 

ich eine Datei aus diesen drei Dateien machen wollen (auch ganze der Dateien in meinem Verzeichnis) so:

V1 V2 V3 V4 
A A 
A  A 
A  A 

Wie stelle ich die list.files und lapply ??

+0

können Sie bitte –

+0

ein reproduzierbares Beispiel für Ihre Frage zur Verfügung stellen Wenn jede Datei V1 enthält, könnten Sie nicht jeden als separate df laden, dann merge() verwenden zu verbinde sie mit V1? –

Antwort

2

Sie können eine Schleife ausführen, um einzelne Dateien zu lesen. Dann können Sie rbindlist von data.table verwenden

zu fusionieren
df1 <- data.frame(V1 = c("A"), V2 = c("A")) 
df2 <- data.frame(V1 = c("A"), V3 = c("A")) 
df3 <- data.frame(V1 = c("A"), V4 = c("A")) 

library(data.table) 
df <- rbindlist(list(df1, df2), fill = TRUE) 
df <- rbindlist(list(df, df3), fill = TRUE) 
df 

    V1 V2 V3 V4 
1: A A NA NA 
2: A NA A NA 
3: A NA NA A 
+0

ist es wirklich sehr hilfreich für mich. Dies ist das erste Mal, dass Sie diese Funktion kennen. Ich arbeite mit Liste und es ist großartig! –

Verwandte Themen