我在卸载在R中创建的包的 namespace 时遇到了麻烦。每次尝试这样做时,都会出现以下错误:

.mergeMethodsTable(通用,mtable,get(tname,envir = env),
试图从基本类(“环境”)的对象获取插槽“defined”,而没有
插槽
调用:unloadNamespace ...-> .updateMethodsInTable-> .mergeMethodsTable

这是发生上述错误后调用traceback()的结果。

>4: .mergeMethodsTable(generic, mtable, get(tname, envir = env), attach)
 3: .updateMethodsInTable(fdef, where, attach)
 2: methods:::cacheMetaData(ns, FALSE, ns)
 1: unloadNamespace("coleXcms")

老实说,我已尽我所能,但无济于事。我对R很陌生,所以我希望有人可以帮助我。

另外,不知道这是否有用,但这是我的包裹的卸货钩。 (我的包裹的名字是coleXcms)
.onUnload <- function(libpath) {
    mzR:::rampCloseAll()
    library.dynam.unload("coleXcms", libpath)
}

最佳答案

我成功使用的函数是unloadNamespace。看来library.dynam.unload旨在删除DLL,但我不清楚它是否会删除程序包的其余部分。

关于r - 命名空间无法在R中卸载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23575767/

10-12 00:26