我有一个包含数据对象(.rda)的包,它最初是由另一个包创建的,似乎有一个对其原始命名空间的引用。
load()
的手册页解释了:
对象可以通过对名称空间的引用来保存,通常作为其一部分 功能或公式的环境。从R 3.1.0这样的对象 即使命名空间不可用,也可以加载它:它被替换 通过引用全球环境并发出警告。警告 用这样的引用标识第一个对象(但可能有 不止一个)。
我需要删除此引用,因为它会在程序包检查期间引发警告。我试过加载和重新保存对象,但没有看到如何修改命名空间。有什么建议吗?
编辑:
对象是'网络'。我还没有想出另一个例子,但应该能够重现相同的例子:
install.packages('ndtv')
library(ndtv)
loadedNamespaces()
[1] "animation" "base" "datasets" "graphics"
[5] "grDevices" "methods" "ndtv" "network"
[9] "networkDynamic" "sna" "statnet.common" "stats"
[13] "tools" "utils"
data(msm.sim)
loadedNamespaces()
[1] "animation" "base" "datasets" "ergm"
[5] "graphics" "grDevices" "methods" "ndtv"
[9] "network" "networkDynamic" "sna" "statnet.common"
[13] "stats" "tools" "utils"
注意添加'ergm'命名空间
答案 0 :(得分:1)
我想我已经通过创建一个新的网络对象,并将msm.sim
对象的每个命名元素复制到新对象,然后将旧对象重新保存在旧对象上来解决了这个问题。也许命名空间附件是由ergm包生成的msm.sim
附加的函数触发的,所以在对象上调用edit()
时我看不到它?肯定有更好的办法。我仍然认为如果名称空间触发元素可以附加到一个对象,那么应该有一个函数来列出它们是什么以及它们的附加位置。