我有一个文件夹,里面装满了.csv文件,这些文件必须稍作更改,然后另存为 xlsx 文档。
在此,我创建了一个循环来执行此操作:
library(xlsx)
docs <- Sys.glob( "*.csv" )
for( i in docs )
{
df <- read.csv(i)
df2 <- select(df, X, Y)
df3 <- mutate(df3, Z = (X - Y) / 3600)
write.xlsx(df3, paste( "C:/users/Desktop/Files/", i), row.names = FALSE)
}
但是,当我执行此 for 循环时,会弹出以下错误消息:
创建工作簿中的错误(类型 = ext):未知格式的 csv
我忘了什么吗?如果您能帮助我,我将不胜感激,因为我不知道还能改变什么......
该软件包rio
消除了 xlsx 文件的大部分麻烦。它还可用于读取文件:
docs <- Sys.glob("*.csv")
for(i in docs) {
df <- rio::import(i)
df2 <- select(df, X, Y)
df3 <- mutate(df3, Z = (X - Y) / 3600)
rio::export(df3, paste0("C:/users/Desktop/Files/", i, ".xlsx"))
}
这应该适用于导入/导出部分。我不太确定的是你的Sys.glob
,因为我以前从未使用过。我发现list.files
有一个非常简单而强大的语法......
更新
如果要摆脱.csv
文件扩展名,可以改用以下内容:
for(i in docs) {
df <- rio::import(i)
df2 <- select(df, X, Y)
df3 <- mutate(df3, Z = (X - Y) / 3600)
fname <- gsub(".csv$", "", i)
rio::export(df3, paste0("C:/users/Desktop/Files/", fname, ".xlsx"))
}