我目前有一个包含所有Excel(.xlsx)文件的文件夹,并且使用R我想使用“openxlsx”包(或某些变体)自动将所有这些文件转换为CSV文件。我目前有以下代码来转换其中一个文件并将其放在同一个文件夹中:convert("team_order\\team_1.xlsx", "team_order\\team_1.csv")
我想自动执行该过程,因此它会对文件夹中的所有文件执行此操作,并且还会删除当前的xlsx文件,因此只保留csv文件。谢谢!
答案 0 :(得分:11)
你可以尝试使用rio,因为它似乎就是你已经在使用的东西:
library("rio")
xls <- dir(pattern = "xlsx")
created <- mapply(convert, xls, gsub("xlsx", "csv", xls))
unlink(xls) # delete xlsx files
答案 1 :(得分:5)
# Create a vector of Excel files to read
files.to.read = list.files(pattern="xlsx")
# Read each file and write it to csv
lapply(files.to.read, function(f) {
df = read.xlsx(f, sheet=1)
write.csv(df, gsub("xlsx", "csv", f), row.names=FALSE)
})
您可以使用以下命令删除文件。但是,在上一个代码之后立即自动运行会很危险。如果以前的代码由于某种原因失败,下面的代码仍将删除您的Excel文件。
lapply(files.to.read, file.remove)