2015-02-07 19 views
3

我想读取xlsx中的三个不同文件,并将它们保存在三个不同的数据框中,分别称为excel1,excel2和excel3。我怎样才能做到这一点?我想应该是这样的:如何在R中读取多个.xlsx并生成多个数据帧?

files = list.files(pattern='[.]xlsx') #There are three files. 

for (i in 1:files){ 
    "excel" + i =read.xlsx(files[i]) 
} 

回答

2

我建议你使用,而不是在当前工作区创建3个变量的列表:

dfList <- list() 
for (i in 1:files){ 
    dfList[[paste0("excel",i)]] <- read.xlsx(files[i]) 
} 

然后你就可以访问它们以这种方式:

dfList$excel1 
dfList$excel2 
dfList$excel3 

或:

dfList[[1]] 
dfList[[2]] 
dfList[[3]] 

但是,如果你真的要创建新的变量,你可以使用assign功能:

for (i in 1:files){ 
    assign(paste0("excel",i), read.xlsx(files[i])) 
} 
# now excel1, excel2, excel3 variables exist... 
+0

非常感谢您!真的很有用! – 2015-02-07 14:12:41

2

您可以使用plyr还,这是一个很好的做法,何况要在其中创建变量环境:

library(plyr) 
l_ply(1:length(files), function(i) assign(paste0('excel',i),read.xlsx(files[i]), envir=globalenv())) 
+0

谢谢!我要去试试:) – 2015-02-07 14:13:04

0

如果有人试图使用此代码,这个参数是非常有帮助:

library(xlsx) 

    files = list.files(pattern='[.]xlsx') 
    dfList <- list() 

    for (i in 1:length(files)){ 
     dfList[[paste0("excel",i)]] <- read.xlsx(files[i],header=T,stringsAsFactors=FALSE,sheetIndex = 1) 
    } 
相关问题