Cel mai bun răspuns
Am făcut trecerea de la stata la R. Iată observațiile mele:
Avantaje:
- R este open source, veți avea acces la niște algoritmi sau programe software foarte bune, pe care oamenii le-au scris pentru probleme de nișă.
- R are vizualizări mai bune. Odată ce aveți un control bun pe ggplot2, puteți face lucruri destul de uimitoare cu aproape orice tip de date.
- Am găsit R mai ușor pentru scrierea pachetelor și funcțiilor personalizate.
- R este mai aproape de statisticile / comunitatea de învățare automată, așa că veți găsi mai mult suport / pachete decât stata.
- Îmi place RStudio Gui, mai ales când lucrez pe un server.
- R oferă o mai bună asistență pentru latex.
- R are o comunitate foarte activă și liste de ajutor – au fost uimitor de rapide în sprijinul tuturor întrebărilor mele.
- R funcționează cu Big Data! Pachetul RHadoop vă permite să scrieți scripturi MapReduce personalizate folosind funcțiile R. Dacă vreodată trebuie să aveți de-a face cu date mari și puteți folosi doar Stata, sunteți înșelat.
- Tind să existe mult mai multe „hacks” în R pentru probleme complicate, cum ar fi analiza rețelei, bootstraps personalizate etc. De îndată ce vă aventurați de implementările de vanilie, am găsit deseori funcții de comenzi rapide în procedurile din R, în timp ce în Stata trebuie să vă codificați ieșirea.
Dezavantaje:
- R este open source, este posibil să trebuiască să așteptați o vreme pentru a avea acces la noi algoritmi dacă nu există o dezvoltare activă.
- Stata este mult mai aproape de comunitatea econometrică și are mult mai mulți algoritmi, pachete și implementări decât R. Dacă sunteți economist, veți fi frustrat de lipsa de exhaustivitate a pachetelor econometrice.
- Stata are o interfață grafică excelentă care vă permite să alegeți în mod interactiv procedura pe care doriți să o rulați și să completeze majoritatea detaliilor pentru dvs. Acest lucru este extraordinar atunci când utilizați o funcție pe care nu ați mai folosit-o până acum. R nu are cu adevărat acest lucru – simt că atunci când folosesc RI sunt pe Google jumătate din timp.
- Stata este mai rapidă decât R [1].
- Descărcarea modulelor stata este o proces mult mai raționalizat. Pentru modulele R din CRAN, de obicei nu există o problemă (deși am „probleme când folosesc o mașină Centos), dar există mai multe pachete esențiale care nu sunt pe CRAN.
- Vizualizarea și graficarea standard ale lui Stata sunt mult mai bune decât R.
- Stata are un ajutor standard mai bun – simt că pot citi ajutorul pentru orice funcție și îmi dau seama exact ce am trebuie să fac asta, în timp ce eu nu mă simt așa pentru mai multe pachete R care sunt slab documentate.
- R are o sintaxă „WTF” și o structură de denumire a pachetelor. Majoritatea proiectelor open-source o fac. Mi-e dor de simplitatea funcțiilor stata (reg, lm etc.).
[1] http://ekonometrics.blogspot.com/2011/04/speeding-tickets-for-r-and-stata.html
Răspuns
În general, când găsesc adverbul ” evident „într-o propoziție, găsesc o declarație nejustificată în urma ei. Aici, nu sunt de acord cu afirmația dvs. conform căreia R are „o sintaxă bizară”. Fiecare programator educat ar prefera să codeze în Haskell sau în unele Lisp, dar faptul este că aceste limbi nu vor ajunge niciodată la un public mare. R este un Lisp în interior (de exemplu, puteți codifica limba în R, dar nu în Python), dar este suficient de aproape de un limbaj științific din exterior. De fapt, după cum observați, ca limbaj pentru analiza datelor , R este într-adevăr cel mai natural și elegant limbaj de acolo. Dacă doriți dovada acestui lucru, verificați activitatea din jurul Python și Julia: implementarea cadrelor de date (pandas și data.frame în Jlia), formule (patsy), plyr (pandas). Și totuși, toate aceste caracteristici par încă oarecum grefate în celelalte limbi. Ceea ce oamenii percep ca „bizar” sau „ciudat” este fie rezultatul concesiunii la utilizarea interactivă (de exemplu, dimensiunea scăzută), fie a patrimoniului funcțional al limbii.
Sunt de acord că R are o mulțime de domenii de îmbunătățit, dar mai ales nu în sintaxa limbii. Sigur, convențiile sale de denumire sunt inconsistente; gestionarea vitezei și a memoriei sunt probleme cunoscute; și așa mai departe. De ce este asta? Câteva motive:
- directiva primară a R (conform creatorului său, John Chambers) este de a produce software de încredere. R pune mare valoare pe precizie și fiabilitate. Funcțiile sale statistice de bază sunt de top; chiar și sistemul său grafic de bază a fost atent gândit, de la îmbinarea histogramelor (nu o problemă banală!) până la plasarea textului. Viteza nu a fost niciodată o mare preocupare și, pe bună dreptate. Dacă viteza și eficiența memoriei ar fi problema, am fi codat cu toții în FORTRAN, ceea ce este, de asemenea, ușor și la nivel înalt. Codul sursă al bazei R este scurt (400K LOC; ca o comparație, Numpy singur are aceeași dimensiune) , și foarte lizibil. Cod pe care îl puteți înțelege și de încredere.
- Splus și R au fost concepute în anii 80 și 90, cu mult înainte de epoca „big data” și apariția Machine Learning. Dar R sa îmbunătățit . Gestionarea memoriei este mult mai bună, probabil superioară celor de la MATLAB. Are ceva de parcurs, dar anumite lucruri pot fi îmbunătățite (de exemplu, reprezentarea internă a datelor).
- Echipa de dezvoltare de bază are o rotație minimă și tinerii programatori de acum 15 ani au acum 50 de ani. În plus, sunt mult mai puțin implicați în comunitate și cuprind un personaj pictoresc / mitic precum Brian Ripley: un profesor de la Oxford responsabil cu 70\% + din angajamente și nu cea mai prietenoasă persoană de pe planetă și de pe listele de corespondență R.
- R cere un compilator JIT rapid care să vizeze LLVM, dar aceste lucruri nu se întâmplă peste noapte. Aveți nevoie de o echipă de coderi remarcabili și educați, cu cunoștințe de proiectare a compilatorului și interpretorului, o etică puternică a muncii (pentru a împinge un produs în câțiva ani) și umilința de a re-implementa un limbaj existent în loc să-și creeze propriul proiect de vanitate. De asemenea, consultați numărul 3.