如何确定定义特定标识符的包?

问题描述:

在阅读别人编写的源代码时,我很难弄清楚某个特定标识符(通常是函数)来自哪个包。 (这是因为这样的代码通过形式为library(...)的语句“导入”标识符,其使得能够在导入的标识符的代码中使用而不必提供包限定符。)如何确定定义特定标识符的包?

是否有一种简单的方法来确定包一个特定的标识符来自?

+1

如果您打印R中的函数定义,应该说从命名它来自。这是足够的信息给你吗? –

+0

?functionname和帮助页面的左上角。此外,Gabor Csardi在他的使用R2016演讲中表示,他自动将http://r-pkg.org(metacran)中的许多可浏览代码链接起来。 (我自己没有尝试过)。 –

+1

'getAnywhere('lm')$其中'是一个非手动的R解决方案,返回一个列表包和命名空间。 – Vandenman

您可以使用功能getAnywhere()。试试这个:

library(dplyr) 
getAnywhere("%>%")$where 

这告诉你两包和命名空间:

[1] "package:dplyr"  "namespace:magrittr"