繁体   English   中英

如何将 xlsx 文件列表转换并导出为 R 中的 csv 文件

[英]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.

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