将文件读入具有部分未知文件名的R

Kun*_*tra 3 r

有没有办法将文件读入R,我不知道完整的文件名.就像是.

read.csv("abc_*")
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我不知道之后的完整文件名 abc_

Thi*_*ilo 6

如果您只有一个符合条件的文件,则可以这样执行:

read.csv(dir(pattern='^abc_')[1])
Run Code Online (Sandbox Code Playgroud)

如果有多个文件,这种方法只会使用第一个命中.在更详细的版本中,您可以遍历所有匹配并将它们附加到一个数据帧或类似的东西.

请注意,该模式使用正则表达式,因此与您的预期有所不同(以及我在第一次回答问题时错误地假设).细节可以使用?regex


如果您有要提交的目录,则必须相应地修改dir命令:

read.csv(dir('path/to/your/file', full.names=T, pattern="^abc"))
Run Code Online (Sandbox Code Playgroud)

您的案例中提交的路径可能是c:\\users\\user\\desktop,然后是上面的模式.full.names=T强制dir()输出整个路径,而不仅仅是文件名.尝试运行,dir(...)不要read.csv了解那里发生的事情.


如果你想把你的路径作为一个完整的字符串,它又会变得有点复杂:

filepath <- 'path/to/your/file/abc_'
read.csv(dir(dirname(filepath), full.names=T, pattern=paste("^", basename(filepath), sep='')))
Run Code Online (Sandbox Code Playgroud)

如果文件名包含任何正则表达式关键字,则该过程将失败.您必须事先用相应的转义序列替换它们.但这又是另一个话题.