У меня есть список объектов S4. Мне нужно проверить, присутствует ли в этом списке один объект S4. Я попытался с некоторыми альтернативами, найденных на этой странице без успеха:Имеет элемент класса S4 в списке
Я попытался с существует:
exists(foo,where=my_list)
Error in list2env(list(<S4 object of class "Atributo">, <S4 object of class "Atributo">,
;names(x) must be a character vector of the same length as x
С матча:
match(foo, my_list)
'match' requires vector arguments
Бинарный оператор матча дает тот же результат% в %:
foo %in% my_list
'match' requires vector arguments
И is.element:
is.element(foo,my_list)
Error in match(el, set, 0L) : 'match' requires vector arguments
Например, я создал 5 элементов и составил список из 3 из них. Мне нужно знать, если один конкретный элемент в списке:
setClass("foo", representation = representation(bar = "numeric"))
one <- new("foo", bar = 12)
two <- new("foo", bar = 13)
three <- new("foo", bar = 14)
four <- new("foo", bar = 15)
five <- new("foo", bar = 16)
mylist <- list(one,two,three)
Я хотел бы проверить, если конкретный элемент существует в списке, например:
usefull_function(four,my_list)
FALSE
usefull_function(two,my_list)
TRUE
Я знаю, что если они S4 элементы Я могу проверить, существует ли среда в списке сред. ¿Каким будет элегантный/быстрый способ сделать это?
спасибо.
Проблема с этой реализацией заключается в том, что у меня всегда будут объекты класса «foo» в списке. Например, у меня есть «baz» и «baz2», и вам нужно проверить, существует ли «baz», а не «baz2» –
@FelipeGonzalez, о, поэтому вы ищете имя объекта в отличие от класса? или оба? – cdeterman
Название не имеет значения. Например, у меня есть 10 элементов класса «foo» и только 5 из них в списке, мне нужно проверить, есть ли один элемент в списке. Точное название того, как оно было объявлено, на самом деле не имеет значения. –