我想读取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])
}
我想读取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])
}
我建议你使用,而不是在当前工作区创建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...
您可以使用plyr
还,这是一个很好的做法,何况要在其中创建变量环境:
library(plyr)
l_ply(1:length(files), function(i) assign(paste0('excel',i),read.xlsx(files[i]), envir=globalenv()))
谢谢!我要去试试:) – 2015-02-07 14:13:04
如果有人试图使用此代码,这个参数是非常有帮助:
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)
}
非常感谢您!真的很有用! – 2015-02-07 14:12:41