Я хочу сделать небольшой пакет 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), так как мне сделать свою универсальную функцию?
Метод print должен просто напечатать вывод f.default (в этом простом случае, аналогичном итоговому выводу). Метод plot.f использует выходные данные f.default и один дополнительный аргумент (обязательный). Как я могу написать эти функции правильно? Обычные методы используют такие аргументы, как «object» и «x» ... но, как я уже сказал, мне не нужны переменные x в моих функциях ... я немного запутался ... может быть, кто-то может помочь.
Если есть кто-то, кто хочет помочь мне с этой проблемой, я мог бы также отправить «настоящий» код R (не только этот вымышленный пример).