最近我一直在用S4类进行很多实验,并且重新启动R以清除我的工作空间中的所有类定义和自定义方法是一种痛苦。显然rm(list=ls(all.names=TRUE))
是没用的。我可以通过一行一行地手动删除所有的类和方法,但我相信这会有一个更简单的方法。如何从R工作区中删除所有自定义方法和类?
一个例子展示了我的问题:
.myClass <- setClass("myClass", representation=representation(mySlot="numeric"))
mySlot <- function(x) [email protected]
setMethod("[", signature=c("myClass", "numeric", "missing"), function(x, i, j, ...) {
initialize(x, mySlot=mySlot(x)[i])
})
尝试与rm()
除去一切:
rm(list=ls(all.names=TRUE))
然而,类定义和定制方法仍然存在:
> x <- new("myClass", mySlot=1:4)
> x[1]
Error in x[1] : could not find function "mySlot"
由于mySlot()
是一个被删除的对象h rm
,但保留了参考mySlot()
的方法。我想知道如何去除全部类和全部定制方法一举。
类可以被删除, AFAIK,带removeClass()。但是,我不知道在你的情况下自动化它的好方法。如果你有一个类名列表,你可以遍历它,然后使用removeClass()移除类。 – ddiez 2014-09-22 16:50:54