Domanda

Sono nuovo di R e avendo un momento difficile mettere insieme le informazioni provenienti da diverse fonti on-line relativi a quello che è considerato una pratica "buono" con il codice di scrittura R. Ho letto guide di base, ma ho avuto difficoltà a trovare le informazioni che è sicuramente al corrente.

  1. Quali sono alcuni esempi di classi ben scritti / documentate S3?
  2. Come su corrispondenti classi S4?
  3. Cosa convenzioni si usa quando si commentano le classi .R / funzioni? Si fa a mettere tutti i tuoi commenti in entrambi i file e file .rd .r? È la sincronizzazione di questi file noiosa?
È stato utile?

Soluzione

Se utilizzare S3, S4, o di un pacchetto a tutti è per lo più una questione di stile (come dice Dirk), ma vi suggerirei di usare uno di quelli, se si vuole avere un oggetto molto ben strutturato (proprio come si farebbe in qualsiasi linguaggio OOP). Per esempio, tutte le classi di serie temporali hanno oggetti serie temporali (credo che sono tutti S3 con l'eccezione di la sua ) perché permette loro di far rispettare certi comportamenti attorno alla costruzione e l'utilizzo di tali oggetti . Allo stesso modo con la domanda circa la creazione di un pacchetto: è una buona idea per fare questo se si prevede di riutilizzare il codice frequentemente o se il codice sarà utile a qualcun altro. Si richiede un piccolo sforzo in più, ma la struttura organizzativa aggiunto può facilmente compensare il costo.

Per quanto riguarda S3 vs. S4 (discusso su R-Help qui e qui ) , la linea guida di base è che le classi S3 sono più "veloce e sporco" mentre le classi S4 luogo più rigido controllo oggetti e tipi . Se stai lavorando su Bioconductor, in genere si utilizzerà S4 (vedi, per esempio, "classi S4 e metodi" ).

Mi raccomando di leggere alcuni dei seguenti:

  1. "A (Not So) breve introduzione a S4" di Christophe Genolini
  2. "nicchia dei programmatori: Una classe semplice, in S3 e S4" da Thomas Lumley
  3. "Brobdingnag: un pacchetto '' Ciao mondo '' con metodi S4 "da Robin KS Hankin
  4. "Conversione di pacchetti di S4" di Douglas Bates
  5. "Come metodi S4 lavoro" da John Chambers

Per la documentazione, il suggerimento di Hadley è a posto: Roxygen renderà la vita più facile e mette la documentazione proprio accanto al codice. A parte questo, si può ancora voglia di fornire altri commenti nel codice oltre quello che i file man Roxygen o richiedono, nel qual caso si tratta di una buona pratica di commentare il codice per gli altri sviluppatori. Le osservazioni non finiranno nel pacchetto; essi saranno visibili nel codice sorgente unica.

Altri suggerimenti

Per 3. Utilizzare roxygen -. Che funziona come javadoc di prendere i commenti nei file di origine e creare file Rd

Questa è una mezza dozzina o più domande in bundle in un unico, che rende difficile a cui rispondere.

Quindi proviamo dall'interno verso l'esterno: in primo luogo cercare di risolvere il problema RODBC involucro. Una rappresentazione codice suggerirà stessa. Vorrei iniziare con funzioni semplici, e poi magari costruire un pacchetto intorno ad esso. Che già ti dà un po 'di incapsulamento.

Gran parte del resto è lo stile. Alcuni codici R prominenti giuro per S4, mentre altri giurano su di esso. È sempre possibile leggere le confezioni di altri, così come il codice di R stesso. E si può sempre re-implementare il tuo involucro RODBC in modi diversi e il confrontare i propri approcci.

Modifica: Riflettendo aggiornati e molto di domanda abbreviata: scegliere alcuni pacchetti da CRAN, in particolare tra quelli che si usa. Penso che troverete rapidamente un po 'più o meno interessanti in base al vostro stile.

un po 'più legati agli stili di che sostanza, ma il Google R guida allo stile vale la pena di leggere:

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top