繁体   English   中英

如何导入一个文件夹中存在的多个Excel文件,并在R中将给定算法应用于每个文件?

[英]How to import multiple excel files present in a folder and apply given algorithm to each of them in R?

我在多个文件夹中有多个excel文件,每个文件都需要使用一种算法分别估算,因此我想按文件导入数据并使用算法逐一估算,但又不合并任何数据

我尝试使用readxl库

library(readxl)

file.list <- list.files("C:/Users/srich/Downloads/Course Project Datasets/Incomplete Datasets Without Labels/4-gauss", pattern='*.xlsx')
df.list <- lapply(file.list, read_xlsx)

但是我只是得到该文件夹​​中存在的文件列表,我希望每个文件数据都可以在环境中加载以进行插补。

很抱歉,如果我对R陌生,我的问题含糊其辞,只有几天的经验。 谢谢。

可以更简单(尽管效率较低)在for循环中执行此操作。

例如,

file_vector <- list.files(path = "A:/data folder")  
csv_list <- file_vector[grepl(".csv",file_vector)]  
for (i in 1:length(csv_list)){

data <- read_csv(paste("data/", csv_list[i], sep=""))  
#whatever imputations that you want
write.csv(data, paste("data/","out", csv_list[i], sep=""))

}

这将从多个Excel文件中的多个工作表中导入数据。 试试看,然后反馈。

read_excel_allsheets <- function(filename) { 
  sheets <- readxl::excel_sheets(filename) 
  x <- lapply(sheets, function(X) readxl::read_excel(filename, sheet = X)) 
  names(x) <- sheets 
  x 
} 
files <- list.files(path = "/directory/in/question/", 
                     pattern = "*.xlsx",
                     full.names = TRUE)
out <- lapply(files, read_excel_allsheets)
names(out) <- basename(files)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM