R 使用系统调用快速列出文件

R 使用系统调用快速列出文件,r,R,我试图列出许多与模式匹配的文件,我可以列出这些文件,以后再lappy。在R中,使用list.files的速度相当慢,但我发现 system(find "\path\" -name "pattern") 使其速度提高约5倍 问题是上面的方法只在终端中有效,而在R中它只返回“1的列表” 我做错了什么?您真的应该在整个命令周围加上引号,而且如果您想将输出保存到R对象/向量中,您可以使用名为intern的选项,其“TRUE”值如下所示: system('find "/Users/pradeepkuma

我试图列出许多与模式匹配的文件,我可以列出这些文件,以后再
lappy
。在R中,使用
list.files
的速度相当慢,但我发现

system(find "\path\" -name "pattern")
使其速度提高约5倍

问题是上面的方法只在终端中有效,而在R中它只返回“1的列表”


我做错了什么?

您真的应该在整个命令周围加上引号,而且如果您想将输出保存到R对象/向量中,您可以使用名为intern的选项,其“TRUE”值如下所示:

system('find "/Users/pradeepkumar" -name "*.R"',intern=T)
收到的输出:

> system('find "/Users/pradeepkumar" -name "*.R"',intern=T)
 [1] "/Users/pradeepkumar/Desktop/company doc/g/code/SIPC-10.R"                                                                                                                 
 [2] "/Users/pradeepkumar/Desktop/company doc/g/code/SIPC-2.R"                                                                                                                  
 [3] "/Users/pradeepkumar/Desktop/company doc/g/code/SIPC-3.R"  

我认为
system
需要将命令设置为单个字符串,即
system(“查找‘路径’-名称‘模式’”)
谢谢,它可以工作。。。然而,只有我输入全名,它才有效。使用定义的变量(对于一般函数)会破坏它,例如
系统('find my_path-name my_pattern',intern=TRUE)
。我不知道如何管理单引号。也许有一些
paste()
trick?。你可以使用:
x好的,现在我已经用上面的
raw\u list Edit命令列出了每个文件。它起作用了。我刚刚把
intern=TRUE
放在了错误的括号里。@komodovaran_uu祝贺你,为你感到高兴,很高兴它成功了