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

时间:2013-07-15 22:52:04

标签: r namespaces

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

1 个答案:

答案 0 :(得分:1)

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