如何使用R语言以数据框固定列值为文件名自动导出CSV文件
问题描述
我现有一个数据框,以下面的虚拟数据框作为示例:
name = rep("ID1",3) city = c("London", "Paris", "Tokio") df = data.frame(name = name, city = city)
我想要使用write_csv将该数据框导出为CSV格式,同时希望可以自动调用name列中的值(本例中为ID1)作为文件名的一部分,实现如下代码所示的效果:
write_csv(df, 'valueofthecolname_df.csv')
解决方法
直接提取name列的唯一值拼接文件名即可,代码如下:
library(readr) # 提取name列唯一值作为前缀拼接目标文件名 file_name <- paste0(unique(df$name), "_df.csv") # 导出文件 write_csv(df, file_name)
运行后会在当前工作目录生成名为ID1_df.csv的文件,完全符合需求。
批量导出扩展
如果你的数据框name列包含多个不同的ID,需要按ID分组分别导出对应的CSV,可以搭配dplyr的分组操作实现自动化批量导出:
library(readr) library(dplyr) df %>% group_by(name) %>% group_walk(~ write_csv(.x, paste0(.y$name, "_df.csv")))
上述代码会自动为每个ID生成对应的CSV文件,无需手动逐个修改文件名。
内容的提问来源于stack exchange,提问作者Lila McPhee
相关产品推荐
相关产品推荐

