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

时间:2012-11-30 07:31:31

标签: r

有没有办法将文件读入R,我不知道完整的文件名。像。的东西。

read.csv("abc_*")

在这种情况下,我不知道abc_

之后的完整文件名

1 个答案:

答案 0 :(得分:6)

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

read.csv(dir(pattern='^abc_')[1])

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

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

找到详细信息

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

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

您的案例中提交的路径可能是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='')))

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