【发布时间】:2012-05-08 08:57:42
【问题描述】:
我正在尝试获取与 完整路径 模式匹配的文件列表。到目前为止,我已经使用了 list.files() 但它不起作用。
假设我们有以下目录组织:
results
|- A
| |- data-1.csv
| |- data-2.csv
|
|- B
|- data-1.csv
|- data-2.csv
然后是下面的命令:
list.files(pattern='data-.*\\.csv', recursive=TRUE)
将返回所有匹配模式的文件。这可行,但使用 full-path 模式时会出现问题。例如,如果我想从目录 results/A 中获取所有 CSV 文件,我可以这样做:
list.files(pattern='results/A/data-.*\\.csv', recursive=TRUE)
但这不起作用。不知何故,R 似乎无法将完整路径模式用作正则表达式。在这种情况下,解决方案可能是只使用 results/A 作为基本路径。但在更复杂的问题中,这是无法做到的。例如,在某些时候我们可能想要匹配仅包含字符的子目录:
list.files(pattern='results/[A-Z]+/data-.*\\.csv', recursive=TRUE)
在 R 中可以做到这一点吗?
更新:在使用临时解决方案一段时间后,我决定停止一次又一次地输入相同的内容。所以,我创建了一个library 来简化这个任务。
【问题讨论】: