[英]How can I convert many XLSX files into many CSV files using NESTED FOR LOOPS in R?
[英]How to convert and export a list of xlsx files to csv files in R
我正在尝试将大量 .xlsx 文件转换为 .csv,同时还为它们指定了一个新文件夹或目录来放置它们。具体来说,我想在我的工作目录中创建一个新文件夹来存放新的-转换的.csv 文件。
基于前面的例子,我已经设法使用以下代码完成了转换部分
setwd("~/Myfolder")
files.to.read = list.files(pattern="xlsx")
lapply(files.to.read, function(f) {
df = read.xlsx(f, sheetIndex=1)
write.csv(df, gsub("xlsx", "csv", f), row.names=FALSE)})
这成功地将我原始工作目录中的所有.xlsx 文件转换为.csv。 但是,我想要的是在该目录中创建一个新的子文件夹并将这些.csv 文件放入其中。 我知道答案可能涉及将dir.create()
或file.path()
添加到write.csv()
命令。 但是,当我使用它们中的任何一个时,都会出现以下错误。
Error in file(file, ifelse(append, "a", "w")): invalid 'open' argument
没有可重复的例子很难知道。 如果您尝试执行read.xlsx(files.to.read[1], sheetIndex=1)
会发生什么?
如果这行得通,那么你已经很接近了。
dir.create("your_folder_name")
files.to.read = list.files(pattern="xlsx")
lapply(files.to.read, function(f) {
df = read.xlsx(f, sheetIndex=1)
# Make the new filename here
new_filename = file.path(getwd(), "your_folder_name", gsub("xlsx", "csv", f))
write.csv(df, new_filename , row.names=FALSE)
# provide some feedback
print(paste("Writing", new_filename))
}
)
可能是您的list.files()
命令有问题。 如果以前失败,请尝试:
# Mind the full.names=TRUE to get the full path
files.to.read = list.files(pattern="xlsx", full.names=TRUE)
并摆脱new_filename
行。 您不需要通过file.path
创建它,只需像以前一样使用gsub
命令。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.