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

purrr::map_dfr的.id参数返回列表序号而非文件名问题咨询

问题原因

purrr::map_dfr() 的 .id 参数取值有明确规则:

  • 若传入的迭代对象(此处为file.list)是带名称的列表/向量,.id列会填充对应元素的名称
  • 若传入的迭代对象没有名称,会默认填充元素在序列中的位置序号(1、2、3...)

你当前通过list.files()返回的file.list是无名称的字符向量,因此source列只能输出序号。

解决方法

两种常用方案按需选择即可:

方案1:source列保留完整文件路径

直接给file.list设置和自身值一致的名称,代码调整如下:

file.list <- list.files('./Raw/', pattern = '.xls', full.names = TRUE)
rws <- function(x) {XLConnect::readWorksheetFromFile(x, sheet = 1, startRow =4)}
# 给file.list设置名称,值为文件路径本身
df <- purrr::map_dfr(purrr::set_names(file.list), rws, .id = "source")

方案2:source列仅保留文件名(不带路径前缀)

设置名称时调用basename()提取纯文件名:

file.list <- list.files('./Raw/', pattern = '.xls', full.names = TRUE)
rws <- function(x) {XLConnect::readWorksheetFromFile(x, sheet = 1, startRow =4)}
# 名称设置为纯文件名
df <- purrr::map_dfr(purrr::set_names(file.list, basename(file.list)), rws, .id = "source")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:36:04