Я пытаюсь преобразовать каждый объект в моем векторе строк в ссылочный класс.Предположим, мой справочный класс:
myrefclass <- function(str) {
methods <- list()
methods$cnt <- function() {
return(str_length(str))
}
methods
}
Я попытался преобразовать следующие векторы ( хотя и без успеха ):
v1 <- c("ABC", "D", "FGHI")
v2 <- c(ABC="ABC", D="D", FGHI="FGHI")
Затем я пытаюсь применитьссылочный класс для каждого элемента вектора:
res1 <- sapply(v1, myrefclass)
res2 <- sapply(v2, myrefclass)
Я бы тогда подумал, что мог бы использовать это следующим образом (, но, к сожалению, это не работает ):
> res1["ABC"]$cnt
NULL
> res2["ABC"]$cnt
NULL
Как создать вектор ссылочных классов и получить доступ к его методам?
ПРИМЕЧАНИЕ # 1: Я бы предпочел решение base-R, но было бы интересно посмотреть, какие пакеты могут помочь
ПРИМЕЧАНИЕ № 2: Я ищу динамическое решение.Чтобы проиллюстрировать этот момент, предположим, что расширением этого вопроса будет использование res1
или res2
для поиска всех строк, имеющих $cnt=3
.Следовательно, доступ к строкам, как в res1$ABC$cnt
, не будет работать, поскольку вы не знаете, что ABC
находится в v1
или v2
(в зависимости от того, что вы считаете уместным).