在R中,您可以查看函数的来源,因为函数只是另一个对象。
我正在寻找一种搜索此源代码的方法,而不知道保存源的文件。
例如,我可能想知道函数shapiro.test
是否包含函数sort
(它确实如此)。
如果shapiro.test
是字符串或字符串向量,我会使用
grep('sort', shapiro.test)
但由于shapiro.test
是一个函数,因此会出现错误“as.character(x)中的错误:
不能强制类型'封闭'类型为'character'的类型。“
我没有试图将函数强制转换为字符串。作为一个额外的,我不希望能够在编译时搜索基本函数。
答案 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=)
指定的文字编辑器搜索该功能。