我有这段代码可以读取目录中的所有 CSV 文件。
nm <- list.files()
df <- do.call(rbind, lapply(nm, function(x) read_delim(x,';',col_names = T)))
Run Code Online (Sandbox Code Playgroud)
我想以将文件名附加到数据的方式修改它。结果将是一个包含所有 CSV 文件的单个数据框,并且在数据框中,有一列指定数据来自哪个文件。怎么做?
do.call(rbind, lapply(...))您可以使用purrr::map_dfr()with参数来代替.id:
library(readr)\nlibrary(purrr)\n\ndf <- list.files() |>\n set_names() |>\n map_dfr(read_delim, .id = "file")\n\ndf\nRun Code Online (Sandbox Code Playgroud)\n# A tibble: 9 \xc3\x97 3\n file col1 col2\n <chr> <dbl> <dbl>\n1 f1.csv 1 4\n2 f1.csv 2 5\n3 f1.csv 3 6\n4 f2.csv 1 4\n5 f2.csv 2 5\n6 f2.csv 3 6\n7 f3.csv 1 4\n8 f3.csv 2 5\n9 f3.csv 3 6\nRun Code Online (Sandbox Code Playgroud)\n示例数据:
\n# A tibble: 9 \xc3\x97 3\n file col1 col2\n <chr> <dbl> <dbl>\n1 f1.csv 1 4\n2 f1.csv 2 5\n3 f1.csv 3 6\n4 f2.csv 1 4\n5 f2.csv 2 5\n6 f2.csv 3 6\n7 f3.csv 1 4\n8 f3.csv 2 5\n9 f3.csv 3 6\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1940 次 |
| 最近记录: |