You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用tidyverse批量导入CSV时,如何添加提取自文件名的ID列?

批量导入CSV并添加来源标识的解决方案

你可以直接在map_df的读取逻辑中,提取每个文件的前4个字符作为来源标识,通过mutate添加新列。修改后的代码如下:

library(tidyverse)

df <- list.files(path       = "../Data/Raw_1HR",
                 pattern    = "\\.csv$",
                 full.names = TRUE) %>%
  map_df(~read.csv(.,
                   skip       = 7,
                   sep        = ",",
                   header     = TRUE,
                   colClasses = "character") %>%
           mutate(source_id = str_sub(basename(.), 1, 4), .before = 1))

关键说明:

  • basename(.):从完整文件路径中提取纯文件名(比如将../Data/Raw_1HR/id01_data.csv转换为id01_data.csv)
  • str_sub(basename(.), 1, 4):截取文件名的前4个字符,作为来源标识(比如从id01_data.csv得到id01)
  • mutate(source_id = ...):添加名为source_id的新列,.before = 1参数可选,用来把新列放在数据框的第一列,方便快速查看数据来源
  • 确保你已经加载了tidyverse包(stringr是其中一部分,负责字符串截取)

内容的提问来源于stack exchange,提问作者Thomas Speidel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 20:32:33