Voglio fare un piccolo pacchetto R con alcune funzioni molto semplici. La letteratura che uso è "Creazione di pacchetti R: Un tutorial" e "Scrittura di estensioni R". Anche se ho provato, ma non capisco il concetto di funzioni e metodi generici e come gestire gli argomenti all'interno delle diverse funzioni.Argomenti e classi per scrivere funzioni (generiche) in R
Ecco un piccolo esempio di come il mio codice è simile:
#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,...){}
Ho una funzione chiamata f con un f.default default. In realtà la mia funzione ha bisogno di diversi argomenti (non di loro è definita come x), quindi come devo fare la mia funzione generica? Il metodo di stampa dovrebbe semplicemente stampare l'output di f.default (in questo caso semplice simile all'output di riepilogo). il metodo plot.f usa l'output di f.default e un argomento aggiuntivo (obbligatorio). Come posso scrivere correttamente queste funzioni? I soliti metodi usano argomenti come "oggetto" e "x" ... ma come ho detto non ho bisogno di alcuna variabile x nelle mie funzioni ... Sono un po 'confuso ... forse qualcuno può aiutare.
Se c'è qualcuno là fuori come è disposto ad aiutarmi con questo problema, potrei anche inviare il codice R "reale" (non solo questo esempio fittizio).
I metodi devono essere coerenti con il generico. Se il tuo generico inizia con l'argomento 'x', allora anche i metodi devono. –