Есть ли литература о том, как настроить собственные функции в квадратных скобках в R? - PullRequest
0 голосов
/ 08 ноября 2018

Я борюсь за написание функций для своего класса. Хэдли Уикхем предлагает реализовать функции для квадратных скобок, такие как [, [<- и т. Д. Но как это сделать? После комментария от r.user.05apr мне удается написать

`[.test`  <- function(x, y){
  substr(x, start = y[1], stop = y[length(y)])
} 
foo <- "hello world"
class(foo) <- "test"
foo[2:5] #what correctly returns "ello"

Я нашел сайтов о том, как они называются , но нет объяснений и примеров того, как они определены. Например, для упомянутой функции [<- я предполагаю, что необходимы три аргумента: объект, которым нужно манипулировать, индекс, показывающий, какие элементы объектов должны быть заменены, и, наконец, замена. Мне удалось получить желаемый результат к

`[<-.test` <- function(obj, index, value){
  tmp <- unlist(strsplit(obj, ""))
  tmp[index] <- value
  return(paste(tmp, collapse = ""))
} 

foo <- "hello world"
class(foo) <- "test"
foo[c(2, 5)] <- "X"

но только после выяснения, что третий элемент должен называться value и больше ничего. Поэтому я ищу хороший, легкий для понимания (этот критерий не соответствует Написание R-расширений ; больше похоже на Создание R-пакетов Фридрихом Лейшем ) литературным материалом, посвященным методам упомянутый Уикхемом.

...