循环访问setwd()中的批量读取文件夹,格式化dfs & write.csv()到不同的文件夹R
在R语言中,可以使用以下代码来实现循环访问指定文件夹下的文件,并将读取的数据进行格式化后保存到不同的文件夹中:
# 设置工作目录
setwd("your_directory_path")
# 获取文件夹列表
folder_list <- list.dirs(full.names = TRUE, recursive = FALSE)
# 循环遍历文件夹
for (folder in folder_list) {
# 设置工作目录为当前文件夹
setwd(folder)
# 读取文件
file_list <- list.files(pattern = "*.csv")
dfs <- lapply(file_list, read.csv)
# 格式化数据
formatted_dfs <- lapply(dfs, function(df) {
# 进行数据格式化的操作
# ...
return(formatted_df)
})
# 写入到不同的文件夹
output_folder <- paste0("output/", folder) # 设置输出文件夹路径
if (!file.exists(output_folder)) {
dir.create(output_folder, recursive = TRUE)
}
# 保存格式化后的数据
for (i in 1:length(formatted_dfs)) {
write.csv(formatted_dfs[[i]], file = paste0(output_folder, "/formatted_", i, ".csv"), row.names = FALSE)
}
}
上述代码首先通过setwd()
函数设置工作目录为指定的文件夹路径。然后使用list.dirs()
函数获取文件夹列表。接下来使用循环遍历每个文件夹,将工作目录设置为当前文件夹。使用list.files()
函数获取当前文件夹下的所有csv文件,并使用read.csv()
函数读取这些文件,将结果保存在dfs
列表中。
接着,可以使用lapply()
函数对dfs
列表中的每个数据框进行格式化操作。在代码中,需要替换# 进行数据格式化的操作
这一行,根据实际需求进行数据格式化的操作。
最后,使用paste0()
函数设置输出文件夹路径,并使用dir.create()
函数创建输出文件夹。然后使用循环将格式化后的数据框使用write.csv()
函数保存到不同的文件夹中,文件名以"formatted_"开头,后面跟着索引号和".csv"后缀。
请注意,上述代码中的路径和格式化操作需要根据实际情况进行调整。此外,为了简化代码,省略了错误处理和异常情况的处理,实际使用时需要根据需要进行相应的处理。
推荐的腾讯云相关产品和产品介绍链接地址:
以上是关于循环访问setwd()中的批量读取文件夹,格式化dfs & write.csv()到不同的文件夹的完善且全面的答案。
领取专属 10元无门槛券
手把手带您无忧上云