搜索函数源代码

时间:2013-10-24 10:42:52

标签: r function grep

在R中,您可以查看函数的来源,因为函数只是另一个对象。

我正在寻找一种搜索此源代码的方法,而不知道保存源的文件。

例如,我可能想知道函数shapiro.test是否包含函数sort(它确实如此)。

如果shapiro.test是字符串或字符串向量,我会使用

grep('sort', shapiro.test)

但由于shapiro.test是一个函数,因此会出现错误“as.character(x)中的错误:   不能强制类型'封闭'类型为'character'的类型。“

我没有试图将函数强制转换为字符串。作为一个额外的,我不希望能够在编译时搜索基本函数。

2 个答案:

答案 0 :(得分:8)

这是使用deparse的解决方案:

> grep ("sort", deparse(shapiro.test))
[1] 5

答案 1 :(得分:3)

您可以将函数包装在capture.output中,这会将每一行转换为字符向量中的元素。

> grep("sort",capture.output(shapiro.test))
[1] 5 

或者您可以致电edit(shapiro.test)并使用options(editor=)指定的文字编辑器搜索该功能。