Migliore risposta
Sono passato da stata a R. Ecco le mie osservazioni:
Vantaggi:
- R è open source, avrai accesso ad alcuni algoritmi o software davvero interessanti che le persone hanno scritto per problemi di nicchia.
- R ha visualizzazioni migliori. Una volta che hai una buona padronanza di ggplot2, puoi farlo cose piuttosto sorprendenti con quasi tutti i tipi di dati.
- Ho trovato R più semplice per scrivere pacchetti e funzioni personalizzati.
- R è più vicino alla comunità di stats / machine learning, quindi troverai più supporto / pacchetti di stata.
- Adoro RStudio Gui, specialmente quando lavori su un server.
- R fornisce un migliore supporto Latex.
- R ha una comunità molto attiva e liste di aiuto – sono stati incredibilmente veloci nel supportare tutte le mie domande.
- R funziona con i Big Data! Il pacchetto RHadoop ti consente di scrivere script MapReduce personalizzati utilizzando le funzioni R. Se hai a che fare con big data e puoi usare solo Stata, sei fottuto.
- Tendono ad essere molti più “hack” in R per problemi complicati come analisi di rete, bootstrap personalizzati, ecc. Non appena ti allontani dalle implementazioni vanilla, ho spesso trovato funzioni di scelta rapida nelle procedure in R mentre in Stata devi spesso codificare per uscire.
Svantaggi:
- R è open source, potresti dover aspettare un po per avere accesso a nuovi algoritmi se non cè sviluppo attivo.
- Stata è molto più vicino alla comunità delleconometria e ha molti più algoritmi, pacchetti e implementazioni di R. Se sei un economista, sarai frustrato dalla mancanza di completezza dei pacchetti econometrici.
- Stata ha una grande GUI che ti permette di scegliere in modo interattivo la procedura che vuoi eseguire e riempie la maggior parte dei dettagli per te. Questo è fantastico quando usi una funzione che non hai mai usato prima. R non ha davvero questo – Mi sento come se quando uso RI lo trovo su Google per la metà del tempo.
- Stata è più veloce di R [1].
- Scaricare i moduli di stata è un Processo molto più snello. Per i moduli R in CRAN di solito non ci sono problemi (anche se ho avuto problemi quando utilizzo una macchina Centos), ma ci sono diversi pacchetti essenziali che non sono su CRAN.
- La visualizzazione e la stampa standard di Stata sono molto migliori di R.
- Stata ha una guida standard migliore: mi sento come se potessi leggere la guida su qualsiasi funzione e capire esattamente cosa è necessario, mentre io non mi sento così per molti pacchetti R che sono scarsamente documentati.
- R ha una sintassi “WTF” e una struttura di denominazione dei pacchetti. La maggior parte dei progetti open source lo fa. Mi manca la semplicità delle funzioni stata (reg, lm, ecc.).
[1] http://ekonometrics.blogspot.com/2011/04/speeding-tickets-for-r-and-stata.html
Risposta
In generale, quando trovo lavverbio ” ovviamente “in una frase, trovo dopo di essa qualche dichiarazione ingiustificata. Qui, non sono daccordo con la tua affermazione che R ha “una sintassi bizzarra”. Ogni programmatore istruito preferirebbe programmare in Haskell o in qualche Lisp, ma il fatto è che questi linguaggi non raggiungeranno mai un vasto pubblico. R è un Lisp allinterno (ad esempio, puoi effettivamente codificare sul linguaggio in R, ma non in Python), ma è abbastanza vicino a un linguaggio scientifico allesterno. Infatti, come noti, come linguaggio per lanalisi dei dati , R è davvero il linguaggio più naturale ed elegante in circolazione. Se vuoi una prova di ciò, controlla lattività che circonda Python e Julia: implementazione di frame di dati (panda e data.frame in Jlia), formule (patsy), plyr (panda). Eppure tutte queste caratteristiche sembrano ancora un po innestate nelle altre lingue. Ciò che le persone percepiscono come “bizzarro” o “traballante” è o il risultato di una concessione alluso interattivo (ad esempio, la caduta della dimensione) o delleredità funzionale del linguaggio.
Sono daccordo che R ha molti aree da migliorare, ma soprattutto non nella sintassi del linguaggio. Certo, le sue convenzioni di denominazione sono incoerenti; la velocità e la gestione della memoria sono problemi noti; e così via. Perché? Alcuni motivi:
- La direttiva primaria di R (secondo il suo creatore, John Chambers) è produrre software affidabile. R attribuisce grande valore alla precisione e allaffidabilità. Le sue funzioni statistiche principali sono di primordine; anche il suo sistema grafico di base è stato attentamente studiato, dal binning degli istogrammi (problema non banale!) al posizionamento del testo. La velocità non è mai stata una grande preoccupazione, ed è giusto che sia così. Se la velocità e lefficienza della memoria fossero il problema, dovremmo tutti codificare in FORTRAN, che è anche facile e di alto livello. Il codice sorgente di R base è breve (400.000 LOC; a confronto, Numpy da solo ha le stesse dimensioni) e molto leggibile. Codice comprensibile e affidabile.
- Splus e R sono stati concepiti negli anni 80 e 90, ben prima dellera dei “big data” e dellascesa del machine learning. Ma R è migliorato. La gestione della memoria è molto migliore, probabilmente superiore a quella di MATLAB. Ha ancora molta strada da fare, ma alcune cose possono essere migliorate (ad esempio, la rappresentazione interna dei dati).
- Il team di sviluppo principale ha un turnover minimo e i giovani programmatori di 15 anni fa hanno ora 50 anni. Inoltre, sono molto meno coinvolti con la comunità e comprendono un personaggio pittoresco / mitico come Brian Ripley: un professore di Oxford responsabile del 70\% + dei commit, e non la persona più amichevole del pianeta e nelle mailing list R.
- R sta chiedendo un veloce compilatore JIT mirato a LLVM, ma queste cose non accadono dalloggi al domani. Hai bisogno di un team di programmatori eccezionali e istruiti con conoscenza del design di compilatori e interpreti, una forte etica del lavoro (per lanciare un prodotto in un paio danni) e lumiltà di reimplementare un linguaggio esistente invece di creare il proprio progetto vanity. Inoltre, vedi # 3.