如何删除R中已保存的.rda对象中的名称空间引用?

我有一个包含一个数据对象(.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'命名空间


我想我已经通过创建一个新的网络对象解决了这个问题,并将msm.sim对象的每个命名元素复制到新对象上,然后将新对象重新保存在旧对象上。 也许命名空间附件是由附加到msm.sim的函数触发的,当它由ergm包生成时,所以在调用对象的edit()时我没有看到它? 一定会有更好的办法。 我仍然认为,如果名称空间触发元素可以附加到对象上,应该有函数列出它们是什么以及它们附着在哪里。

链接地址: http://www.djcxy.com/p/38333.html

上一篇: How to remove a namespace reference in a saved .rda object in R?

下一篇: Creating and serializing / saving global variable from within a NAMESPACE in R