识别名称空间中变量的来源

时间:2020-10-09 10:25:34

标签: r

我需要更改正在使用的程序包的名称空间中包含的变量的定义,但是在任何地方都找不到该定义。我可以这样识别它

> library("MyPackage")
> getAnywhere(MyVariable)
A single object matching ‘MyVariable’ was found
It was found in the following places
  namespace:MyPackage
with value ...

我也可以在跑步时看到它

> env = asNamespace("MyPackage")
> ls(envir = env)

但是,它不包含在项目文件夹的NAMESPACE文件中。 所以我想知道,如果它不包含在NAMESPACE文件中,它可能从哪里来?即使getAnywhere()链接到MyPackage,它也可能来自另一个包吗?在那种情况下,我应该能够从该软件包的NAMESPACE文件中看到它吗?

1 个答案:

答案 0 :(得分:1)

NAMESPACE文件用于导入和导出。如果软件包未导出变量(即,这是他们不希望您使用的内部变量),则该变量将不在其中。

MyVariable可能来自软件包中的任何地方。

如果要访问它,请使用::::::可以访问未导出的变量,而::仅可以访问导出的变量。

MyPackage:::MyVariable

如果要修改它,请使用assignInNamespace

assignInNamespace("MyVariable", "NEW VALUE", ns = "MyPackage")
相关问题