最近我一直在用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