【问题标题】:Searching a functions source code搜索函数源代码
【发布时间】:2013-10-24 10:42:51
【问题描述】:

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

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

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

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

grep('sort', shapiro.test)

但由于shapiro.test 是一个函数,这会给出错误“as.character(x) 中的错误: 不能将类型“闭包”强制转换为“字符”类型的向量”。

我没有运气尝试将函数强制为字符串。另外,我不希望在编译基本函数时能够搜索它们。

【问题讨论】:

    标签: r function


    【解决方案1】:

    这里是使用deparse的解决方案:

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

    【讨论】:

      【解决方案2】:

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

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

      或者您可以直接调用edit(shapiro.test) 并使用options(editor=) 指定的文本编辑器来搜索函数。

      【讨论】:

      • 两个答案都相似且出色。我对另一个答案给出了“正确”,只是看起来稍微整洁了一点。谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多