Chcę zrobić małe paczka R z kilku bardzo prostych funkcji. Używam literatury "Tworzenie pakietów R: samouczek" i "Pisanie rozszerzeń R". Chociaż próbowałem, ale tak naprawdę nie rozumiem pojęcia ogólnych funkcji i metod oraz jak radzić sobie z argumentami w ramach różnych funkcji.Argumenty i klasy do pisania (ogólne) funkcje w R
Oto mały przykład jak mój kod wygląda następująco:
#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,...){}
Mam funkcji o nazwie f z domyślnym f.default. W rzeczywistości moja funkcja wymaga kilku argumentów (nieokreślonych jako x), więc w jaki sposób mam wykonać funkcję generyczną? Metoda drukowania powinna po prostu wydrukować dane wyjściowe f.default (w tym prostym przypadku podobnym do wyniku podsumowania). Metoda plot.f używa wyjścia f.default i jednego dodatkowego argumentu (obowiązkowo). Jak mogę poprawnie napisać te funkcje? Zwykłe metody używają argumentów takich jak "object" i "x" ... ale jak już powiedziałem, nie potrzebuję żadnej zmiennej x w moich funkcjach ... Jestem trochę zdezorientowany ... może ktoś może pomóc.
Jeśli jest ktoś, kto jest chętny, by pomóc mi w rozwiązaniu tego problemu, mógłbym wysłać "prawdziwy" kod R (nie tylko ten fikcyjny przykład).
Metody muszą być zgodne z ogólnymi. Jeśli twój ogólny zaczyna się od argumentu "x", to metody też muszą. –