5

有没有办法在我不知道完整文件名的情况下将文件读入 R。就像是。

read.csv("abc_*")

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

4

1 回答 1

9

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

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='')))

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

于 2012-11-30T07:39:44.873 回答