读取 CSV 文件并添加带有文件名的列

Joh*_*tha 2 csv r dplyr tidyverse

假设您有 2 个文件,如下所示。

\n
file_1_october.csv\nfile_2_november.csv\n
Run Code Online (Sandbox Code Playgroud)\n

这些文件具有相同的列。所以我想阅读这两个文件,在R其中我可以轻松地使用地图。我还想在每个读取的文件中包含一个month带有文件名的列。例如,对于file_1_october.csv,我想要一个名为 \xe2\x80\x9cmonth\xe2\x80\x9d 的列,其中包含单词 \xe2\x80\x9cfile_1_october.csv\xe2\x80\x9d。

\n

为了重现性,假设file_1_october.csv

\n
name,age,gender\njames,24,male\nSue,21,female\n
Run Code Online (Sandbox Code Playgroud)\n

而 file_2_november.csv 是

\n
name,age,gender\nGrey,24,male\nJuliet,21,female\n
Run Code Online (Sandbox Code Playgroud)\n

我想读取这两个文件,但在每个文件中都包含一个与文件名相对应的月份列,这样我们就有了;

\n
name,age,gender,month\njames,24,male, file_1_october.csv\nSue,21,female, file_1_october.csv\n
Run Code Online (Sandbox Code Playgroud)\n

\n
name,age,gender,month,\nGrey,24,male, file_2_november.csv,\nJuliet,21,female, file_2_november.csv\n
Run Code Online (Sandbox Code Playgroud)\n

ben*_*n23 5

也许是这样的?

csvlist <- c("file_1_october.csv", "file_2_november.csv")

df_list <- lapply(csvlist, function(x) read.csv(x) %>% mutate(month = x))

for (i in seq_along(df_list)) {
  assign(paste0("df", i), df_list[[i]])
}
Run Code Online (Sandbox Code Playgroud)

这两个数据帧将保存在df1和中df2