Аргументы и классы для написания (общих) функций в R

Я хочу сделать небольшой пакет R из нескольких очень простых функций. Я использую литературу «Создание пакетов R: учебное пособие» и «Написание расширений R». Хотя я пробовал, но я не совсем понимаю концепцию общих функций и методов и то, как обрабатывать аргументы в различных функциях.

Вот небольшой пример того, как выглядит мой код:

#Make generic function
f <- function(x,...) UseMethod("newmethod")

#Default method
f.default <- function(a,b=5,c=3,...){
    out <- a+b+c
    class(out) <- "fclass"
}

# Print method
print.f <- function(x,...){
    cat("Result:")
    print(x)
}

# Summary method
summary.f <- function(object,...){
    res <- object
    class(res) <- "fsummary"
    print(res)
}

# Plot method
plot.f <-function(x,p=0.3,...){}

У меня есть функция f со значением по умолчанию f.default. На самом деле моей функции нужно несколько аргументов (ни один из них не определяется как x), так как мне создать свою универсальную функцию? Метод печати должен просто распечатать вывод f.default (в этом простом случае, аналогичный итоговому выводу). Метод plot.f использует вывод f.default и один дополнительный аргумент (обязательно). Как мне правильно написать эти функции? Обычные методы используют аргументы типа «объект» и «x» ... но, как я уже сказал, мне не нужна никакая переменная x в моих функциях ... Я немного запутался ... может быть, кто-то может помочь.

Если есть кто-то, кто хочет помочь мне с этой проблемой, я мог бы также отправить «настоящий» R-код (не только этот вымышленный пример).

5
задан Bill the Lizard 8 December 2011 в 17:31
поделиться