Paras vastaus
Vaihdin tilasta tilaan R. Tässä ovat havainnot:
Edut:
- R on avoimen lähdekoodin, sinulla on pääsy todella hienoihin verenvuotoalgoritmeihin tai ohjelmistoihin, jotka ihmiset ovat kirjoittaneet kapealle ongelmalle.
- R: llä on paremmat visualisoinnit. Kun sinulla on hyvä hallinta ggplot2: ssa, voit tehdä melko hämmästyttäviä asioita lähes kaikentyyppisillä tiedoilla.
- Olen löytänyt R: n helpompaa kirjoittaa mukautettuja paketteja ja toimintoja.
- R on lähempänä tilastoja / koneoppimisyhteisöä, joten löydät enemmän tukea / paketteja kuin tilastoja.
- Rakastan RStudio Guia etenkin työskennellessäsi palvelimella.
- R tarjoaa paremman Latex-tuen.
- R: llä on erittäin aktiivinen yhteisö ja ohjeluettelot – ne ovat olleet hämmästyttävän nopeita kaikissa kysymyksissäni.
- R toimii Big Datan kanssa! RHadoop-paketti antaa sinun kirjoittaa mukautettuja MapReduce-komentosarjoja R-funktioilla. Jos joudut käsittelemään isoja tietoja ja pystyt käyttämään vain sinulle kiedottua Stataa.
- ”Hakkereita” on yleensä paljon enemmän. R: ssä monimutkaisille ongelmille, kuten verkkoanalyysi, mukautetut käynnistyshihnat jne. Heti kun lähdet pois vaniljatoteutuksista, olen usein löytänyt pikavalintatoimintoja R: n menettelyissä, kun taas Statassa joudut usein koodaamaan ulospääsyn.
Haitat:
- R on avoimen lähdekoodin, saatat joutua odottamaan jonkin aikaa päästäksesi uusiin algoritmeihin, jos aktiivista kehitystä ei ole.
- Stata on paljon lähempänä ekonometriayhteisöä ja sillä on paljon enemmän algoritmeja, paketteja ja toteutuksia kuin R. Jos olet ekonomisti, sinua turhauttaa ekonometrian pakettien kattavuuden puute.
- Statalla on hieno graafinen käyttöliittymä, joka antaa sinun valita interaktiivisesti suoritettavan menettelyn ja täyttää suurimman osan yksityiskohdista puolestasi. Tämä on hienoa käyttäessäsi toimintoa, jota et ole koskaan ennen käyttänyt. R: llä ei todellakaan ole tätä – minusta tuntuu, että kun käytän RI: tä, olen Googlessa puolet ajasta.
- Stata on nopeampi kuin R [1].
- Staattomoduulien lataaminen on paljon virtaviivaisempi prosessi: CRAN: n R-moduuleille ei yleensä ole ongelmaa (vaikka olen joutunut vaikeuksiin käyttäessäni Centos-konetta), mutta on olemassa useita välttämättömiä paketteja, jotka eivät ole CRAN: lla.
- Statan tavallinen visualisointi ja piirtäminen on paljon parempi kuin R.
- Statalla on parempi vakioapu – tunnen voivani lukea minkä tahansa toiminnon ohjeen ja selvittää tarkalleen mitä minä täytyy tehdä, vaikka en usko niin useille R-paketeille, jotka on dokumentoitu huonosti.
- R: llä on ”WTF” -tekstin ja pakettien nimeämisrakenne. Useimmat avoimet hankkeet tekevät. Kaipaan tilastotoimintojen (reg, lm jne.) Yksinkertaisuutta.
[1] http://ekonometrics.blogspot.com/2011/04/speeding-tickets-for-r-and-stata.html
Vastaa
Yleensä kun löydän adverbi ” ilmeisesti ”lauseessa löydän sen jälkeen joitain perusteettomia lausuntoja. Täällä en ole samaa mieltä väitteesi kanssa, jonka mukaan R: llä on ”outo syntaksit”. Jokainen koulutettu ohjelmoija haluaa mieluummin koodata Haskellissa tai joissakin Lispissä, mutta tosiasia on, että nämä kielet eivät koskaan tavoita suurta yleisöä. R on sisältä Lisp (voit esimerkiksi koodata kielen R: ssä, mutta ei Pythonissa), mutta on riittävän lähellä ulkopuolista tieteellistä kieltä. Kuten huomautat, tietojen analysointikielenä , R on todellakin luonnollisin ja tyylikkäin kieli siellä. Jos haluat todisteen tästä, tutustu Pythonia ja Juliaa ympäröivään toimintaan: datakehysten (pandat ja data.frame Jliassa), kaavojen (patsy), plyr (pandojen) käyttöönotto. Ja silti kaikki nämä ominaisuudet tuntuvat silti siltä, että ne ovat jonkin verran vartettuja muihin kieliin. Se, mitä ihmiset pitävät ”outoina” tai ”röyhkeinä”, ovat joko seurausta vuorovaikutteisen käytön (esim. Pudottamisen ulottuvuus) suostumuksesta tai kielen toiminnallisesta perinnöstä.
Olen samaa mieltä siitä, että R: llä on paljon parannettavia alueita, mutta enimmäkseen kielisyntaksissa. Toki sen nimeämiskäytännöt ovat epäjohdonmukaisia; nopeuden ja muistin hallinta ovat tunnettuja asioita; ja niin edelleen. Miksi niin? Muutama syy:
- R: n päädirektiivi (sen luojan John Chambersin mukaan) on tuottaa luotettavia ohjelmistoja. R asettaa korkean arvon tarkkuudelle ja luotettavuudelle. Sen keskeiset tilastotoiminnot ovat huippuluokkaa; Jopa sen graafinen perusjärjestelmä on harkittu huolellisesti histogrammien yhdistämisestä (ei triviaali ongelma!) Tekstin sijoitteluun. Nopeus ei ole koskaan ollut suuri huolenaihe, ja aivan oikein. Jos nopeus ja muistin tehokkuus olisivat ongelmana, koodaisimme kaikki FORTRANissa, mikä on myös helppoa ja korkeatasoista. R-kantan lähdekoodi on lyhyt (400 kt LOC: ta; Vertailun vuoksi vain Numpyllä on sama koko) , ja hyvin luettavissa. Koodi, jonka voit ymmärtää ja johon voit luottaa.
- Splus ja R suunniteltiin 80- ja 90-luvuilla, paljon ennen ”big data” -aikaa ja koneoppimisen nousua. Mutta R on parantunut. Muistin hallinta on paljon parempi, luultavasti parempi kuin MATLAB ”. Siinä on vielä jonkin verran edistysaskelia, mutta tiettyjä asioita voidaan parantaa (esim. Sisäinen tietojen esitys).
- Ydinkehitystiimillä on vähän vaihtuvuutta, ja 15 vuotta sitten olleet nuoret koodaajat ovat nyt 50-vuotiaita. Lisäksi he ovat paljon vähemmän tekemisissä yhteisön kanssa, ja heidät muodostavat kuvaileva / myyttinen hahmo, kuten Brian Ripley: Oxfordin professori, joka vastaa 70\%: sta + sitoutumisista, eikä planeetan ystävällisin ihminen ja R-postituslistoilla.
- R pyytää nopeaa JIT-kääntäjää, joka kohdistuu LLVM: ään, mutta näitä asioita ei tapahdu yhdessä yössä. Tarvitset joukon erinomaisia ja koulutettuja koodereita, joilla on kääntäjä- ja tulkkisuunnittelutietoa, vahva työetiikka (tuotteen julkaiseminen muutamassa vuodessa) ja nöyryys toteuttaa nykyinen kieli uudelleen oman turhamaisuusprojektin luomisen sijaan. Katso myös # 3.