Son zamanlarda S4 sınıflarıyla çok şey denedim ve çalışma alanımdaki tüm sınıf tanımlarını ve özel yöntemleri temizlemek için R'yi yeniden başlatmanın bir acısı. Açıkçası rm(list=ls(all.names=TRUE))
kullanım dışıdır. Tüm sınıfları ve yöntemleri tek tek satırları yazarak elle kaldırabilirim, ancak eminim ki daha kolay bir yol olmalı.Bir R çalışma alanından tüm özel yöntemleri ve sınıfları nasıl kaldırabilirim?
.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])
})
deneyin rm()
herşeyi kaldırmak için: sorunumu vitrine
bir örnek
rm(list=ls(all.names=TRUE))
Ancak sınıf tanımı ve özel yöntemi hala mevcuttur:
> x <- new("myClass", mySlot=1:4)
> x[1]
Error in x[1] : could not find function "mySlot"
mySlot()
bir nesne olduğu için h rm
, ancak mySlot()
referanslı yöntem kalmıştır. Tek bir tıklamayla tüm sınıflarını ve tüm özel yöntemlerini nasıl kaldırılacağını bilmek isterim.
Sınıflar, AFAIK, removeClass() ile. Ancak, sizin durumunuzda otomatikleştirmek için iyi bir yol bilmiyorum. Sınıf isimleri listesindeyseniz, bunu yineleyebilir ve sınıfları removeClass() ile silebilirsiniz. – ddiez