如何读取多个.xlsx并在R中生成多个dataframe?
我想在xlsx中读取三个不同的文件,并将它们保存在三个不同的数据框中,分别称为excel1,excel2和excel3。 我怎样才能做到这一点? 我认为这应该是这样的:
files = list.files(pattern='[.]xlsx') #There are three files. for (i in 1:files){ "excel" + i =read.xlsx(files[i]) }
我build议你使用一个列表,而不是在当前工作区中创build3个variables:
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]]
但是,如果你真的想创build新的variables,你可以使用assign
函数:
for (i in 1:files){ assign(paste0("excel",i), read.xlsx(files[i])) } # now excel1, excel2, excel3 variables exist...
你也可以使用plyr
,这是一个很好的实践,提到你想创buildvariables的环境:
library(plyr) l_ply(1:length(files), function(i) assign(paste0('excel',i),read.xlsx(files[i]), envir=globalenv()))
如果有人试图使用这个代码,这个参数是非常有用的:
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) }