我想在xlsx中读取三个不同的文件,并将它们保存在三个不同的数据框中,称为excel1,excel2和excel3。我怎样才能做到这一点?我认为它应该是这样的:
files = list.files(pattern='[.]xlsx') #There are three files.
for (i in 1:files){
"excel" + i =read.xlsx(files[i])
}
答案 0 :(得分: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...
答案 1 :(得分:2)
您也可以使用plyr
,这是一个很好的做法,可以提及您要在其中创建变量的环境:
library(plyr)
l_ply(1:length(files), function(i) assign(paste0('excel',i),read.xlsx(files[i]), envir=globalenv()))
答案 2 :(得分: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)
}