R语言无需指定完整文件名读取指定前缀.tst文件的方法咨询
报错原因
- R基础IO函数(包括
read.table)本身不支持直接解析路径中的通配符*,你直接传入带*的路径时,函数会把*作为文件名的固定组成部分去查找,自然找不到对应文件 - 你描述里的目标文件后缀为
.tst,但示例代码里写的是.tsv,扩展名不匹配也是报错的常见诱因
解决方法
1. 先通过通配符匹配到目标文件的完整路径
用R内置的Sys.glob()函数解析通配符,获取所有符合规则的文件路径:
# 注意将扩展名替换为你实际的文件后缀.tst target_files <- Sys.glob("/home/myname/project/datasets/W*.tst")
你可以先加一步校验,避免无匹配文件时后续代码报错:
if (length(target_files) == 0) { stop("未找到符合规则的文件,请检查路径或文件生成状态") }
如果每次运行只会生成1个W开头的.tst文件,直接取第一个匹配结果即可:
target_file <- target_files[1]
2. 读取目标文件
将匹配到的文件路径传入read.table即可:
read.table(file = target_file, sep = '\t', header = TRUE)
可选:批量读取多个符合条件的文件
如果存在多个W开头的.tst文件需要合并读取,可以用批量处理逻辑:
# 批量读取所有匹配文件 df_list <- lapply(target_files, function(path) { read.table(file = path, sep = '\t', header = TRUE) }) # 合并为一个数据框,需要提前安装加载dplyr包 library(dplyr) total_df <- bind_rows(df_list)
内容的提问来源于stack exchange,提问作者MK Huda
相关产品推荐
相关产品推荐

