Как объединить слоты объекта класса S4 в один вектор - PullRequest
0 голосов
/ 06 сентября 2018

Я создал класс S4 с двумя слотами, например

setClass("A", 
     slots = c(
         x = "numeric",
         y = "numeric"
     )
)

и создал несколько объектов

 l1<-new("A", x = 5, y = 8)
 l2<-new("A", x = 6, y = 7)
 l3<-new("A", x = 7, y = 6)
 l4<-new("A", x = 8, y = 5)

Теперь я хочу объединить слот x в один вектор. Я делаю это как

c<-c(l1@x,l2@x,l3@x,l4@x)

Есть ли лучший способ сделать это, желательно цикл, потому что ни один из объектов не является фиксированным.

1 Ответ

0 голосов
/ 06 сентября 2018

Это становится намного проще, если ваши 4 объекта содержатся в списке:

my.list <- list(l1, l2, l3, l4)

sapply(my.list, attr, 'x')

[1] 5 6 7 8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...