2017-10-15 66 views
0

选择几个列我想提出一个从多个XLSX R中与list.files和lapply这样的:如何使一个从多个XLSX R中

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

然而,文件具有不同的列集。

file1a.xlsx:

V1 V2 
A A 

file2a.xlsx:

V1 V3 
A A 

file3a.xlsx:

V1 V4 
A A 

我想从这些三个文件制作一个文件(甚至是整个我的目录中的文件)像这样:

V1 V2 V3 V4 
A A 
A  A 
A  A 

如何调整list.files和lapply?

+0

你可以请提供您的问题 –

+0

如果每个文件包含V1,无法加载每个人作为独立的DF,然后使用合并(),以重复的例子通过V1加入他们? –

回答

2

您可以运行一个循环来读取单个文件。然后你可以使用rbindlistdata.table合并

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

这对我真的很有帮助。这是第一次知道这个功能。我正在与清单工作,这是伟大的! –

相关问题