【发布时间】:2014-05-23 18:49:01
【问题描述】:
在终端/shell脚本中,您可以使用ls -l列出当前目录中的所有文件,然后通过管道将其执行附加命令。例如,ls -l | grep -i "calc" 返回文件名中包含calc 的所有文件。在 R 中,您可以使用 ls() 命令列出当前存储在工作区中的所有对象。
但是,我想缩小 ls() 返回的列表,使用 R 中的 grep 功能,其中输入是 ls() 返回的列表,输出是 grep 缩小的列表(或某些东西),很像我上面提到的 UNIX 管道功能。在 R 中是否可行?
另外,在 R 中通过类似xargs 的功能来缩小列表是否也可行?所以我想只获取文字包含if 的对象,这样如果ls() 返回的列表中的函数在其中包含if-else 条件,我想在控制台中显示该函数。您可以在终端中使用find . | xargs grep "if" 进行操作(当然,这些是当前目录中的文件,而不是工作区中的 R 对象,但我展示它只是为了说明的目的)。
请注意,这不是关于如何从 R 中调用 shell 命令的帖子。这不是我想要做的。
我使用 OS X 10.9.3 和 R 3.1.0。
【问题讨论】:
-
你在问什么?
R有grep命令。编译后的函数中不会有文本字符串if。 -
你想做什么? R 有其解析和过滤文本的方法。也许你应该花时间学习 R 的做事方式,而不是尝试应用一些效率不高的东西。