Cosa significa "metodi S3" in R?



Answers

Per iniziare con S3, guarda il codice per la funzione median . Mediante digitazione al prompt dei comandi rivela che ha una linea nel suo corpo, vale a dire

UseMethod("median")

Ciò significa che è un metodo S3. In altre parole, puoi avere una diversa funzione median per le diverse classi S3. Per elencare tutti i possibili metodi mediani, digitare

methods(median) #actually not that interesting.  

In questo caso, c'è un solo metodo, il default, che viene chiamato per qualsiasi cosa. Puoi vedere il codice per questo digitando

median.default

Un esempio molto più interessante è la funzione di print , che ha molti metodi diversi.

methods(print)  #very exciting

Si noti che alcuni dei metodi hanno * s accanto al loro nome. Ciò significa che sono nascosti all'interno dello spazio dei nomi di alcuni pacchetti. Usa find per scoprire in quale pacchetto si trovano. Ad esempio

find("acf")  #it's in the stats package
stats:::print.acf
Question

Dato che sono abbastanza nuovo per R, non so quali siano i metodi e gli oggetti S3. Ho scoperto che esistono sistemi di oggetti S3 e S4, e alcuni consigliano di usare S3 su S4 se possibile (http://google-styleguide.googlecode.com/svn/trunk/google-r-style.html). Tuttavia, non conosco la definizione esatta di metodi / oggetti S3.




Sono arrivato a questa domanda per lo più chiedendomi da dove provenissero i nomi. Da questo articolo di wikipedia risulta che il nome si riferisce alla versione del linguaggio di programmazione S su cui si basa R. Gli schemi di dispiegamento del metodo descritti nelle altre risposte provengono da S e sono etichettati in modo appropriato in base alla versione.




Links