Если объект x
имеет динамически сгенерированный класс, и вы хотите применить someFun
к каждому слоту и сохранить результаты, вы можете выполнить цикл следующим образом:
slotApply <- function(x,FUN,...){
cl <- class(x)
result <- list()
for(i in slotNames(cl)){
result[[i]] <- FUN(slot(x,i),...)
}
result
}
Вы используете эту slotApply
функцию аналогично другим * применяемым функциям:
> setClass("simpleClass",slots=c(slot1="integer",slot2="numeric")) -> simpleClass
> x <- simpleClass(slot1=1:5,slot2=rnorm(10))
> x
An object of class "simpleClass"
Slot "slot1":
[1] 1 2 3 4 5
Slot "slot2":
[1] 1.00247979 -1.75796879 0.06510241 -0.53409906 0.85805243 -0.30981176 -1.06817163 -1.45182185 0.09195955 1.17004958
> slotApply(x,sum)
$slot1
[1] 15
$slot2
[1] -1.934229
>