首页 > 解决方案 > R:list.files 返回 NA 而不是文件名

问题描述

我正在尝试使用以下命令检索存在于我的工作目录中的文件“cg3-chem-djtayl18PSY101.txt”的文件名。

regexName = "*chem-djtayl18*.txt"
fileName <- list.files(path = ".", pattern = regexName, ignore.case = TRUE)[1] # returning NA

但是,它将文件名返回为 NA。尽管它以相同的方式为同一目录中的 100 个其他文件工作。为什么会这样?

标签: r

解决方案


因为您的正则表达式与文件名不匹配。

regexName = "*chem-djtayl18*.txt"
filename <- "cg3-chem-djtayl18PSY101.txt"
grepl(regexName, filename)
#[1] FALSE

也许你需要模式。

regexName = "chem-djtayl18.*\\.txt"
grepl(regexName, filename)
#[1] TRUE

推荐阅读