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

在R中将多个TSV文件导入Data Frame时遇问题求助

问题分析与解决

核心错误

你把list.files()的path参数设成了单个TSV文件的绝对路径,而非存放多个TSV文件的文件夹路径,导致函数找不到符合条件的文件,返回空字符向量。

修正步骤

  1. 指定正确的文件夹路径
    将path参数改为包含所有目标TSV文件的文件夹路径,同时修正正则表达式格式的匹配规则:

    file_list <- list.files(
      path = "/Users/salahmekhalalati/Downloads/Volumes/Listvolumes/", 
      pattern = ".*volumes\\.tsv$", 
      full.names = TRUE, 
      recursive = TRUE
    )
    
    • pattern说明:.*匹配任意字符,\\.转义点号(正则中.是通配符),$确保文件名严格以.tsv结尾,避免匹配到冗余文件。
  2. 先验证文件列表
    运行print(file_list)确认是否正确获取到目标文件路径,避免空列表进入后续合并流程。

  3. 优化数据合并(可选)
    用purrr包的map_dfr替代循环,代码更简洁高效:

    library(purrr)
    volumes_dt <- map_dfr(file_list, ~fread(.x, na.strings = c("NA", "NaN", "", "?")))
    

    若坚持使用循环,建议用data.table初始化空对象,匹配fread的输出类型:

    volumes_dt <- data.table()
    for(file in file_list){
      temp_dt <- fread(file, na.strings = c("NA", "NaN", "", "?"))
      volumes_dt <- rbind(volumes_dt, temp_dt)
    }
    
  4. 排查异常情况
    若修正后仍返回空列表,检查:

    • 文件夹路径是否拼写正确(注意大小写)
    • R是否有该文件夹的访问权限
    • 文件夹内确实存在符合匹配规则的TSV文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 06:50:32