[Zenelejátszási] Dustin TRAN: Hi. Az én nevem Dustin. Szóval én leszek bemutató Az adatok elemzése az R. Csak egy kicsit magamról. Én jelenleg egy végzős hallgató Az Engineering and Applied Sciences. Tanulok egy kereszteződését gépi tanulás és statisztikák így adatelemzés az R Tényleg alapvető milyen Én napi rendszerességgel. És r különösen Jó az adatok elemzéséhez mert nagyon jó a prototípus. És általában, ha csinálsz valami Az adatok elemzése, sok a probléma fognak kognitív. És így csak azt, hogy néhány igazán jó nyelv az csak jót tesz csinál beépített funkciók, szemben kelljen kezelni az alacsony szintű dolgokat. Tehát az elején, én csak fog bevezetni, ami R, miért szeretné használni, és akkor megy át néhány demo, és csak megy onnan. Tehát mi R? R csak egy nyelvet fejlesztett A statisztikai számítások és a megjelenítés. Szóval ez mit jelent az, hogy ez egy nagyon jó nyelv bármilyen fajta dolog, hogy foglalkozik bizonytalanság, illetve az adatok megjelenítését. Szóval van mindezen eloszlás esete. Ott lesznek beépített funkciók. Még arra is kiváló rajzoló csomagok. Python egy másik versenyző nyelvet adatok. És egy dolog, hogy azt tapasztalom, hogy R Sokkal jobban van vizualizáció. Tehát mit fog látni a demót illetve csak egy nagyon intuitív nyelven hogy csak nagyon jól működik. Az is ingyenes és nyílt forráskódú, mint bármilyen más jó nyelven azt hiszem. És itt, egy csomó, csak kulcsszavak dobott rád. Ez a dinamikus, vagyis ha van egy bizonyos típusú rendelt tárgyat mint akkor csak változtatni, hogy menet közben. Ez a lusta így okosnak hogyan számításokat végez. Funkcionális ami azt jelenti, tényleg működik alapján le a funkciókat, így anything-- bármiféle manipuláció te Ezzel pedig fog alapulni off funkciók. Tehát bináris operátor, például, csak eredendően funkciókat. És minden, ami fogsz csinálni van lesz elfolyik funkciókat is. És akkor az objektum orientált is. Tehát itt van egy XKCD telken. Nem csak azért, mert úgy érzem, XKCD alapvető semmiféle A prezentáció, hanem azért, mert Úgy érzem, ez tényleg kalapácsok a lényeg, hogy sok a amikor csinálsz valami adatok elemzés, a probléma nem annyira, hogy milyen gyorsan fut, de hogy mennyi ideig fog hogy lehet programozni a feladatot. Tehát itt van, csak annak elemzése, hogy stratégiát egy vagy b hatékonyabb. Ez lesz valamit, hogy te fog foglalkozni sokat a egyfajta alacsony szintű nyelvek ahol van dolgunk, seg hibák, memóriafoglalási, inicializálásától, még így a beépített funkciókat. És ez a cucc minden kezeli Nagyon, nagyon elegánsan R. Tehát csak a kalapács erre pontja, a legnagyobb akadálya lesz kognitív. Tehát az adatok elemzése egy nagyon nehéz probléma. Akár csinálsz gépi tanulás vagy te ezzel csak valamiféle alapadatok feltárása, nem akarod, hogy hogy a dokumentum majd fordítsd valamit minden alkalommal, szeretné látni, milyen egy oszlopot néz ki, milyen különös bejegyzéseket mátrix néz ki. Szóval csak azt, hogy néhány igazán szép felület lehet futtatni egy egyszerű függvény hogy az indexeket, hogy bármilyen szeretnél, és csak fut onnan. És meg kell tartományban specifikus nyelvek ehhez. És R valóban segít meghatározni a problémát és megoldani, hogy ezen a módon. Tehát itt van egy telek mutatja programozási népszerűsége R ahogy elment az idő múlásával. Tehát mint látható, mint 2013-ban vagy így csak felrobbantották rettenetesen. És ez már csak azért is Hatalmas trend a technológiai iparban Névjegy adatok. Továbbá, nem csak a technológia ipar, de tényleg bármely iparágban hogy-- miatt Sok iparágak Valahogy úgy, alapvető próbálják megoldani ezeket a problémákat. És általában, akkor van néhány jó mérőszáma e problémák vagy akár meghatározó őket, vagy megoldásuk adatok felhasználásával. Szóval azt hiszem, most R 11 legnépszerűbb nyelv TIOBE és ez már egyre azóta. Tehát itt van még néhány jellemzői R. Meg Egy rengeteg csomagot és Mindezen különböző dolog. Tehát minden alkalommal, amikor egy Bizonyos probléma, a legtöbb Az idő R lesz hogy a funkció az Ön számára. Szóval, hogy szeretnénk, hogy építeni valamilyen gép tanulási algoritmus az úgynevezett Random Forest vagy döntési fák, vagy akár megpróbálta átvenni a átlaga Egy funkció vagy sem ezt a cuccot, R lesz, hogy. És ha nem törődsz optimalizálása, az egyik dolog, ami közös az, hogy miután végeztél prototípus valamilyen magas szintű nyelv, akkor dobja, hogy in-- Akkor csak port, hogy több mint hogy néhány alacsony szintű nyelven. Mi a jó a R az, hogy ha egyszer kész prototípus, akkor lehet futtatni C ++, vagy Fortran ezek közül bármelyik alacsonyabb szinten is közvetlenül R. Szóval ez egy nagyon hűvös vonás mintegy R, ha tényleg érdekel Az optimalizálási pontot. És ez is nagyon jó A web látványterveket. Így D3.js, például, Azt hiszem, egy másik szeminárium hogy a ma bemutatott. És ez tényleg félelmetes Ennek az interaktív vizualizáció. És D3.js feltételezi, hogy valamilyen adatot kell rajzolni és R egy nagyszerű módja annak, hogy képes megtenni, Az adatok elemzése exportálás előtt meg át D3.js vagy akár csak futni D3.js parancsokat R magát, valamint az ezeket a Más könyvtárak is. Tehát ez csak a bevezetése mi R és miért érdemes használni. Így remélhetőleg, én már győződve valamit arról szól, csak hogy lássa, milyen érzés. Így fogok menni előre, és végig Néhány alapvető mintegy R objektumok és mit tud igazán. Tehát itt csak egy csomó matematikai parancsokat. Tehát mondjuk you're-- szeretne építeni nyelvi magát, és csak azt hogy egy csomó különböző eszközöket. Bármilyen műveletet úgy gondolja, szeretné szeretnék, elég sok lesz a R. Tehát itt van 2 plusz 2. Itt 2-szer pi. R van egy csomó beépített konstans hogy akkor gyakran használ, mint a pi, e. És akkor, itt van 7 plus runif, így runif 1. Ez egy olyan funkció, ez generál egy véletlen egységes 0-ról 1. És akkor ott van 3 hogy a hatalom a 4. Van négyzetgyököket. Van log. Szóval jelentkezzen fog tenni bázist exponenciális magától. És akkor, ha megadsz egy bázis, akkor a azt csinálsz, amit akarsz bázist. És akkor itt van néhány más parancsokat. Szóval van 23 mod 2. Akkor a többi. Akkor van a tudományos jelölést, ha azt is akarok csak több és bonyolultabb dolgokat. Tehát itt van feladat. Annyira jellemző feladatokat a R történik egy nyíllal így kevesebb, mint majd a kötőjel. Tehát itt én csak hozzárendelése 3. A változó val. És akkor én kinyomtatásával val majd a kinyomtatott három. Alapértelmezésben az R interpreter, hogy kiírja a dolgokat az Ön számára így nem kell megadnia nyomtatni val bármikor nyomtatni kívánt valamit. Tudod csak csinálni val és akkor Megteszem, hogy az Ön számára. Is, akkor a tel egyenlõ technikailag mint az értékadó operátor. Vannak kis finomságok között a nyíl üzemeltető és az egyenlőségjel üzemeltető feladatok. Többnyire megállapodás szerint, mindenkinek majd csak használni operátort. És itt, én hozzárendelésével ezt a ferde jelölés úgynevezett 1 colon 6. Ez létrehoz egy vektort 1-6. És ez igazán szép, mert akkor csak rendelni a vektor val és hogy működik magától. Szóval ez már megy egy single-- egy nagyon intuitív adatok szerkezete csak egy dupla a valamilyen típusú egy vektorba és amely összegyűjti A skalárnak az Ön számára. Tehát után megy a skalár, akkor a K tárgyak és ez egy vektor. A vektor semmiféle gyűjtemény az azonos típusú. Tehát itt van egy csomó vektorok. Tehát ez a numerikus. Numerikus az R szóval duplán. És így alapértelmezés szerint minden szám lesz egy dupla. Tehát ha van c 1,1, 3, negatív 5,7, a c függvénye. Ez összefűzi mindhárom számokat egy vektor. És ez be-- így ha azt veszi észre, 3. önmagában, akkor általában azt feltételezik, hogy ez olyan, mint egy egész szám, hanem azért, mert minden olyan vektor, vannak az azonos típusú, ez egy vektor a páros vagy numerikus ebben az esetben. rnorm egy olyan funkció, amely létrehozza standard normális variables-- vagy standard normális értékeket. És én megadásával ketten. Tehát csinálok rnorm 2, kijelölésével, hogy a devs, majd én kinyomtatásával fejlesztőknek. Tehát ezek csak két random normál értéket. És akkor ints, ha nem törődsz egész. Tehát ez csak a memória elosztása és mentési memória mérete. Tehát meg kellett volna hozzáfűzni a számok a fővárosban L. Általában, ez R történelmi jelölés valami úgynevezett hosszú egész. Így a legtöbb időt, akkor legyen szó páros. És ha valaha lesz később A optimalizálni a kódot, is hozzá tudod adni ezeket a L's utána és közben is ha te, mint precognitive mit fogsz csinálni ezeket a változókat. Tehát itt van egy karakter vektor. Szóval, megint én vagyok összefűző Három húrok ebben az időben. Figyeljük meg, hogy a kettős vonósok és egyetlen húrok azonosak R. Szóval van Arthur és Marvin és így ha én vagyok a nyomtatás ki, mindegyikük Az alábbiakban bemutatjuk, dupla húrok. És ha Ön is szeretné közé A dupla vagy szimpla zsinór a karakter, akkor akár felváltva a szálakat. Tehát Marvin a második elem, ez fog show-- meg Csak dupla húrok majd egy húr így ez váltakozik. Ellenkező esetben, ha azt szeretnénk, hogy egy dupla karakterlánc szereplő kettős karakterlánc ha éppen nyilvánította, majd csak használja az escape üzemeltető. Szóval nem a backslash dupla húr. És végül, mi is logikai vektorok. Tehát logical-- annyira igaz és hamis, és ők lesz minden nagybetűvel. És akkor megint én összefűző őket, majd sorolják: bools. Tehát bools fog mutatni akkor igaz, hamis és igaz. Tehát itt van vektoros indexelés. Tehát az elején, én szedek egy function-- ez az úgynevezett sequence-- szekvencia 2-12. És én viszem egy sorozatot úgy 2. Így fog tenni 2, 4, 6, 8, 10 és 12. És akkor én vagyok indexelés hogy a harmadik elem. Tehát egy dolog, hogy tartsa szem előtt, hogy R indexeket 1-től kezdődően. Tehát Vals 3 fog adni akkor a harmadik elem. Ez a fajta különbözik más nyelvek ahol kezdődik a nullától. Tehát a C vagy C ++, például te lesz, hogy a negyedik elem. És itt van Vals 3-5. Tehát az egyik dolog, ami nagyon klassz, hogy meg generálhat ideiglenes változók elrejtése és aztán csak használni őket menet közben. Tehát itt az, 3 és 5. Tehát én vagyok így egy vektor 3, 4, és 5. és majd Én indexelés, hogy a harmadik, negyedik és az ötödik elem. Tehát Ugyanígy azt is absztrakt ezt csak csináld bármiféle vektor hogy megadja neked indexelés. Tehát itt van Vals, majd a első, harmadik és hatodik elem. És akkor, ha azt szeretné, hogy csinál egy kiegészítője, így csak nem a mínusz utána, és hogy majd kapsz mindent, ami nem az első, harmadik, vagy hatodik elem. Tehát ez lesz a 4., 8., és 10. És ha azt akarjuk, hogy még fejlettebb, lehet összefűzni logikai vektorok. Tehát ez az index fog adni ez a logikai vektor hossza 6. Tehát rep TRUE vesszővel 3. Ez ismétlődik TRUE háromszor. Szóval ez ad egy vektor Igaz, igaz, IGAZ. rep HAMIS 4-- ez fog adni vektora hamis, hamis, hamis, hamis. Majd c fog összefűzni E két Logikai össze. Szóval fogsz, hogy három TRUEs majd négy FALSEs. Úgy, hogy ha index lok, te lesz, hogy a TRUE, Igaz, igaz. Így hogy fog igent mondani, Szeretném ezt a három elemet. És akkor hamis, hamis, Hamis, hamis megy nemet mondani, nem akarom azokat az elemeket, így nem fog vissza őket. És azt hiszem, van valójában egy elírás itt mert ez azt mondja, ismételje TRUE 3 és ismételten hamis 4, és technikailag, akkor csak hat elemekből áll, ezért ismételten hamis, meg kell ismételten hamis 3. Azt hiszem, R is elég okos, mint hogy ha csak adja 4 itt, akkor ez nem is hiba ki. Ez csak Önnek ezt az értéket. Ezért egyszerűen csak figyelmen kívül hagyja, hogy a negyedik HAMIS. Tehát itt van vektoros feladat. Tehát set.seed-- ennek csak beállítja a vetőmagot véletlen számokat. Úgyhogy beállítás, hogy a mag 42, ami azt jelenti, hogy ha én generál Három random normál értékeket, majd ha fuss set.seed a saját számítógéphez ugyanazt az értéket 42, akkor is kap a Ugyanaz a három random normals. Tehát ez nagyon jó reprodukálhatóság. Általában, ha csinálsz néhány egyfajta tudományos elemzés, amit szeretne beállítani a magot. Így más tudósok is csak reprodukálni pontosan ugyanazt a kódot akkor már véget ért, mert lesz a pontos Ugyanez véletlen változók hogy-- vagy véletlenszerű értékeket, hogy már kivették is. És így a vektoros hozzárendelés Itt mutatja az Vals 1-2. Tehát vesz az első két elem Vals majd besorolja 0. És akkor, akkor is csak ezt a Hasonló dolog a Logikai. Tehát Vals nem egyenlő 0-- ez az akarat kapsz egy vektor hamis, hamis, TRUE ebben az esetben. És akkor, hogy fog mondani minden Az ezeken az indexeken ez igaz lenne, akkor fog rendelni, hogy 5. Tehát vesz a harmadik elem Itt majd hozzárendeli 5. És ez tényleg szép képest alacsony szintű nyelvek ahol meg kell használni a hurok hogy tegyenek meg mindent e vektoros cucc mert ez csak nagyon intuitív és ez egy egysoros. És ami igazán jó vektoros jelölést az, hogy az R, ezek a fajta beépített úgy, hogy ők majdnem olyan gyors, mivel ezzel egy alacsony szintű nyelv szemben, hogy a for ciklus az R majd miután azt kell csinálni A dinamikus indexelési magát. És, hogy lesz lassabb, mint ez a fajta dolog, vektoros ahol meg lehet csinálni ezzel párhuzamosan, ahol csinál ez a threading alapvetően. Tehát itt van vectorized műveleteket. Tehát én vagyok így egy értéket 1 és 3, hozzárendelésével, hogy a vec1, 3-5, vec2, hozzátéve őket. Hozzáteszi őket alkatrész-bölcs, így ez 1 plusz 3, 2 és 4, és így tovább. vec1 alkalommal vec2. Ez megsokszorozza a két értékek alkatrész bölcs. Tehát 1-szer 3, 2-szer 4, majd 3-szor 5. És akkor hasonlóan akkor is csinálni comparisons-- logikai összehasonlításokat. Szóval ez false false igaz ebben az az esetben, mert 1 nem nagyobb, mint 3, 2 nem nagyobb, mint 4. Ez, azt hiszem, egy másik elírás, 3 egyáltalán nem nagyobb, mint 5. Igen. És így tudod csak csinálni az összes ezeket az egyszerű műveletek mert az örökölt A osztálynak is. Úgy, hogy csak a vektor. És ez a fajta a legalapvetőbb R objektumot, mert kapott egy vektor, tudod építeni fejlettebb objektumokat. Tehát itt egy mátrixban. Ez lényegében az absztrakció A mi az a mátrix magát. Tehát ebben az esetben, ez a három különböző vektorok, ahol mindegyik oszlop, vagy akkor elgondolkodhatunk rajta mint mindegyik sorban. Úgyhogy tárolására mátrix 1-től 9 és akkor én megadásával 3 sor. Tehát 1-9 kapsz egy vektor 1, 2, 3, 4, 5, 6, és egészen a 9. Egy dolog, hogy azt is szem előtt tartani, hogy a R üzletek oszlopban található értékeket, nagy formátumban. Más szóval, ha látod 1 9, ez meg fog tárolni them-- ez lesz az 1., 2., 3. Az első oszlopban, és akkor megteszem 4, 5, 6 A második oszlopban, és azután a 7., a 8., a 9., a harmadik oszlopban. És itt van néhány más közös használható funkciók. Tehát homályos mat, ez ad a méretei a mátrix. Meg fog visszatér egy vektor a dimenzió. Tehát ebben az esetben, mivel a mi mátrix 3 3, ez meg fog adni a numerikus vektor ez 3 3. És itt van csak mutatja mátrixszorzással. Így általában, ha csak nem asterisk-- így mat csillaggal mat-- ez lesz alkatrész-bölcs működése vagy mi a neve a Hadamard terméket. Így fog tenni minden komponens A bölcs. Azonban, ha azt szeretnénk, mátrix multiplication-- így megszorozzuk az első sorban alkalommal A második mátrix első oszlopa és így on-- akkor használja ez százalék művelet. És t-mat csak egy művelet transzponált. Szóval azt mondom, hogy az a tervezet A mátrix, szorozza meg a mátrixban maga. És akkor ez meg fog visszatér még egy 3 3 Az alábbi táblázat A termék akarna. És ez volt a mátrix. Itt van egy úgynevezett adat frame. A adatkeretben lehet gondolni, mint egy mátrix, de minden oszlop maga lesz más típusú. Tehát mi nagyon klassz, az adatok keretek az, hogy az adatok elemzése önmagában, fogsz már mindez heterogén adatok és ezek mind nagyon piszkos dolog ahol az egyes oszlopok maguk is a különböző típusú. Tehát itt mondok létrehozni adatok keret, nem ints 1-3, és akkor is van egy karakter vektor. Így tudok index segítségével minden ilyen oszlopok majd hozok az értékeket magukat. És akkor is ezt valamiféle A műveletek adat kereteket. És a legtöbb időt, ha éppen Ennek az adatok elemzése, vagy valamilyen Az előkezelést, akkor lesz dolgozik ezen adatok struktúrák ahol minden oszlop megy állítani, hogy azok más típusú. Végül, így ezek lényegében csak A négy alapvető tárgyak R. List majd csak gyűjt Más kívánt objektumokat. Így lesz ez tárolja az egyetlen változó, hogy könnyedén elérheti. Tehát itt, én viszem a listát. Azt mondom cucc értéke 3. Így fogok, hogy az egyik eleme A lista, és ezt nevezik cucc, és ez lesz az értéke 3. Azt is létrehozhat egy mátrixban. Tehát ez 1-4 és vége sorban = 2, tehát a 2 x 2 mátrix. Szintén a listán, és ez az úgynevezett mat. moreStuff, karakterlánc, és még egy másik listát is. Tehát ez egy lista, amelyet az 5. és a medve. Tehát 5 az értéke, és az a karakterlánc medve és ez a lista belsejében egy listát. Így van ezeknek rekurzív dolgokat, ahol van another-- a írja típuson belül. Tehát hasonlóan, akkor egy mátrix belül egy másik mátrix, és így tovább. És a lista csak egy jó módja gyűjtése és összesítése Ezeknek a különböző tárgyakat. És végül, itt csak segíteni, ha És ez még csak ment át nagyon gyorsan. Így bármikor össze vannak zavarodva mintegy valamilyen funkciót, amit tehetünk segítségével ezt a funkciót. Szóval lehet csinálni segítséget mátrix vagy egy kérdőjel mátrix. És segítséget és kérdőjel van Csak rövidítése ugyanaz a dolog így ők álnevek. lm egy olyan funkció, csak nem egy lineáris modellt. De ha csak fogalmam sincs, hogyan, hogy munkálatok, tudod csak csinálni segítségével lm és hogy kapsz néhány fajta dokumentációt úgy néz ki, olyan, mint egy man oldal Unix, ahol van egy rövid leírást, hogy mit igen, azt is, ami az érvelés egyébként, amit visszaad, és csak tipp, hogyan használni, és néhány példát is. Szóval hadd menjen előre, és azt mutatják, Néhány demo használatának R. OK. Szóval odamentem nagyon gyorsan csak az adatok struktúrák és valamilyen a op-- bizonyos funkciókat. Itt van néhány funkció. Tehát itt én csak fog meghatározni a funkciót. Szóval én is használ értékadó operátor itt, majd azt mondom, deklarálja azt a funkciót. És az értéke x. Tehát ez olyan érték, amit akarnak és fogok visszatérni x magát. Tehát ez az identitás funkciót. És mi jó erről összehasonlítva más nyelveken és egy másik alacsony szintű nyelveken, hogy x lehet bármilyen típusú magának és akkor visszatér a típus. Szóval lehet imagine-- úgyhogy nekem csak fuss ilyen gyorsan. Bocsánat. Tehát az egyik dolog, amit meg kell említenem az, hogy ez a szerkesztő vagyok használ nevezzük rstudio. Ez az úgynevezett IDE. És egy dolog, hogy ez nagyon szép erről az, hogy ez magában foglalja a sok a dolgokat szeretne csinálni a K önmagában Csak nagyon intuitív. Tehát itt van egy tolmács konzolt. Tehát hasonlóan, akkor is kap ez a konzol nyers csak ennek révén a főváros R. És pontosan ez az ugyanaz, mint a konzol. Szóval én csak csinálni id függvény x, x, x. És then-- majd, hogy jó lesz magának. Tehát rstudio nagyszerű mert a konzol. Azt is a dokumentumokat szeretne futni. És akkor annak van változók hogy lássuk környezetben. És akkor, ha van csinálni telkek, akkor csak látni, hogy itt, szemben a ügyvezető ezeket a különböző ablakok önmagukban. Igazából személyesen használják Vim, de én érzem rstudio kiváló, csak kapok egy jó ötlet hogyan kell használni R. Általában, ha akarsz tanulni néhány új feladat, nem akarja kezelni Túl sok mindent egyszerre. Tehát R csak egy very-- rstudio Ez egy nagyon jó módja a tanulás R anélkül, hogy foglalkozni az összes többi dolog. Tehát itt rohanok id helló. Ez Helló. id 123. Itt van egy vektoros egész számok. Tehát hasonlóan, mert akkor hogy minden valamilyen értéket, meg tudod csinálni visszatérő id x így visszatér 1234 és 5. És hadd mutassam meg, hogy ez valóban egy egész szám. És hasonlóképpen, ha nem class id x, ez lesz egész. És akkor, akkor is összehasonlítani a két és ez az igazság. Úgyhogy ellenőrizni kell, id x egyenlő az egyenlők x és értesítés hogy ad két TRUEs. Tehát ez nem azt mondja, vannak A két objektum azonos, de mindegyik a bejegyzések a vektorok azonosak. Itt bounded.compare. Tehát ez kissé bonyolultabb annyiban, hogy a sérült állapota és más majd úgy két érvek egy időben. Tehát x jelentése bármilyen típusú. És mondom ezt második érv a. Ez lehet bármi is. De alapból, ez fog tartani 5. Ha nem adsz meg semmit. Tehát itt fogok mondani ha x nagyobb, mint egy. Szóval, ha nem ad meg, akkor azt mondja, ha x nagyobb, mint 5, akkor fogok visszatérni TRUE. mást, megyek vissza HAMIS. Szóval hadd menjen előre, és határozzák meg ezt. És most megyek fuss bounded.compare 3. Tehát azt mondja, van 3 kisebb than-- 3 nagyobb, mint 5. Nem, ez nem olyan HAMIS. És bounded.compare 3 és megyek összevetni egy pedig 2 lesz. Úgyhogy most azt mondja igen, most én Szeretnék egy valami más. Így fogok mondani egy, ha kell 2. Én sem ezt a fajta jelölést, vagy azt mondom, egy pedig 2 lesz. Ez egy olvashatóbb hogy ha éppen Ha ezekre a nagyon A komplikált, hogy hogy több arguments-- és ez lehet több tucat oftentimes-- csak azt mondom, A jelentése 2 olvashatóbb úgy, hogy később a jövőben akkor tudni fogja, hogy mit csinálsz. Tehát ebben az esetben, én vagyok mondás 3 nagyobb, mint 2. Igen, az. És hasonlóan, én is csak eltávolítani ezt, és azt mondják, van 3 nagyobb, mint 2 ahol a = 2. És ez is igaz. Igen? Közönség: Ön végrehajtása soronként? Dustin TRAN: Igen, én vagyok. Szóval mit csinálok itt szedni ezt a szöveget document-- és ami igazán jó rstudio az, hogy Én is csak futni egy short-- a gyorsbillentyű. Szóval én csinálom a ctrl + enter. És akkor én viszem a sort a szöveges dokumentum majd üzembe a konzolon. Tehát itt mondok, bounded.compare és teszem azt, a Control-X. Szóval én is csak futnak itt is. És akkor, hogy viszem a sort, majd tedd ide. És akkor hasonlóan, én is futnak itt. És akkor csak tartsa meghatározó A vonalak a konzolba ilyesmi. És ha te is észre a göndör zárójelek vannak, mint a C szintaxis. X-, ha a sérült állapota is kívánja használni, zárójelben, majd használhatja mást. Egy másik az else if. Tehát ez lesz x egyenlő valós érték megegyezik egy, például. És akkor fogok vissza valamit. Figyeljük meg, hogy két különböző itt a dolgok, hogy folyik. Az egyik, hogy itt vagyok megadásával értékkel tér vissza TRUE. Itt csak azt mondom x. Tehát R általában alapértelmezésben hogy az utolsó arguments-- vagy hogy az utolsó sorban a kód, és hogy lesz, milyen is visszatért. Tehát itt ez ugyanaz dolog, mint csinál visszatérő x. És csak, hogy mutassa meg. És akkor, hogy működni fog csak úgy. Szóval hadd folytassa ezt. Tehát ha mást. És valóban, én is vissza bármit szeretnék. Szóval nem is kell visszatérő Logikai minden alkalommal, Én is csak vissza valami mást. Tehát meg tudom csinálni visszatérő medve. Tehát, ha x egyenlő megegyezik a, ez meg fog visszatérni medve. Ellenkező esetben, ez meg fog visszatérni TRUE. Én is csinál egy vektoros vagy tényleg semmit. És általában statikusan gépelt nyelv, ha volna, hogy adja meg a típust itt. És észre, hogy még éppen bármi lehet. És R elég intelligens ahhoz, hogy majd csak ezt, és jól működik majd. Szóval hadd határozzák meg ezt. Unexpected-- oh sajnálom. Meg kell egy kapcsos zárójel itt. OK. Cool. Rendben van. Tehát most Hasonlítsuk össze a 3. és a értéke 3. Így kell return-- yeah-- érték medve. Tehát most egy általánosabb dolog, mint Mi a helyzet más adatszerkezeteket. Szóval van ez a funkció. Ez nem fog működni a semmiféle Az érték, mint a 3 vagy numerikus, más szóval, a kettős. De mi a helyzet olyasmi, mint egy vektor. Tehát mi történik, ha do-- így vagyok fog rendelni val, mondjuk, 4-6. Tehát, ha visszatérek erre, ez a egy vektor a 4, 5, 6. Most lássuk, mi történik ha megteszem bounded.compare val. Tehát ez megy, hogy 15 1251. Más szóval, azt mondja ha megnézi ezt a feltételt így azt mondja x kisebb mint egy, vagy valami. Tehát ez kicsit zavaró, mert most csak nem tudom, mi folyik itt. Szóval azt hiszem, egy dolog, hogy tényleg jó a mindössze hibákat kereső az, hogy tudod csak csinálni val nagyobb, mint, hogy mi történik ott. Tehát val-- a alapértelmezetten 5 igen nézzük csak ne Val nagyobb, mint 5. Tehát ez egy vektoros HAMIS HAMIS IGAZ. Tehát most, amikor ránézünk ezt, akkor azt fogja mondani, ha, És akkor ez megy, hogy ezt a egy vektor a HAMIS HAMIS IGAZ. Tehát ha át ezt figyelembe R, R Fogalma sincs, hogy mit csinálsz. Mert arra számít, egyetlen értéket, amely a logikai, és most te, hogy ez egy vektor a Logikai. Tehát alapból, R csak akartam mondani, hogy mi a fene, Megyek feltételezem, hogy fog tartani az első elem van. Így fogok say-- megyek a feltételezés, hogy ez nem igaz. Így fog mondani Nem, ez nem igaz. Hasonlóképpen, ez meg fog lennie val egyenlő megegyezik a. Nem, sajnálom 5. És ez is lesz hamis is. Így fog nemet mondani, Ez nem igaz is, így ez fog visszatérni ez utóbbi. Tehát ez sem jó vagy rossz dolog, attól függően, hogyan meg. Mert ha te létre ezeket a funkciókat, akkor valójában nem tudom, mi folyik itt. Így néha azt szeretné, hiba, vagy talán csak azt a figyelmeztetést. Ebben az esetben R nem tesz ilyet. Szóval ez tényleg akár Ön épül ki, hogy mi Ön szerint a nyelv kell tenni ebben az esetben ha át egy vektor Logikai ha csinálsz egy sérült állapota. Tehát mondjuk, hogy volt az eredeti az egyik, ha mást vissza TRUE és te fog visszatérni HAMIS. Tehát az egyik módja a referáló ez azt mondani Nem is kell, ez a feltételes dolog. A másik dolog, amit tehetek, csak vissza az értékeket magukat. Tehát, ha azt veszi észre, ha do val nagyobb, mint 5, ez lesz visszatérni a vector HAMIS HAMIS IGAZ. Talán ez az, amit szeretnénk a bounded.compare. Vissza akar térni a vektor Logikai ahol összehasonlítja az egyes értékek maguknak. Így csak akkor bounded.compare funkciót x, a = 5. És akkor ahelyett, hogy ezt, ha más feltétel, Én csak megy, hogy visszatérjen x nagyobb, mint 5. Tehát ha ez igaz, akkor ez meg fog visszatérni TRUE. És akkor, ha ez nem, ez fog visszatérni HAMIS. És ez működni fog bármelyik ezeket a struktúrákat. Szóval lehet bounded.compare c 1 6 vagy 9 és akkor fogok mondani egy egyenlő 6, például. És akkor ez meg fog megadja a jogot, logikai vektor, hogy már most is kapható. Tehát ezek csak függvények és most hadd mutatok néhány interaktív látvány. Nem hiszem, hogy én valójában Wi-Fi ide, így hadd menjen előre és hagyja ezt gondolom. De egy dolog, hogy ez jó azonban az, hogy ha csak szeretnék kipróbálni egy csomó különböző adatok parancsokat, van egy csomó más adathalmaz A már előre be R. Tehát egyikük úgynevezett írisz adatbázisba. Ez az egyik a legismertebb azok a gépi tanulás. Akkor általában csak nem valamiféle teszt esetek, hogy ha a kód fut. Úgyhogy csak ellenőrizze, milyen írisz. Tehát ez a dolog fog hogy adatcsomag. És ez a fajta hosszú, mert Csak kinyomtatható írisz. Ez kinyomtatásával az egész dolog. Tehát az összes ezeket a különböző nevek. Tehát írisz gyűjteménye A különböző virágok. Ebben az esetben azt mondja akkor a faj ez, ezeket a különböző szélességű és hossza csészelevél és a szirom. És így alapesetben, ha nyomtatni kívánt írisz, Például, ha nem szeretné, hogy ez mindezt azért, mert, hogy át tudja venni az egész konzolt. Tehát az egyik dolog, ami igazán Szép a feje funkciót. Tehát, ha csak nem a fejét írisz, ez ad Az első öt sor, vagy hat azt hiszem. És akkor is, akkor egyszerűen adja meg itt. Tehát 20-- ez ad akkor az első 20 sort. És én valóban volt olyan kedves, A meglepett, hogy ezt adott nekem hat hadd menjen előre és ellenőrizze iris-- vagy a fej, bocs. És itt ez ad Ön a dokumentációban A mi az érték vezetője tesz. Így visszatér az első vagy az utolsó egy tárgy. És akkor fogok nézd meg a defaults. És akkor azt mondja az alapértelmezett módszer fej x és n összege 6L. Tehát ez visszaadja az első hat elem. És hasonlóan, ha megemlítem, I Nem kell adnia n értéke 6. Alapértelmezésben használ hat, azt hiszem. És akkor, ha azt akarom, hogy megad egy bizonyos értéket, akkor meg lehet nézni, hogy is. Szóval hogy van néhány egyszerű parancsokat és Itt van egy másik, hogy hogy-- is, Én can-- ez valójában egy kicsit bonyolultabb, de ez csak hogy az osztály Az egyes oszlopok a szivárványhártya-adatbázisba. Szóval ez megmutatja, mi minden ilyen oszlopok tekintetében típusai. Tehát csészelevél hossza numerikus, csészelevél szélessége numerikus. Minden ezek az értékek csak numerikus mert tudod mondani ezeket az adatokat rendszerezik ezeket a minden fog numerikus. És növényfajtákat oszlop lesz egy tényező. Így általában, akkor azt hiszem, hogy ez olyan, mint egy karakterlánc. De ha csak nem irisSpecies, majd fogok csinálni 5 fej és ez a nyomdába ki az első öt értéket. És akkor ezt észre szinten. Szóval ez saying-- ez R útja annak, kategorikus változók. Tehát ahelyett, hogy csak miután karakterláncok, azt szintje meghatározza ezek közül melyik a dolgok. Tehát mondjuk irisSpecies 1. Szóval mit akarsz csinálni itt vagyok részhalmazképzési, hogy ez a faj oszlopot. Szóval ez úgy Faj-oszlopon, majd ez indexek, hogy az első elemet. Szóval ez ad ön setosa. És ez is ad szint van. Tehát akkor is összehasonlítani ezt a karaktert setosa és ez nem megy hogy igaz, mert az egyik az eltérő típusú, mint a többi. Vagy talán igaz, mert R intelligensebb, mint ezt. És úgy néz ki, ebben majd mondja, talán ez az, amit akarsz. Így fog mondani a karakter húr setosa ugyanaz, mint ez. És akkor Hasonlóképpen, akkor is csak fogd ezeket, mint így tovább. Szóval ez csak valamiféle Gyors parancsok az adatbázisba. Tehát itt néhány adat feltárása. Szóval ez egy kicsit részt vett az adatok elemzését. És ezt úgy kell néhány bootcamp az R Berkeley-ben. Tehát könyvtár külföldi. Így fogok tölteni egy könyvtár hívják a külföldi. Szóval ez lesz adj read.dta így feltételezzük, hogy van ez adatbázisba. Ez tárolja a jelenlegi munkakönyvtárának konzolra. Tehát nézzük meg, mit A könyvtár a. Tehát itt munkakönyvtáramban. És olvassa dot adatokat, ez a dolog, azt mondja erre a képre található adatok mappájába ez az aktuális könyvtárhoz. És read.dta ez nem alapértelmezett parancsot. Azt hiszem, betöltve azt már. IEI feltételezhető én töltötte be ezt már. De így read.dta nem megy hogy egy alapértelmezett parancs. És ez az, amiért Csuda betölteni ebben a könyvtárban package-- ez a csomag az úgynevezett idegen. És ha nincs A csomag, azt hiszem, külföldi az egyik a beépített is. Ellenkező esetben, akkor is do install.packages és ez a csomag telepítése. És ez ad R. Á, nem. És akkor én csak fog megállítani ezt, mert én tette meg. De ami igazán szép a R az, hogy a csomagkezelő rendszer nagyon elegáns. Mert tárolni mindent Nagyon szépen az Ön számára. Tehát ebben az esetben, hogy fog tárolni azt, azt hiszem, ez a könyvtár itt. Szóval, amikor csak akar telepíthet új csomagokat, ez csak olyan egyszerű, mint Ennek install.packages és R kezel minden A csomagokat az Ön számára. Szóval nem kell csinálni valamit Python, ahol van külső csomag menedzserek, mint a papír Anaconda, ahol te doing-- telepíti a csomagok kívül Python majd megpróbálja futtatni őket magad. Szóval ez tényleg szép módon. És install.packages internetkapcsolat szükséges. Ez veszi el a szerveren és lerakat összegyűjti az összes csomagokat az úgynevezett CRAN. És megadhatja, hogy melyik fajta tükör szeretné letölteni a csomagokat. Tehát itt vagyok szedni ezt adatbázisba. Olvasom, hogy az ezzel a funkcióval. Szóval hadd menjen előre, és csinálni. Tehát tegyük fel, hogy Ön ezt adatbázisba és hogy egyáltalán fogalmam sincs, mi ez. És ez valóban jön létre Elég gyakran az iparban ahol csak ezek a tonna tonna piszkos dolog és ők hihetetlenül jelöletlen. Tehát itt van ez a adatbázisba, és nem tudom, mi az, úgyhogy most mutatja, hogy ellenőrizze ki. Így fogok tenni fejjel előre. Úgyhogy ellenőrizze az első hat oszlopok, amit ez adathalmaz. Tehát ez az állami, pres04, majd Ezen különböző fajta oszlopok. És ami érdekes Itt, azt hiszem, az, hogy Feltételezem, hogy ez úgy néz ki, mint valami választásokon. És azt hiszem, csak a nézi a fájlt név Ez valamiféle gyűjteménye Az adatok a jelöltek, vagy a választók aki szavazott adott elnökök vagy elnök jelöltek A 2004-es választásokon. Tehát itt van értékei 1, 2 így az egyik módja tárolására Az elnök jelöltek a nevük. Ebben az esetben, úgy néz ki, mint ők csak egész értékeket. Így 2004-ben ez volt Bush versus Kerry azt hiszem. És most, mondjuk csak nem tudom, hogy 1 megfelel Bush vagy 2 megfelel Kerry vagy és így tovább, és így tovább, ugye? És ez, csak nekem, meglehetősen gyakori probléma. Szóval mit lehet tenni ebben az esetben? Úgyhogy nézze meg az összes többi dolog. állapotban, felteszem, ez a származik különböző államokban. partyid, jövedelem. Nézzük meg partyid. Így talán egy dolog, amit tehetünk, nézd egyes észrevételeit hogy van egy partyid a republikánus vagy demokrata, vagy valami. Úgyhogy csak nézd meg, mit partyid van. Így fogok venni dat, majd megyek Ehhez dollár jel üzemeltető, hogy én korábban és ez fog részhalmaza az adott oszlopban. És akkor fogok a fejét ebben a 20, csak hogy lássa, mi ez néz ki. Tehát ez csak egy csomó nemzeti irodák. Más szóval, van hiányzó adatok ezekről a srácok. De azt is észre ezt dat partyid olyan tényező, így ez ad a különböző kategóriákban. Más szóval, partyid is igénybe vehet Demokrata, republikánus, független, vagy valami más. Szóval menjünk előre, és nézzük lásd közül melyik ez-- oh, OK. Így fogok részhalmaza hogy partyid majd nézd meg, hogy melyek Demokrata, például. Ez fog adni egy logikai, egy hatalmas logikai of TRUEs és FALSEs. És most, mondjuk szeretnék a részhalmaza, hogy ezek a srácok. Szóval ez lesz, hogy az én dat és részhalmaza, hogy melyik megfigyelések Van partyid az egyenlők egyenlő demokrata. És ez elég sokáig, mert van olyan sokan. Tehát most, megyek fej Ez a 20. És azt veszi észre, egyenlő az egyenlők Érdekessége, hogy te already-- te is beleértve a nemzeti ügynökségek. Tehát ebben az esetben, akkor még mindig nem tud minden olyan információt, mert most van a nemzeti irodák és csak azt, hogy melyik az a megfigyelés megfelelnek demokrata és nem ezek a hiányzó értékek magukat. Szóval hogyan kíván megszabadulni ezektől a nemzeti irodák? Tehát itt én csak a fel gombot én kurzor, majd mondván körül mozog. És akkor itt van Elmegyek mondani is.na datpartyid. Szóval ez, és, és elviszi Két különböző logikai vektorok és azt mondják, hogy lesz TRUE és FALSE pl. Így fog tenni ez a komponens-bölcs. Tehát itt mondok take Az adatok keret, részhalmaza az is, hogy megfelelnek a demokrata, és távolítsa el őket, hogy nem NA. Tehát ez will-- kell kapsz valamit. Lássuk is.na. Próbáljuk is.na datpartyid. És ez ad you-- sorry-- csak egy logikai vektor. És akkor, mert olyan hosszú, Megyek részhalmaza 20. OK. Tehát ez a munka. És ez is TRUEs. Ah, szóval a hiba az, hogy I'm-- I a C ++ és R szinonimaként úgyhogy győződjön Ezt a hibát mindig. A és üzemeltető valójában a kívánt. Nem akarod, hogy két és jel, csak egyetlen egy. OK. Tehát lássuk. Tehát subsetted a partyid, ahol ők demokrata és ők nem a hiányzó értékeket. És most nézzük meg melyek voltak szavazott. Úgy tűnik tehát, mint a legtöbb ezek szavazott 1. Így fogok menni előre, és azt mondják, hogy ez Kerry. És Ugyanígy azt is is megy a republikánus és remélhetőleg, ez ad ön 2. Ez csak egy csomó különböző oszlopok. És valóban, ez 2. Tehát partyid minden republikánus, legtöbbjük szavaznak 2. Tehát úgy tűnik, mintha, csak nézi ezt Republikánus lesz a very-- vagy a partyid lesz egy nagyon nagy tényező melyik jelölt ők fog szavazni. És ez nyilván igaz általában. És ez megfelel-e a az intuíció, természetesen. Tehát úgy tűnik, mintha én lennék fogy az idő, így hadd folytassa, és mutassa meg néhány gyors kép. Tehát itt valami, ami enyhén bonyolultabb a megjelenítés. Tehát ebben az esetben, ez egy nagyon egyszerű elemzése csak megnézni, hogy mit az elnök az '04 van. Tehát ebben az esetben, mondjuk akart válaszolni erre a kérdésre. Tegyük fel, hogy szerettük volna tudni, hogy a szavazati viselkedését a 2004-es elnöki választásokat és hogy ez hogyan változik a rassz. Tehát nem csak azt szeretnénk, hogy lásd a választói magatartás, de szeretné részhalmaza minden faj és fajta összefoglalni, hogy. És akkor csak mondd ez a komplex függvénnyel hogy ez a fajta egyre ködös. Tehát az egyik fejlettebb R csomagokat, hogy ez is olyan, a közelmúltban nevezzük dplyr. Tehát ez az egyik itt. És ggg-- ggplot2 egy meglehetősen módja a jobb vizualizáció mint a beépített egy. Így fogok betölteni E két könyvtárak. És akkor én megyek előre, és adjuk ki a parancsot. Tudod csak kezeljék ezt a fekete dobozt. Ilyenkor az történik, hogy ez a cső üzemeltető halad ebben az érvelésben torkolatánál. Szóval azt akarom mondani csoport dat versenyen, majd elnöke 04. És akkor, az összes többi parancsok szűrik, majd összefoglalta ahol csinálok száma és akkor én rajzoló itt. OK cool. Szóval menjünk előre, és mi ez hogy néz ki. Szóval, mi történik itt, mert Csak ábrázoljuk az egyes fajok, majd melyek voltak szavazott. És ez a két különböző értékek megfelelnek a 2 és 1. Ha azt szeretnénk, hogy több Elegáns, akkor is csak meg, hogy a 2. Kerry-- vagy 2. Bush, majd 1 Kerry. És akkor is van hogy a legenda. És akkor is osztott ezeket a oszlopdiagramokkal. Mert egy dolog hogy ha azt veszi észre, ez nem nagyon könnyű azonosítani melyik ez a két érték nagyobb. Tehát az egyik dolog, amit akar tennie, hogy ez a kék terület és csak mozgás ide, így lehet összehasonlítani a két egymás mellett. És azt hiszem, hogy valami, amit nincs ideje, hogy most, de ez is nagyon egyszerű. Tudod csak nézni man oldalai ggplot. Így csak akkor ggplot, mint hogy és olvassa be ezt az embert oldalon. Szóval hadd gyorsan mutassa meg néhány jó dolog. Menjünk előre, és menj to-- csak egy alkalmazása a gépi tanulás. Tehát mondjuk van három csomagokba fogok tölteni ezeket a. Tehát ez mindig csak néhány információs miután töltve a dolog. Szóval ezt mondom read.csv, ez az adatbázisba, és most Én megyek előre, és vizsgálja meg, és lásd, mi van benne ebben adatbázisba. Tehát az első 20 megfigyeléseket. Szóval én csak azt X1, X2, és Y. Tehát Úgy tűnik, mint egy csomó ilyen értékek vannak kezdve talán 20-80, vagy úgy. És akkor hasonlóan az X2 majd ezt az Y úgy tűnik, hogy a címkék 0 és 1. Ennek ellenőrzéséhez tudok csak csináld összefoglaló adatok X1. És akkor hasonlóképpen az összes többi oszlop. Tehát összefoglaló egy gyors módja csak mutatja meg gyors értékeket. Ó, sajnálom. Ez az egyik kell Y. Tehát ebben az esetben, adja a kvantili-, mediánértékeknek maxes is. Ebben az esetben dataY, akkor láthatjuk, hogy ez csak lesz 0 és 1. Szintén átlag mond 0.6, csak azt jelenti, hogy Úgy tűnik, mintha már több, mint 1-esek 0-ák. Szóval hadd menjen előre, és azt mutatják, Önnek mi ez úgy néz ki, mint. Szóval én csak fog ábrázolni ezt a. Lássuk, hogyan törölje ezt a. Oh OK. OK. Tehát ez az, aminek látszik. Tehát úgy tűnik, mintha a sárgák Megadtam mint a 0, majd a piros adtam meg, mint 1 mp. Tehát itt úgy néz ki, label pont és Úgy tűnik, mintha épp most akartam néhány egyfajta csoportosítás ezen. És hadd menjen előre, és azt mutatják, akkor néhány ilyen beépített funkciók. Tehát itt van lm. Tehát ez csak próbál hogy illeszkedjen a sor, hogy ezt a. Szóval mi a legjobb módja hogy elfér egy sorban, mint hogy ez a legjobb külön ez a fajta csoportosítás. És ideális, ha csak látni hogy én csak futtatni ezeket a parancsokat majd megyek előre, és adjuk hozzá a sort. Tehát ez így a legjobb becslés. Az felidézi a legjobb, amelyik minimalizálja A hiba Igyekszik beilleszkedni ebbe a sorba. Nyilvánvaló, hogy ez úgy néz ki, milyen jó, de ez nem a legjobb. És lineáris modellek, a Általában lesznek igazán nagy elmélet és csak egyfajta Az épület alapjait gép tanulás. A gyakorlatban azonban fogsz akar valamit csinálni általánosabb. Így csak futtassa egy úgynevezett neurális hálózat. Ezek a dolgok egyre gyakoribb. És csak a munka fantasztikusan nagy adatbázisok esetén. Tehát ebben az esetben, csak have-- nézzük csak-- van nrow. Tehát nrow van csak azt mondom, a sorok számát. Tehát ebben az esetben, azt Van 100 megfigyelések. Szóval hadd menjen előre, és hogy egy neurális hálózat. Szóval ez tényleg szép mert én csak annyit nnet és akkor én elmúlik Y. Tehát az Y rovatba. Majd elmúlik ez a a másik két változó. Tehát ez rövidebb jelölése X1 és X2. Szóval menjünk előre, és futtatni ezt. Ó, sajnálom. Meg kell futtatni ezt az egészet. És ez még csak a nyomtatás jelölést milyen gyorsan vagy nem gyorsan meg konvergált. Tehát úgy néz ki, mint azt tette konvergálnak. Szóval hadd menjen előre és print hogy mi ez úgy néz ki, mint. Lásd itt a kép, és itt van Kontúr hogy milyen jól illik. És ez hogy-- látható ez az, hogy ez nagyon, nagyon szép. Még az is lehet overfitting, de akkor is teszik ezt a más technikák, mint a kereszt-validáció. És ezek is épített R. És hadd mutassam meg support vector machine. Ez egy másik nagyon gyakori technika gépi tanulás. Ez nagyon hasonlít a lineáris modellek, de ez használ egy úgynevezett kernel módszert. És lássuk, milyen jól működik. Tehát ez egy nagyon hasonló ahhoz, ahogy valamint a neurális hálózat végzi, de ez sokkal simább. És ez alapján le A what-- hogyan SVM munkát. Tehát ez csak egy nagyon gyors áttekintést néhány A beépített funkciók, amit tehetünk, valamint az adatok egy részét feltárása. Szóval hadd menjen előre és menj vissza a diák. Tehát nyilvánvaló, hogy ez Nem nagyon átfogó. És ez tényleg csak egy teaser amely megmutatja, mit tud igazán R. Tehát, ha csak szeretném többet itt egy csomó különböző források. Tehát ha szereti a tankönyvek vagy te Csak szerette olvasás dolgokat az interneten, akkor ez egy fantasztikus Egy Hadley Wickham, aki létrehozta mindezeket nagyon klassz csomagok. Ha szereti a videó, majd Berkeley van egy félelmetes bootcamp ez several-- ez a fajta hosszú. És hogy megtanuljuk, szinte mindent szeretne tudni R. És hasonlóan, van Codeacademy és az összes többi sort interaktív weboldalak. Ők is egyre common-- egyre gyakoribb. Tehát ez nagyon hasonlít a Codeacademy. És végül, ha csak szeretnénk Közösség és segít, Ezek egy csomó dolgot lehet menni. Nyilvánvaló, hogy még mindig használja levelezőlisták, csak mint szinte minden más programozási nyelvi közösség. És #rstats, ez közösségünk Twitter. Ez tulajdonképpen elég gyakori. És akkor felhasználó! Csak a mi konferencián. És aztán, persze, akkor használja az összes többi Q & A dolgok, mint Veremtúlcsordulás, Google, majd GitHub. Mert a legtöbb ilyen csomagok és sok a közösség köré összpontosul fejlődő kódot, mert nyílt forráskódú. És ez csak igazán szép a GitHub. És végül, akkor forduljon hozzám, ha csak ki kell semmilyen gyors kérdés. Így megtalálható a Twitteren itt, a honlapom, és csak az én e-mail. Így remélhetőleg, ez volt something-- csak egy rövid teaser A mi R valóban képes megtenni. És remélhetőleg, csak nézd meg ezt a három linkek és mit tehetünk többet. És azt hiszem, hogy ez csak róla. Köszönöm. [Taps]