我一直在阅读如何读取多个 xlsx 文件并将其合并到一个 R 数据框中,并遇到了一些非常好的建议,例如 How to read multiple xlsx file in R using loop with specific rows and columns ,但到目前为止不适合我的数据集。
我希望 R 读取多个包含多个工作表的 xlsx 文件。所有工作表和文件都具有相同的列,但长度不同,并且应排除 NA。我想跳过前 3 行,只获取第 1:6、8:10、12:17、19 列。
到目前为止我尝试过:
file.list <- list.files(recursive=T,pattern='*.xlsx')
dat = lapply(file.list, function(i){
x = read.xlsx(i, sheetIndex=1, sheetName=NULL, startRow=4,
endRow=NULL, as.data.frame=TRUE, header=F)
# Column select
x = x[, c(1:6,8:10,12:17,19)]
# Create column with file name
x$file = i
# Return data
x
})
dat = do.call("rbind.data.frame", dat)
但这只需要每个文件的第一张纸
有谁知道如何将所有工作表和文件放在一个 R 数据框中?
此外,对于大量数据,您会推荐哪些软件包?到目前为止,我尝试了 readxl 和 XLConnect。
最佳答案
openxlsx解决方案:
filename <-"myFilePath"
sheets <- openxlsx::getSheetNames(filename)
SheetList <- lapply(sheets,openxlsx::read.xlsx,xlsxFile=filename)
names(SheetList) <- sheets
关于将多个包含多个工作表的 xlsx 文件读取到一个 R 数据框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38197705/