R 如何找到定义函数的文件?
问题的标题几乎说明了一切 给出的解决方案并不总是有效的。例如:R 如何找到定义函数的文件?,r,R,问题的标题几乎说明了一切 给出的解决方案并不总是有效的。例如: > class(facet_grid) [1] "function" > attr(facet_grid, "srcref") NULL > attributes(facet_grid) NULL 加载函数后,environment()-函数将返回函数“所在”的包 > environment(facet_grid) <environment: namespace:ggplot2> >环境(方面
> class(facet_grid)
[1] "function"
> attr(facet_grid, "srcref")
NULL
> attributes(facet_grid)
NULL
加载函数后,environment()-函数将返回函数“所在”的包
> environment(facet_grid)
<environment: namespace:ggplot2>
>环境(方面网格)
从CRAN(或github)下载ggplot2_version_whatever.tag.gz并展开后,您可以(使用系统文本搜索工具)找到一个名为facet grid.r的文件,该文件的定义从第125行开始:
facet_grid <- function(facets, margins = FALSE, scales = "fixed", space = "fixed", shrink = TRUE, labeller = "label_value", as.table = TRUE, switch = NULL, drop = TRUE) {
facet\u grid我不清楚如何从environment
返回的值到定义函数的文件路径。使用.libPaths()
查找软件包的位置。我知道我的软件包安装在哪里。我仍然找不到在哪里定义了facet\u grid
。@kjo您需要搜索包源代码。R不知道或不关心函数的源代码是在哪个文件中定义的。如果需要ggplot2函数的源代码,则需要转到CRAN获取tar.gz文件。大多数人安装二进制软件包而不是源代码安装:Google search很快就会生成这样的结果:不是我的否决票,但一般来说,你无法直接确定函数定义在哪个文件中,尤其是因为函数不需要在文件中定义(您可以直接在控制台中定义它)。在另一个答案中实现这一点的唯一原因是调用source('some/file.R')
提供了source
创建类srcref
对象(即文件路径)所需的信息。即使您能够缩小提供函数的包的范围,也不能保证some\u function
是在名为some\u function.R
的文件中定义的,因此您很可能需要grep for"一些函数请在问题中指出您为什么需要这些信息。a.如果您只需要函数的源代码,只需在控制台中键入不带括号的名称,例如facet\u grid
。b如果您确实需要软件包中某个函数的实际源代码,您可以使用来搜索和查找。或者只需在谷歌上搜索它,就可以了可能找到原始回购协议。