如何使用R将多个csv文件编译成单个xlsx文件?
假设我在名为如何使用R将多个csv文件编译成单个xlsx文件?,r,R,假设我在名为Path的目录中有许多csv文件: abc.csv def.csv xyz.csv 如何将这些文件编译成单个xlsx文件,其中每个csv都成为自己的选项卡?我尝试过使用以下功能,但不幸的是,xlsx中最终只出现了第一个csv: path <- "Path" filenames_list <- list.files(path = path, full.names = TRUE) for (i in 1:length(filenames_list))
Path
的目录中有许多csv文件:
abc.csv
def.csv
xyz.csv
如何将这些文件编译成单个xlsx文件,其中每个csv都成为自己的选项卡?我尝试过使用以下功能,但不幸的是,xlsx中最终只出现了第一个csv:
path <- "Path"
filenames_list <- list.files(path = path, full.names = TRUE)
for (i in 1:length(filenames_list)) {
sheet_name <- strsplit(strsplit(filenames_list[i], "/")[[1]][4], "\\.")[[1]][1]
file_name <- paste0('Path/output.xlsx')
temp <- read.csv(filenames_list[i])
write.xlsx(temp, file = file_name, sheetName = sheet_name, row.names = F, append = T)
}
path您可以使用sapply
-
path <- "Path"
filenames_list <- list.files(path = path, full.names = TRUE)
list_files <- sapply(filenames_list, read.csv, simplify = FALSE)
names(list_files) <- tools::file_path_sans_ext(basename(names(list_files)))
writexl::write_xlsx(list_files, 'data.xlsx')
path您可以使用sapply
-
path <- "Path"
filenames_list <- list.files(path = path, full.names = TRUE)
list_files <- sapply(filenames_list, read.csv, simplify = FALSE)
names(list_files) <- tools::file_path_sans_ext(basename(names(list_files)))
writexl::write_xlsx(list_files, 'data.xlsx')
path这里有一个可能的tidyverse
解决方案:
library(openxlsx)
library(tidyverse)
# Make sure your working directory is set to the location where your .csv files are
list.files(pattern = "*.csv") %>%
map(., ~read_csv(.)) %>%
write.xlsx(., "My Multi-tabbed File.xlsx")
下面是一个可能的tidyverse
解决方案:
library(openxlsx)
library(tidyverse)
# Make sure your working directory is set to the location where your .csv files are
list.files(pattern = "*.csv") %>%
map(., ~read_csv(.)) %>%
write.xlsx(., "My Multi-tabbed File.xlsx")
这太棒了。有没有一个简单的方法来命名每个标签后,其csv文件名?这是伟大的。有没有一种简单的方法可以按照每个选项卡的csv文件名命名?