CONNOR HARRIS: Still I úgy gondolja, néhány izgalmas videó
által készített szakmai tanácsadás használó R sok a munkája.
>> NARRÁTOR: Mit rejt a statisztikát, Az analitika, és a képi
hogy a mai legfényesebb adatok tudósok és az üzleti vezetők támaszkodnak
hogy erős döntéseket?
Lehet, hogy nem mindig látja.
De ott van.
Úgy hívják R, nyílt forráskódú R-- a statisztikai programozási nyelv
hogy az adatok a szakértők a világ több mint használni mindent
re feltérképezése széles társadalmi és marketing trendek az online
a fejlődő pénzügyi és éghajlat modellek, amelyek segítenek a gazdaság motorjává
és közösségek.
>> De mi is pontosan a R Hol és R kezdeni?
Nos eredetileg, R kezdődött Itt a két professzor
aki meg akarta jobb statisztikai platformot a diákok.
Így létre egy modellezett miután a statisztika nyelvén S.
Ők, sokakkal együtt, folyamatosan dolgozik, és a K,
megteremtése eszközök R, és megállapította, új alkalmazások R minden nap.
>> Ennek köszönhetően az világméretű közösségi erőfeszítés,
R tovább növekedett a több ezer A felhasználó által létrehozott könyvtárak beépített
hogy fokozza R funkciók és tömegből származó minőségi érvényesítés
és támogatja a legismertebb iparági vezetők minden területen, hogy
használja R. Ami jó, mert R a legjobb abban, amit csinál.
Kezdő szakemberek gyorsan és egyszerűen értelmezni, kölcsönhatásba,
és láthatóvá adatok mutatják, hogy gyorsan növekvő közösség R felhasználók világszerte
és látom, hogy a nyílt forráskódú R továbbra is formálja
A jövőben a statisztikai elemzések és adatok a tudomány.
>> CONNOR HARRIS: OK, nagyszerű.
Tehát a saját prezentáció lesz egy kicsit józanabb.
Ez nem jár, hogy sok izgalmas háttérzenét.
De ahogy láttam a videót, K egyfajta Az általános célú programnyelv.
De jött létre többnyire A statisztikai munkát.
>> Szóval ez tervezték statisztikák, az adatok elemzése, az adatbányászat.
És így láthatja ezt a sok A tervezési döntéseket, hogy a döntéshozók a R
készült.
Úgy tervezték, nagyrészt, emberek, akik nem
szakértők programozás, aki csak felvette programozási
oldalán így végzik a munkájukat A társadalomtudományi vagy statisztikák
vagy bármi.
>> Van egy csomó nagyon Fontos különbség a C.
De a szintaxis és a paradigmák hogy az általa használt nagyjából azonos.
És akkor érzem, elég is otthon rögtön a denevér.
Ez egy rendkívül fontos nyelvet.
>> Ne aggódj túl sokat, hogy Ha nem tudod, hogy a kifejezés.
De van egy különbség között elengedhetetlen, deklaratív,
és funkcionális.
Felszólító csak azt jelenti, hogy nyilatkozatok, amelyek alapvetően parancsokat.
És akkor a tolmács vagy a számítógép követi őket egyesével.
Ez gyengén típusos, vannak nincs deklaráció R.
>> És akkor a vonalak különböző típusai között
egy kicsit lazább, mint azok C, például.
És mint mondtam vannak Nagyon széleskörű felszereltsége
az ábrázoláshoz, statisztikai elemzése, az adatbányászat.
Ezek mind beépítve a nyelvet, és ahogy a videó mondta,
Több ezer harmadik fél könyvtárak, hogy tudod letölteni és használni térítésmentesen
nagyon laza engedély feltételeit.
>> Így általában, én azt javasolnám, hogy megnézi a két könyv
ha mész dolgozni R. One ezek a hivatalos R kezdő
útmutató.
Ez által fenntartott core fejlesztők R.
Akkor töltse le újra, szabadon díjat és jogilag meg, hogy az oldalán.
Mindezek diák fog menni fel az interneten, a CS50 honlapján
miután ez megtörtént.
Így nem kell másolni dolgokat kétségbeesetten.
>> A másik pedig egy tankönyve Cosma Shalizi,
aki egy statisztika professzora A Carnegie Mellon, az úgynevezett Advanced Data
Elemzés egy Elemi szempontból.
Ez elsősorban nem egy R könyvet.
Ez egy statisztikát könyvet, és ez egy adatelemző könyvet.
De ez nagyon hozzáférhető, akik Van egy csöppnyi statisztikák tudás.
>> Én még soha nem vett hivatalos kurzus.
Csak azt tudom, darabokból A különböző szövetséges tárgyak
hogy megtettem azt kurzusok.
És voltam képes megérteni Tökéletesen jól.
>> Minden a számadatok R. Anyaguk K
és ők is kódlistáknak Az alábbi ábrán az egyes, hogy elmondjam,
hogyan teszi minden figura R-kód.
És ez nagyon hasznos, ha akarsz emulálni
Néhány számadat látsz egy könyvben.
>> És ismét ingyenesen letölthető stat.cmu.edu/cshalizi/ Sajnáljuk,
hogy kell perjel hullámvonal cshalizi.
Vagyok benne, hogy a helyes, hogy amikor a hivatalos diák megy fel.
/ ADAfaEPoV ami csak a mozaikszó a könyv címe.
>> Tehát az általános caveats-- R van egy csomó képességek.
Én csak lesz képes fedezni a felület egy csomó dolgot.
Szintén az első része a szeminárium lesz valami egy adat lerakó.
Én nagyon sajnálom.
Alapvetően fogok bemutatni, hogy egy csomó dolgot
rögtön a denevér, majd amilyen gyorsan csak lehet.
És akkor eljutunk A szórakoztató része, amely
A demo ahol meg tudom mutatni neked mindent hogy beszéltünk a képernyőn.
És tudod játszani körül a saját.
Tehát ott lesz a sok technikai dolgokat vetett fel itt.
Ne aggódj lemásolják azt le.
Mivel az A, akkor kap az összes cucc a CS50 honlapján később.
A és B, ez nem is olyan fontos, memorizálni ezt a lemezekről.
Sokkal fontosabb, hogy kapsz Néhány intuitív létesítmény vele
és hogy jön csak játék körül.
>> Szóval miért használja R?
Alapvetően, ha van egy projekt, amely magában foglalja a bányászat nagy adathalmazok, adatok
vizualizáció, akkor kell használni R. Ha
Ennek bonyolult statisztikai elemzéseket, hogy nehéz lenne az Excel,
például, amilyet akkor is good-- is
ha csinálsz statisztikai elemzés, amely automatizált.
Mondjuk te fenntartása honlapján.
És azt szeretné, hogy olvassa el a szerver log minden nap, és összeállítja néhány listája,
mint az első országok a felhasználók jönnek,
Néhány összefoglaló statisztikákat, hogy mennyi ideig költenek a honlapon, vagy bármi.
És azt szeretnénk, hogy futtatni ezt minden nap.
>> Most, ha ezt az Excel, ha volna, hogy menjen el a szerver log,
importálni, hogy egy Excel táblázatkezelő adatok,
futtatni az elemzés kézzel.
Az R, akkor csak írj egy forgatókönyvet.
Ütemezni, hogy fut minden nap az operációs rendszerből.
És akkor minden este 02:00, vagy amikor a menetrend, hogy fut,
akkor nézd át a internetes forgalom az adott napon.
Majd a következő napon, akkor Van ez a fényes, új jelentés
vagy bármi minden a információt, amit kért.
>> Tehát alapvetően R Cisco programozási versus Cisco elemzése.
Előzetes történik.
Térjünk át a valódi dolgokat.
Szóval van három igazi típusok a nyelvet.
Van numerikus típusú.
Van valami különbség a egészek és lebegő pontokat,
de nem igazán.
Van egy karakter írja, ami szálakat.
És van egy logikai írja, ami Logikai.
>> És tudod alakítani a típusok között Ezen funkciók használatakor a numerikus,
a karakter, mint logikus.
Ha hívja, például numerikus egy string,
akkor próbálja olvasni, hogy a húr mint egy szám, ugyanúgy
hogy A2I és scanf csinálni, és C. Ha hívja a numerikus szóló igaz vagy hamis
fogja alakítani 1 vagy 0.
Ha hívja a karakter a semmit, hogy lesz
átalakítani, hogy egy karakteres ábrázolása.
>> És akkor ott vannak a vektorok és mátrixok.
Tehát vektorok alapvetően 1 dimenziós tömb.
Ők mit nevezünk a tömbök C. matricák, 2 dimenziós tömb.
És akkor a magasabb dimenziós tömb tudsz
3, 4, 5 méretei vagy bármi A numerikus értékek, a vonósok,
A logikai értékek.
>> Arra is van listákat, amelyek egyfajta asszociatív tömb.
Én ezzel is egy kicsit.
Tehát az egyik fontos dolog hogy kirándulások embereket a K
az, hogy nincsenek igazi, tiszta atomi típusok.
Nincs tényleges megkülönböztetése Számos, mint egy számérték,
és egy listát a numerikus értékek.
Numerikus értékek valójában a ugyanaz, mint a vektorok hossz 1.
És ez számos fontos következményei vannak.
Az egyik, az azt jelenti, hogy meg tudod csinálni dolgok nagyon könnyen érintő
mintha egy számot egy vektor.
R alapvetően figura ki mit ért ez alatt.
És hozok, hogy egy másodperc.
Ez azt is jelenti, hogy nincs mód típusának checker-- mértékben
hogy valami ilyesmi létezik R-- mondani
ha már eltelt az egyetlen érték mikorra várható, hogy egy tömb, vagy fordítva.
És ez okozhat néhány furcsa bajok, hogy belefutottam, amikor
Én a K munkám során nyári munkát.
És nincsenek vegyes típusú tömbök.
Szóval nem lehet egy tömb voltak első eleme van, nem tudom,
a húr "John", és a második elem száma 42.
Ha megpróbál megtenni, akkor kapsz mindent csak át egy húr.
Tehát van húr John, string 42.
>> Annyira szokatlan szintaktikai features-- leginkább R szintaxis nagyon hasonló a C.
Van néhány fontos különbség.
A gépelés nagyon gyenge.
Így nincsenek változódeklarációkat.
Hozzárendelés használja a furcsa Hiba üzemeltető kevesebb, mint kötőjelet.
Észrevételeiket a kettőskereszt.
Azt hiszem, most már nap hívjuk hashtaget bár ez nem igazán accurate-- nem
A kettős perjel.
>> Moduláris maradványok vannak %% jelei.
Osztás van a% /%, ami Nagyon nehéz olvasni, amikor az előrejelzések
fel a képernyőn.
Tudod kap tartományok egészek a vastagbélben.
Így 2,5 kapsz egy vektor Az összes számot 2 és 5.
>> A tömbök egy indexelt, amely csavarok egy csomó ember
fel, ha ők több tipikus programozási nyelvek,
mint a C, ahol a legtöbb dolgok nulla indexelt.
Ez megint ahol R örökség mint egy nyelv számára, mint a nem
professzionális programozók jön.
Ha egy szociológus vagy közgazdász, vagy valami
és te próbálod használni R alapvetően kiegészítéseként
a fontosabb szakmai munka,
fogsz találni Egy-indexelése egy kicsit több természetes.
Mert akkor elkezd számolás 1 a mindennapi életben, nem 0.
>> For-hurkok, ez hasonló a A foreach szerkezet PHP-
amely kapsz megtanulják in-- hamarosan.
Melyik az érték vektor és akkor meg tudod csinálni a dolgokat értéket.
Közönség: Ez közbejött előadás.
CONNOR HARRIS: Ó, ez jön előadás, remek.
Közönség: A feladat, ez állítólag pont jobbról balra?
CONNOR HARRIS: Jobbról balra, igen.
Akkor úgy mondanám, hogy az az érték, jobb tolta a változó
bal oldalon.
Közönség: OK.
>> CONNOR HARRIS: És végül függvény szintaxisa egy kicsit furcsa.
Megvan a funkció nevét ize, célhoz kötött A kulcsszó a funkciót, majd
az összes érvet, majd a a függvény törzse után.
Ismét e dolgok Úgy tűnik, egy kicsit furcsa.
Fognak válni második természet után dolgozik a nyelvét egy kicsit.
Tehát vektorokat, az utat Ön Vektor
te C típusú, amely egy kulcsszót, majd Az összes kívánt számokat vagy húrok
vagy bármi.
Érvek is vektorok.
De a kapott tömb lesz lapított.
Szóval nem lehet tömbök Egyes elemek egyetlen szám
és néhány elem tömbök magukat.
>> Tehát, ha majd felépíteni egy tömb voltak az első elem 4
és a második elem a tömb 3,5 fogsz
csak kap egy három elemből tömb, 4,3,5.
Ezeket nem lehet a vegyes típusú.
Ha megpróbálja írni és olvasni határain kívülre egy vektor
akkor ezt az értéket nevezzük NA a amely áll a hiányzó adatot.
És ez szánják mint statisztikusok
dolgozunk hiányos adatok.
>> Ha alkalmazza a funkciót, ami állítólag Erre csak egy számot egy tömböt
akkor mit kapsz, annál funkció térkép fölött a tömbben.
Tehát, ha a funkció mondjuk úgy Számos és visszaadja téren.
Ön alkalmazni, hogy a tömb 2,3,5 Mit kapsz a tömb 4,9,25.
>> És ez nagyon hasznos mert ez azt jelenti
Nem kell írni a hurkok Ennek nagyon egyszerű dolgok, mint alkalmazása
függvényében minden tagjának egy adathalmaz.
Melyik ha dolgozik, nagy adathalmazok, meg kell csinálni egy csomó.
Bináris funkciók Alkalmazott bejegyzést bejegyzést.
Én ezzel is.
Érheti őket tömbök vagy irány szögletes zárójelek között.
Tehát vektoros nevét szögletes zárójelbe 1 megadja az első elemet.
Vektor nevet szögletes zárójelek 2 megadja a második elem.
>> Akkor át a vektoros Az indexek, és akkor
hogy újra ki alapvetően egy al tényező.
Szóval lehet csinálni vektoros nevét zárójelben C, 2,4 és kapsz ki egy vektort tartalmazó
a második és a negyedik elemei a tömb.
És ha azt szeretnénk, csak egy Gyors összefoglaló statisztika
egy vektor, mint interkvartilis tartományban, medián, maximális, bármi,
egyszerűen beírhatja összefoglaló vektor nevet és kap, hogy ki.
Ez nem igazán hasznos programozás, de ha játszunk
körül adatsorok, ez hasznos.
>> Matrices-- alapvetően magasabb dimenziós tömbök.
Ők ezt a különleges jelölési szintaxist.
Matrix egy sor, hogy lesz tele in-- sajnálom, mátrix adatok,
sorok számát, az oszlopok száma.
Ha van néhány olyan adatot, az tölti ki A tömb program alapvetően felülről lefelé
első.
Aztán balról jobbra.
Szóval, ilyesmi.
És R épített be mátrix szorzásokat
spektrális felbontása, diagonalizáció, egy csomó dolgot.
Ha azt szeretnénk, magasabb dimenziós tömbök, SO 3, 4, 5,
vagy bármi méretek tudod csinálni.
A szintaxis tömb homályos egyenlő c, akkor a lista a méreteket.
Tehát ha szeretnél egy 4 dimenziós tömb méretekkel 4, 7, 8, 9, a tömb,
homályos egyenlő c (4,7,8,9).
>> Eléri egyetlen értékeket zárójelben első bejegyzés vesszővel második bejegyzés.
Tudod kap teljes szelet sorok vagy oszlopok.
Ezzel a hiányos szintaxis ez Csak sorszámot vesszővel vagy vesszővel oszlop
szám.
Tehát listák egyfajta összefüggő tömbben.
Ők saját szintaxis itt.
Ismét nem kétségbeesetten másolja mindezt le.
Ez csak azért, hogy az emberek megy keresztül a diák későbbi
van ez az egész egy szép utalás.
És ez lesz nagyon természetes egyszer Igazából séta a demókat.
Tehát felsorol alapvetően kapcsolódó tömbök.
Elérheti értékek lista neve, dollár jel, kulcs.
Tehát, ha a lista ize nevű, akkor érheti meg ilyesmi.
Tudod kap egy teljes kulcsértékpár átadásával a szögletes zárójel index.
Ha olvasni egy nem létező gombot, kapsz null.
Ez nem hiba.
A helyzet az, R fog tenni, mint sok null, amennyit tud.
És ez azt jelenti, hogy ha Ön Nem számítottam rá, hogy null ki
Néhány lista olvasható, kapsz néhány kiszámíthatatlan hibák lejjebb
a vonal.
>> Ez történt velem az én nyári munka, ha én is használtam R
ahol én változott, hogy egy bizonyos listán került meghatározásra egy helyen
de nem változott később a kód, amely értékeit olvassa azt.
És akkor mi történt, én olvasás null értékeket ki ezt a listát,
múló őket funkciók, és hogy nagyon zavaros
amikor megkaptam mindenféle véletlenszerű végtelenek felbukkannak
ebben a funkcióban.
Mert ha alkalmazni bizonyos maximális vagy minimális funkciókat null,
kapsz végtelen értékek ki.
>> Az adatok keretek, ők egy alosztálya listát.
Minden érték egy vektor Az azonos hosszúságú.
És ők használják a bemutató, Alapvetően táblázat adatait.
Van ezen kezdeti szintaxist.
Ez minden, ismét, sokkal egyértelműbb, ha eljut a demo.
És szép dolog az adat kereteket, hogy meg
Nevet adhat az összes oszlopot és neveket összes sort.
És így teszi elérésével őket egy kicsit barátságosabb.
Szintén ez hogyan legtöbb függvény, olvasni az adatokat Excel táblázatok
vagy szöveges fájlok, például beolvassa az adatokat.
Ők majd tedd be valamilyen adatot keretben.
Tehát functions-- funkciók szintaxis egy kicsit furcsa.
Ez megint a nevét, a funkció, rendelni, ez a kulcsszó funkciót, majd
A fenti érvek.
Szóval van néhány szép dolgokat hogyan funkciók működnek itt.
Az egyik, akkor valóban rendelni alapértelmezett értékek az egyes érveket.
Szóval lehet mondani R1 equals-- tudod mondani ize
egy olyan funkció, ahol R1 egyenlő valamit Alapértelmezésben, ha a felhasználó megadja
nem érvek.
Egyébként ez bármit is tenni.
És ez nagyon hasznos mert sok a funkciók
Van gyakran több tucat vagy száz érvek.
Például az is ábrázolásakor grafikonok vagy összebeszélés pontdiagramot
Van érvek, hogy ellenőrizzék mindent a cím és a tengely
címkék színének regressziós vonalak.
És így, ha nem akarod hogy az emberek meghatározzák
minden egyes egy ilyen száz érvek
kontrolling minden egyes szempontjának a telek, illetve a regressziós vagy bármi,
ez szép, hogy ezek az alapértelmezett értékek.
>> És akkor valójában levelet ahogy láttam vissza ide.
Vagy talál egy jobb példa.
Amikor hívja funkciókat tudod valójában hívja őket az argumentum.
Tehát itt egy példa A mátrix kivitelező.
Három argumentuma.
Általában van adat, amely egy vektor.
Van N sorban, amely a sorok száma.
Van N cols-- oszlopok száma.
A lényeg az, ha beírja N sorban egyenlő bármi
és N col egyenlő bármit, ha hívsz ezt a funkciót,
akkor valóban fordított nekik.
Szóval akkor tedd N col első és N sorban második és ez sem számít.
Szóval ez egy jó kis funkció.
>> Vajon import és export.
Ezt meg lehet tenni, alapvetően.
Vannak még lehetőségek, hogy írjon ki tetszőleges R tiltakozik egy bináris fájlt
majd olvasni őket vissza később.
Ami hasznos, ha csinálsz egy nagy interaktív munkamenet R
és meg kell menteni dolgok nagyon gyorsan.
Alapértelmezésben R egy működő könyvtár hogy a fájlok és beírja ki
és olvasd vissza ettől.
Láthatjuk, hogy a getwg, változtassa meg setdw.
Semmi különösen érdekes itt
>> Tehát most is az aktuális statisztikák stuff-- multilineáris regresszió.
Tehát a szokásos szintaktikai egy kicsit bonyolult.
A modell egy nagy tárgy alapvetően.
Egyre rendelt LM, amely függvényhívás.
Az első elem, az y hullámvonal x1 plusz bármi.
Saját szintaxis itt egy kicsit zavaros.
Én nagyon sajnálom, ez a a szokásos módon
hogy a számítógépes tudományos könyvek erre.
De ez egy kicsit furcsa.
>> Tehát alapvetően ez lm zárójelben, első elem
A változó-- sajnálom, függő változó hullámvonal x1 plusz x2 plusz
Azonban sok független változók van.
És akkor ezek egyaránt lehet vektorok, mind az azonos hosszúságú.
Vagy lehetnek oszlop fejlécek adatcsomag
hogy csak meg a második érv adatok keret.
>> Azt is megadhatja, bonyolultabb képlet
így nem kell lineárisan visszafejlődnek egy függő változó,
vagy az egyik vektor a már meglévő vektor.
Meg tudod csinálni, például egy vektorösszetevője y faragva plusz 1
és visszafejlődnek, hogy ellen jelentkezzen néhány más vektor.
Lehet nyomtatni összefoglalói modell ezzel a paranccsal úgynevezett
summary-- csak összefoglaló parens modellt.
Ismét valami mást kéne tisztázni.
Valami mást, hogy lesz korrigálva ha a diák megy fel az interneten.
Ha csak azt, hogy számítani egyszerű összefüggés
akkor a korrelációs vektor 1 vektoros 2 funkció lényege.
Módszer alapértelmezésben Pearson korreláció.
Ezek a standard is meg tudod csinálni.
Ott is Spearman és Kendell összefüggések
amelyek közül néhány különböző rangsor korreláció.
Hát nem számolnak termék pillanatok között vektorok magukat,
de a vektor rangsort.
Elmagyarázom, hogy később.
>> Közönség: Gyors kérdés
>> Conner HARRIS: Persze.
>> Közönség: Tehát, ha éppen kiszámítása az egyszerű összefüggések csinálni
ha feltételezzük, hogy van egy statisztikai jelentőségét a korreláció?
Conner HARRIS: Nem kell.
Egy lm alapvetően csak egy gép.
Időbe fog telni a két dolog és ez kiköp
együtthatók a legjobb illeszkedést vonal.
Beszámol szabvány hibák ezen együtthatók.
És ez fogja mondani, mint a lehallgatott statisztikailag szignifikáns
vagy eltér 0.
A lejtőn a legjobb illeszkedő vonaltól statisztikailag
nullától eltérő, satöbbi.
Tehát azt feltételezi, semmit, azt hiszem, A legjobb válasz a kérdésre.
OKÉ.
>> Plotting-- így a fő ok akkor Használja R, mint multilineáris regresszió.
Alapvetően minden nyelven van néhány lehetőség erre.
És őszintén R szintaxis regresszió egy kissé misztikus.
De kirajzoló az, ahol igazán ragyog.
>> Az igásló funkció telek és tart két vektor, x és y.
És akkor a három pontra áll egy nagyon Számos opcionális érvek, hogy
irányítani mindent címeket színek A különböző vonalak vagy különböző pontjain,
A plot típusát.
Egyszerre szórás telket vagy sorban telkek.
>> [Hallhatatlan] 2 vektorok Az azonos hosszúságú.
Akkor megelőzheti ezt csatolja adatok keret a forgatókönyvet.
És ez akkor ismét csak használ oszlop fejlécek helyett külön vektorok.
Felveheti regressziós vonalát és a helyi regressziós görbék a grafikon.
>> Ezek a parancsok felsorolt Itt, az AB vonal és a vonalak,
alapértelmezés szerint ezek a kap beíródik felugró ablakok
mivel azt feltételezi, hogy Ön használ R interaktívan.
Ha nem tudsz írj két fájlok
vannak igazán olyan formátumban szeretne.
Sajnáljuk, van egy elírás Csak azt vettem észre.
Ha meg szeretné nyitni Egy másik grafikus eszköz
akkor használja ezt a funkciót nevű PNG vagy JPEG vagy sok más képformátum.
És akkor írj grafikonokat bármilyen fájl nevét megadja.
Ha mégsem, hogy meg kell use-- Ezt nem én írtam ezt a slide--
de van olyan függvény dev dot off argumentum nélküli.
>> Aztán ott vannak lehetőségek 3D kirajzoló
és kontúr összebeszélés Ha azt szeretnénk, hogy győződjön
grafikonok két független változó.
Nem fogok bejutni e most.
>> Van még néhány létesítmények animáció
ezek rendszerint harmadik felek által fenntartott.
Én megtettem animációk R grafikonok, de én nem használtam ezeket a harmadik fél
könyvtárak.
Szóval nem igazán tudok tanúsítják hogy milyen jók.
Amit ajánlani, ha azt szeretné, hogy animációkat használó R
A írhat ki az összes A keretek az animációk
és akkor használd a harmadik fél program--
jellemzőek az úgynevezett ffmpeg vagy ImageMagick-- összevarrni
az összes képkockát olvaszt egyetlen animáció.
>> Szóval ideje demo.
Tehát ha bármilyen UNIX-szerű rendszer amely Linux BSD de aki használja BSD.
OS X nyithatunk egy terminál ablakot és Type R a parancssorba.
Ha R stúdióban vagy hasonlók, hogy is működik.
Windows-felhasználók meg kell képes megtalálni R a start menüben.
Meg kell hívni valami mint az R x64 3 pont mindegy.
Nyisd ki azt ott.
>> Tehát most hadd nyithatunk egy terminál ablakot.
Rendben, keresés.
Közönség: Command-Space
Conner HARRIS: Command-Space, köszönöm.
Én rendszerint nem támogatják a Mac.
Terminal, jelzi az új ablakot.
Új ablak beállításait alap, R. Szóval kéne
egy üdvözlő üzenetet, valami ilyesmit.
>> Tehát én vagyok a K interaktívan.
Te is írhatsz R szkriptek természetesen.
Alapvetően szkriptek futtatásához pontosan ugyanolyan módon, mint
ha ült a számítógép előtt gépelés minden sorban egyesével.
Szóval kezdjük azzal, hogy egy vektor.
Egy nyíl a C 1, 2.
1, 2, 4.
Oké, rendben.
Azt is, hogy a betűméret nagyobb.
>> Közönség: Command-Plus
>> Conner HARRIS: Command-Plus.
Command-Plus.
Rendben, hogy van ez?
Jó?
OKÉ.
Szóval kezdjük nyilvánító vektor listát.
Van egy, nyíl, C 1,2,4.
Láthatjuk a.
Ne aggódj a konzol van.
A zárójelben így ha ki kell nyomtatni Nagyon hosszú tömbök, tudjuk, hogy hol van.
Egy példa az lenne, ha I Csak azt akarom tartomány 2-200.
Ha nyomtattam egy nagyon Hosszú tömb, a zárójelben
csak így tudom tartani követni, hogy melyik index
vagyunk, ha keresem ezen keresztül vizuálisan.
Szóval egyébként, hogy van egy.
>> Így már mondtam, hogy a tömbök kölcsönhatásba nagyon szépen, például
egyváltozós függvények, mint ez.
Szóval mit hiszem hogy ha én írja plusz 1?
Igen.
Rendben, most megcsinálom ez a különböző tömb.
Mondjuk b c 20,40, 80.
Szóval, mit gondolsz ez a parancs csinálni?
Add az elemeket.
És így alapvetően ez az, amit csinál.
Szóval ez elég kényelmes.
Szóval mi lenne erre. c van, mondjuk, 6-szor 1-10.
Szóval mit akarok látni tartalmazott, nem gondolod?
Tehát minden többszörösei hat.
Most, mit gondolsz fog történni, ha ezt csinálom?
Majd, hogy ez egy kicsit világosabb, C, C.
Tehát mi történik, ugye gondolom, ha ezt csinálom?
plusz c.
[NEM HALLHATÓ]
>> Közönség: Vagy egy hiba, vagy csak növeli az első három elem.
>> Conner HARRIS: Nem egészen.
Ez az, amit kaptunk.
Mi történik egy rövidebb tömb, egy, van felhasználható.
Szóval megvan a 124, 124, 124.
Igen.
És tulajdonképpen, megnézheti Ez a magatartás előtt, egy plusz 1,
alosztályának ezt a viselkedést, ahol A legrövidebb tömb csak a számot
1, amely egy egyik eleme tömb.
Csak mondjon vektoros összes Az idő helyett tömb,
mert ez az, amit az r dokumentációt szokott.
Ez egy megrögzött szokása c.
>> OK, így most már ezt a tömböt.
Így van ez a tömb, c.
Mi lehet kapni összefoglaló statisztikák c, összefoglaló c.
És ez szép.
Így most nézzük meg néhány mátrix dolgokat.
Mondjuk m egy mátrix.
Nézzük, hogy ez egy háromszor három egy.
Tehát nrows értéke 3, és ncols értéke 3.
És az adatok nézzük do-- akkor mi Mit gondolsz, ez fog csinálni?
>> Jobb, ez a következőt.
Ez nrow és ncolumn.
Szóval, mit tettem az én már nyilvánították háromszor három mátrix
és én már elfogadott egy kilenc tömböt.
Tehát a logaritmusát az összes elemek egytől kilenc.
És mindazokat az értékeket, töltse akár a array-- sajnálom?
Közönség: Ezek bázis 10 naplók?
Conner HARRIS: Nem, napló természetes alapú logaritmus, így e alapú.
Ja, ha akarta bázis 10 log, azt hiszem, hogy volna
A belépéshez bármi, osztva napló 10.
És így az adatok a [hallhatatlan] csak tölti fel a tömb, így fentről lefelé,
majd balról jobbra.
És ha akartam csinálni egy másik tömb, mondjuk n mátrix.
Csináljuk, nem tudom, 2-13.
Vagy én nem valami érdekes.
Megteszem 2-4.
nrow egyenlők mondjuk, 3.
Ncol- egyenlő 4.
n.
Így van ez.
>> És most, ha azt akarjuk, hogy szaporodnak ezek, tennénk n százaléka alkalommal százalékkal,
mert ez az n.
És mi van a mátrixban termékek.
Azzal, hogy így, láttad, hogyan amikor kijelentette n, a 2-4
vektor kapott szakad ig ez megtöltött minden n?
Ha akarta, hogy vegye sajátérték bomlás,
ez valami, amit tehetünk nagyon könnyen.
Tehetünk Eigen n.
És így ez az első találkozás egy listát.
>> Tehát Eigen n van egy lista két kulccsal.
Értékeket, ami ebben a tömbben van.
És vektorok, amely ezt a tömböt itt.
Tehát, ha akarta kivonat, mondjuk, ez a harmadik oszlop
A sajátvektorok mátrix, mert sajátvektorok vannak oszlop vektorok.
Így nem tehetünk vec eigen n dollár jel vektorok, vessző 3, a [hallhatatlan].
VEC.
Az, hogy mint ahogy azt elvárnánk.
>> Akkor mondjuk n-szer százalékkal alkalommal VEC.
Tehát az eredmény itt úgy néz ki, mint a ha mi volt a harmadik sajátértéke van,
ami megfelel a harmadik sajátvektor.
Csak szorozni mindent ez a sajátvektor, alkatrész-bölcs,
A sajátérték.
És ez az, amit elvárnánk, mert ez az, amit sajátértékek.
Van itt valaki nem hozott lineáris algebra?
Egy pár ember, OK.
Csak kapcsolja az agyadat le egy kicsit.
És valóban, ha vesszük Eigen n dollár jel értékek 3-szor VEC,
is kap ugyanaz a dolog.
Ez formázott másképp, mint a sorban vektor helyett egy oszlop vektor,
de nagy dolog.
És így azok alapvetően a szép dolog, amit tehetünk, mátrixok,
bizonyította listákat.
Azt kell bizonyítani a szép dolog funkciókat is.
>> Úgyhogy say-- [hallhatatlan] funkciót, Nevezzük
ez funk elleni funkció n n squared-- valóban, ez nem igazán a legjobb.
a, b, négyzetes plusz b.
Tehát az egyik dolog funkciók, ismét ők
Nem kell explicit return utasítás.
Szóval lehet csak-- a utolsó nyilatkozatát értékelték
lesz a nyilatkozatot visszatért, vagy a visszaadott érték.
Tehát ebben az esetben, mi csak értékelésében egy állítást, négyzetes plusz b.
Ez lesz az alapértelmezett visszatérési értéke.
Soha nem fáj, hogy hozzanak visszatérési értékeket nyíltan,
különösen, ha van dolgunk, a funkciója nagyon bonyolult logika
folyik.
De nem kell őket.
Tehát most nem tehetünk funk 5, 1, és ez alapvetően amit elvárnánk.
Valami mást tehetünk, mi is valójában csinálni funk b
értéke 1, a értéke 5.
Ha tehát meghatározza, hogy milyen szám van, amely érvelés, amelyre az érvelés
A funkció, akkor flip körül ezeket az értékeket, ahol szeretnénk.
>> Közönség: Van valami oka hogy írjon ki a b
egyenlő szemben a csak a A számok és a vessző?
Conner HARRIS: Igen, általában Ehhez, ha funkciók
sok érvet.
Lehet, hogy ez gyakran lenni, mint zászlók, hogy jobb lenne, ha csak a
szeretné használni a ritka alkalmakkor.
És így lehet only-- Önnek lehet hivatkozni a konkrét érvek
hogy a használni kívánt nem alapértelmezett értékek,
és nem kell, hogy írjon ki egy csomó zászlók egyenlő hamis utánuk.
Vagy tudok írni ezt újra alapértéket, mint b = 2.
És akkor tudtam csinálni f funk, Megteszem 4, 1 ebben az időben.
És a 17., ami 4 négyszögletesre plusz 1, mint várnánk.
>> De én is csak hívja ezt a funk 4,
és Hozok 18, mert Nem adja b.
Szóval b megkapja az alapértelmezett 2.
>> OK, így most ha következő együtt a demo,
írja ezt a sort az Ön parancs azonnali és mi jön ki.
Igazából nem csinál ilyet.
Írja be ezt.
Akkor kap valami ilyesmi.
Tehát mtcars van egy beépített adat beállítva a tüntetést
célra, hogy jön with-- hogy jön alapértelmezés szerint az Ön r forgalmazás.
Ez egy statisztikák összeállítása egy 1974-es számában Motor Trend magazin
számos különböző autó modellek.
>> Szóval van mérföld per gallon, cylinders-- Emlékszem, mi disp is-- lóerő.
Valószínűleg.
Ha csak a Google MT autók, Ezután az egyik első eredménye
lesz a hivatalos r dokumentáció
és ez magyarázza Mindezen adatok mezők.
Tehát súlya is-- tömeg van az autó súlya tonnában.
Q sec az negyed mérföld alkalommal.
Tehát most tehetünk néhány vicces dolgot mintegy MT autók egy adatmező.
>> Így tudjuk csinálni a dolgokat mint a sorban neveket, mt autók.
És ez egy listát az összes sorok Az adathalmaz, amely nevét az autók.
Tehetünk colnames, mt autók ezt.
Ha igen mt autók, al-numerikus index, mint a 2.
megkapjuk a második oszlop ki ez, ami henger.
>> Közönség: Mit csináltál?
>> Conner HARRIS: beírtam MT autók, zárójelben e,
amely adott nekem a második oszlop ki mt autók.
Vagy ha azt akarjuk, egy sorban, tudok írja mtcars vesszővel válassza 2, például.
Egyéb kerek 2 vessző, ilyesmi.
És hogy megy a sora.
Ez itt csak ad egy oszlop, de oszlop, mint egy vektor.
Csak azt vettem észre most Elfelejtettem bizonyítani
néhány nagyszerű dolgot vektorok hogy meg tudod csinálni a mutatók.
Szóval hadd csináljam, hogy most.
Tehát lássuk c gets-- üzembe ezt pause-- 2-szer 1-10.
Szóval c csak lesz vektor 2-től 20.
Tudok venni elemek, mint ez, c2.
Azt is át egy vektor mint ez, c-- hadd
Használja neve más, mint c, mint a VEC c.
Alapvetően én csinálok ez így nem kap
összetévesztették c a vektorkonstrukció funkciót,
majd c, mint egy változó nevét.
Vec zárójelben C 4, 5, 7.
Ez majd vinnie a negyedik, ötödik, és a hét elem a tömbben.
Meg tudom csinálni VEC, tedd egy negatív index, mint a negatív 4.
Hogy lesz nekem ezt a A negyedik elem távolítani.
Aztán ha akartam csinálni szelet, Meg tudom csinálni vec 2-től 6.
2 vastagbél 6 is csak egy vektor, amely a 2, 3, 4, 5, 6.
Kiköpi ezt.
>> Szóval egyébként, vissza mt autók.
Tehát lássuk néhány regressziót.
Mondjuk modell gets-- nézzük lineárisan regress-- Nem tudom.
Először nézzük akkor csatolja mtcars, természetesen.
Tehát [hallhatatlan] modell lm, nézzük visszafejlődnek mérföld per gallon a hullámvonal súlya.
És akkor az adatok keret mtcars.
Tehát összefoglaló modellt.
>> OK, így ez úgy néz ki, egy kicsit bonyolultabb.
De alapvetően, ha azt nézzük, ha próbálom kifejezni mérföld per gallon
mint egy lineáris függvény a súly, Aztán megkaptuk ezt a sort itt,
amely elfogja a 37.28.
37.28 lenne az elméleti mérföld gallononként egy autó, hogy a súlya nulla.
És akkor minden további tonna, kopogtatni körülbelül öt mérföld per gallon
le ezt.
Mindkét együtthatók akkor Láthatjuk, standard hibák vannak.
És nagyon statisztikailag szignifikáns.
>> Így lehetünk nagyon biztos, hogy 1 E 10 negatív 10.
Tehát 1 alkalommal valami negatív 10, hogy ha egy nehezebb autó,
akkor rosszabb mérföld per gallon.
Vagy tudjuk tesztelni néhány más modell.
Mint helyett elmúlik ez a tömeg,
nézzük visszafejlődés ez a napló a tömeg, mert talán az effektív tömeg
A futásteljesítmény valahogy nem lineáris.
>> Ez adott egy r-négyzete 0,7528.
Így próbáljuk meg.
Ezúttal Csináljuk különböző változó is.
Model2.
Tehát összefoglalva model2.
Rendben, tehát megint azt Megvan a legjobban illeszkedő vonal itt.
És ez time-- ezt mondván: alapvetően, hogy minden alkalommal, amikor
növeli a súlyát egy autó egy tényező e
elveszítjük ezt a sok mérföld per gallon.
>> És így ez alkalommal a reziduális standard error it--, hogy nem számít, de tényleg.
A maradék standard hiba alapvetően csak a standard hiba
hogy már elhagyta után elvenni a trendvonal.
És a K faragva itt 0,81, ami egy kicsit jobb, mint amit
a miénk volt, 0,52.
>> És így most adjunk ezt a kifejezést az regresszió.
Úgyhogy visszafejlődnek mérföld per gallon mind a napló a súlyok
és, csináljuk, q mérföld, negyed mérföldet időt.
OK, akkor kell the-- rendben, qsec.
Qsec.
Actually-- sajnálom, mi?
Hadd hívjam fel ezt a valamit más mellett model2.
Hadd hívjam fel ezt a model3.
És így most nem tehetünk összefoglaló model3.
És így ismét ez alapvetően amit várnánk.
Van pozitív lehallgatott.
A hatékony növekvő súly negatív.
És a hatékony növekvő negyed mérföldet idő
pozitív, de mégis kevésbé, mint a tömeg.
Most intuitív, akkor van értelme a ezt azzal gondolni sportkocsik.
Van egy nagyon gyors gyorsulás, Nagyon rövid negyed mérföld alkalommal.
Ők is fog használni több gázt, mivel értelmesebb autók mennek
hogy lassabb gyorsulást, magasabb negyed mérföldet alkalommal,
és kevesebb gázt ,, így nagyobb mérföld per gallon.
Nagy.
És így most itt az ideje, hogy telek valami ilyesmi.
Úgyhogy do-- így csupasz csontok tehetünk telkeket
mert már csatolni az adatokat keretben before-- tudjuk csak megtenni telkek, tömeg mpg.
Legyen ez egy kicsit nagyobb.
Ott, akkor alapvetően egy szórásdiagramon, de a pontok
a fajta nehéz látni ezt.
>> Nem emlékszem kapásból, amit a szintaxis megváltoztatására a telek.
Szóval azt hiszem, ez lesz egy jó ideje, hogy ki,
van egy nagyon szép beépített súgó funkciót, segítségre idézetek függvény nevét.
Majd felnevelni alapvetően bármit, amit szeretne.
Azt hiszem, valójában ezt típusú egyenlő p a pontokat telkek.
Tudta, hogy változtatni valamit?
És nem, nem igazán.
Minden rendben.
>> Valamilyen oknál fogva, ha ezt tettem a saját számítógépén egy ideje,
minden szórás pont sokkal világosabb.
Akárhogy is, a szórás mintegy látható?
Van ott.
Néhány ott, néhány ott.
Akkor egyfajta látni őket, ugye?
Tehát ha azt akarjuk, hogy adjunk egy regressziós vonal e görbe itt, ami egy kicsit csupasz
bones-- hadd tegyem egy kicsit szebb.
Fő egyenlő versus súlyát.
Mérföld per gallon.
Ismét láthatjuk, milyen hasznos opcionális érvek itt is
nem kell a dolgokat egy bizonyos sorrendben billentyűzettel érvek
ha van telkek, mert Ezek figyelembe Sok érv.
>> Xlab egyenlő súlyt, súly, tonna.
Minden rendben.
OK, igen, ez a készülék van, hogy egy kicsit idegesítő.
De láthatod valami ott, van egy grafikon neve az oldalon.
Több mint itt there's-- alján Itt vannak a tengelyek feliratait.
Nem emlékszem, hogy kapásból amit a parancsok ars--
mi a feladata, hogy növelje A mérete az említett címkéket és címek,
de ott vannak.
>> És így ha azt akarjuk, hogy adjuk hozzá a legjobban illeszkedő vonal,
tudnánk tenni valamit az általam elvártnál I Van a szintaxis írásbeli itt.
Úgy emlékszem, mi csak add modell volt mpg, súly, mtcars.
És így ha akartam adni a legjobban illeszkedő vonal, amit tehettem, b vonal modell.
És bumm, van egy regressziós vonalat.
Elég nehéz látni újra.
Én nagyon sajnálom a technológiai nehézségek.
De fut alapvetően bal felső a jobb alsó sarokban.
>> És ha a skála voltak nagyobb, látni lehetett
hogy a lehallgatott az, amit tudsz megtalálni a összefoglaló statisztikák
ha beírja összefoglaló modellt.
OK, így remélem, mindenki kap valami olyan értelemben, hogy mit
R, mi ez jó.
Lehet, hogy sokkal szebb, mint telkek ez a maga idejében, ha úgy tetszik.
>> Így a külföldi függvény felületén.
Ez olyan dolog, ami nem tipikusan hatálya alá tartozó bevezető előadások
vagy bevezető semmit r.
Ez nem valószínű, fogsz szüksége van rá.
Én azonban hasznosnak találta az saját projektek a múltban.
És nincs jó tutorial online.
Szóval én csak fog rohanás mindannyian ezen keresztül
majd nyugodtan hagyja.
És így a külföldi függvény felületén, ami
használhatja, hogy hívja ki, hogy funkciókat tartson fenn R. Belsőleg
R épül C. R számtani csak C 64 bites lebegőpontos aritmetikai,
ami írja dupla [hallhatatlan].
És érdemes csinálni ez egy csomó oka.
Az egyik, R értelmezik, ez Nem összeállított le gépi kódra.
Szóval lehet átírni a belső köreiben a C, majd kap
az előnye, hogy segítségével R. Like ez egy kicsit kényelmesebb, mint a C.
Ez már jobb grafikus létesítmények és miegymás.
És míg továbbra is képes, hogy végsebessége ki a belső köreiben,
ott, ahol tényleg szükség van rá.
>> Újrafelhasználása meglévő C könyvtárak, ez is fontos.
Ha van egy kis C könyvtár számára, mint, Nem tudom, Fourier transzformálja,
vagy valami nagyon Archean statisztikák alkalmazott eljárás
A nagy energiájú asztrofizika vagy valami, nem tudom.
Nagy energiájú asztrofizika még csak nem is gondol, azt hiszem.
De meg tudod csinálni, hogy ahelyett, hogy írjon egy natív R-port közülük.
És the-- és újra, mint ha nézz a legtöbb R alapértelmezett könyvtárak,
A belső elemei, a belső tulajdonságok kívánja használni a külföldi funkció
felület nagyon széles körben.
Azt kell majd a dolgok, mint Fourier átalakítja vagy számítástechnikai korrelációs
együtthatók C-ben írt, és akkor Csak ki R csomagolóanyagokat körülöttük.
Az interfész egy kicsit nehéz. gondolom
hogy nehézséget eltúlzott egy sok az utasításokat talál.
De mégis, ez egy kicsit zavaró.
És akkor még nem tudták, hogy találni egy jó tutorial érte,
Szóval ez most.
Ismét, ez az egész szegmens több későbbi referenciaként.
Ne aggódj másolás mindent le most.
Tehát a következő utasításokat a Unix-szerű rendszerek,
Linux, BSD, OS X nem tudom hogy ez hogyan működik a Windows,
de kérem, csak ne csináld meg A projekt végső Windows.
Tényleg nem akarok.
Unix sokkal jobb meg akár alkalmi programozás.
Szóval, alapvetően a külföldi függvény felületén.
Ha azt szeretnénk, hogy írjon egy C funkció használható R,
azt, hogy tegyenek meg minden érveket mutatók.
>> Így egyetlen értékeket, ez a azt jelenti, hogy rámutatott, hogy az értéket.
Tömbök, ez egy mutató az első elem, amely
amit tömb nevét jelent valójában.
Ez megint valami, amit kellett volna csinos teljesen le után o meg öt.
Array nevek csak pointerek hogy az első elemet,
A lebegőpontos típusú kettős.
És a funkció, hogy visszatérjen semmis.
Az egyetlen módon, hogy az valójában mondani R, mi történt
ez módosítja a memóriában, hogy a K adta hogy ez a külföldi funkció
felület.
>> Szóval írtam ezt Például itt van ez
függvényében, hogy kiszámolja használatra skalárszorzatára két vektor.
Tart két érv, vec1, vec2, amelyek a vektorok maguk,
majd N, amely egy hossza, mert megint
R épített a [hallhatatlan], hogy megtudja, a hossza a vektorok, de C nem.
A C-ben, vektorok egy tetszőleges tagolt darab memória.
Szóval, ahogy csak lehet számítani dot termékek
csak meg ezt a paramétert ki nullára, majd halad végig
1 csillag n, mert n, egy mutató a hossza,
csak adj valamit, hogy ezt ki paramétert.
És ez lehet a helyes gyakorlat ha meg akarsz csinálni
ezt a levelet két különböző C függvények.
Egyikük has-- egyiket úgy érveket és típusok
hogy azok rendes körülmények C-ben
>> Tehát vesz egy tömbben érveket mutatók.
De egy-érték érvek, mint n, csak úgy, mint értékeket másolatát,
anélkül mutatók.
És akkor nem [Hallhatatlan] ki mutatót.
És akkor lehet egy másik, alapvetően,
wrapper függvényt, amely alapvetően kezeli a követelményeknek
A külföldi funkció interfész az Ön számára.
>> Az, ahogy mondják ezt R, egyszer megvan a funkciója C-ben írt,
beírás R cmd shlib, R parancsot megosztott könyvtár,
ize pont c, vagy bármi A fájl neve,
és az operációs rendszer shell nem az R terminál.
És ez létre fog hozni egy nevű könyvtárat ize pont így.
És akkor töltse be a script, vagy interaktív
paranccsal din dot terhelést.
Aztán van egy funkciója K úgynevezett dot c.
>> Ez úgy érvekkel első a nevét a funkció C
hogy a hívni kívánt.
És akkor az összes paramétert hogy ezt a funkciót,
azokat kell a megfelelő sorrendben.
Ki kell használni az ilyen típusú kényszert funkciók, mint egész, mint
két-, mint a karakter, és logikus.
És akkor, amikor visszatér a listát, ami ismét csak
társult tömb a paraméter nevét, az értékek
miután a funkció futni.
>> Tehát ebben az esetben, mivel a dot Prod rendelkezik érvek vec1, vec2, és int n, n ki.
Hogy pont, c van dot Prod, A függvény neve
mi hívsz, vec1, vec2 írja kényszerítenie.
A hossza akár vektor, Én csak úgy döntött, vec1 önkényesen.
Nem lenne erőteljesebb mondani s integer perc hosszúságú vec1, hossza vec2.
Aztán ahogy dupla nulla, mert mi nem igazán
érdekel, mi kerül a out paraméter, mert mi vagyunk
beállítás, hogy nulla egyébként.
>> És akkor az eredmények lesz nagy összefüggő tömb alapvetően
vec1 van bármi, vec2 van bármi.
De mi érdekli ki, így tudjuk, hogy ki.
Ez ismét csak nagyon játékszer példa Egy külföldi függvény felületén.
De ha kell, hogy számolja dot termékek tömeges vektorok hurkok,
vagy ha meg kell csinálni valami mást a hurok,
és nem akar támaszkodni R, amely nem rendelkezik egy kicsit a feje fölött
beépítve, ez hasznos lehet.
>> Ismét, ez általában nem bevezető téma R.
Ez nem túl jól dokumentált.
Én csak köztük, mert Én hasznosnak találták a múltban.
Szóval, rossz gyakorlatok.
Már említettem, hogy van egy A hurok a funkciót.
Általában nem kellene, a A nyelv, nem használja azt.
Alapján, hogy a K valósítja ismétlés belsőleg, lehet lassú.
Ők csak is csúnya.
>> R kezeli vektorok szépen, így sokszor akkor nem kell használni.
Akkor általában cserélje vektor gyakran
e funkciók úgynevezett magas érdekében funkciók, térkép, csökkentése,
Keresse meg, vagy a szűrő.
Én csak ad némi példa, hogy mi ezeket csinálni.
Térkép egy magasabb rendű függvény, mert tart egy funkciót érvként.
Szóval lehet, hogy ez egy funkciót, akkor adjon meg egy tömb,
és ezt alkalmazza a funkciót minden eleme a tömb
és visszatér az új tömb.
Csökkentse, alapvetően adsz ez egy tömb, akkor add
olyan funkció, amely két paramétert.
Ez vonatkozik a funkció első, a első érv néhány starter értéket.
Aztán, hogy ez az eredmény a második.
Aztán, hogy ez az eredmény a harmadik, majd ezt az eredményt a negyedik.
És akkor tér vissza, ha ez lesz a vége.
Így például, ha azt szeretnénk, hogy kiszámítja az összeg az összes elemet
egy tömbben, mint amit nevezhetünk csökkentésére Az [hallhatatlan] csökkentse kiegészítés
funkciót, mint a funkcionális a, b, visszatér egy plusz b.
És akkor indul a 0 érték.
>> És mindezek, megtalálja őket leírt R dokumentációt,
minden tankönyv funkcionális programozás.
Van még ilyen osztályba feladatkörök alkalmazni funkciók,
amit nem-- ők egy kicsit nehéz megmagyarázni,
de ha megnézed az [hallhatatlan] lefoglalt, hogy én idézett elején,
magyarázza őket elég jól a függelékben a K programozás.
Többet gyakorlatok, mellékelik a vektorok.
Igen?
Azt hiszem, meg kell kijavítani, hogy.
Ebben az első sorban, a VEC nyíl, hogy nyíl nem kellene ott lennie.
Meg lehet rendelni egy vektor, Ugyanígy az, hogy a hossza, plusz 1
és bízzák bizonyos értéket, hogy.
Hogy meghosszabbítja a vektoros, vagy tehetünk VEC egyenlők c, VEC newValue.
Ismét, ha használja C Egy érv, mint egy vektor,
A kapott hierarhia lapított.
Szóval akkor csak kap egy vektor ami meghosszabbítható 1.
Soha ne csináld ezt.
>> Az ok, hogy miért nem kéne ezt ez.
Ha hozzárendel egy vektor, akkor ad neki egy bizonyos darab memória.
Ha növeli a vektor méretét, azt lehet elosztani a vektor
valahol máshol.
És így átcsoportosítását elég drága.
Nem megyek bele a részletekbe, hogyan memória foglaló végrehajtják
A operációs rendszer szintjén, de tart sok időt
találni egy új darab a memóriát.
És azt is, ha átcsoportosításának sok-sok
A fokozatosan nagyobb darabokat, akkor a végén
egy úgynevezett memória töredezettség,
ahol a rendelkezésre álló memória osztva sok kis blokkok
a memóriában allokátornak szempontból.
És ez egyre nehezebb és nehezebb találni memória más dolog.
Tehát ahelyett, ha szüksége van erre, ha meg kell nőni a vektoros egyik végétől
hogy a következő, ahelyett appending hozzá Folyamatosan, akkor előre lefoglalni azt.
VEC nyíl, vektor hosszát egyenlő 1000, vagy bármi más.
>> És akkor csak rendelni A vektoros értékek egyike
Egy idő után már kiosztott egyszer.
Belefutottam Ez megint az én nyári munka amikor írtam NRA eltérés
egyenlet megoldó.
Nem szimbolikus numerikus.
Az elképzelés az, hogy ha egyszer már Egy érték a megoldást,
használja, hogy számítani a következő egy.
Szóval a természetes naiv hajlott mondani OK,
úgyhogy kezdeni egy vektor ez egy jelentős értéket.
Számoljuk-re, hogy a következő érték hogy megy rá a megoldást vektor,
és hozzáfűzni, hogy.
>> Hozzon létre valami mást, hozzáfűzni, hogy.
Úgy ment nagyon, nagyon lassan.
És ha egyszer rájöttem, hogy ez és megváltozott a rendszer
ettől mellékelik az e vektor mint 10.000-től 100.000-szer,
hogy csak előre lefoglal egy vektor és csak fut vele.
Kaptam több mint 1000-szeres sebességgel felfelé.
Tehát ez egy nagyon gyakori csapda R programozási.
Ha fel kell építeni egy vektor apránként, előre kell osztaniuk azt.
>> Egy másik gyakori utazás up-- ez az utolsó csúszda, ne worry-- van hibakezelés.
R, hogy őszinte legyek, nem Tényleg ezt nagyon jól.
Van egy csomó problémákat, amelyek felbukkannak.
Például, ha kap egy tömböt vagy vektort ki egy funkciót
hogy várta egyetlen értéket származik, vagy fordítva,
és adja át, hogy egy függvény, amely Azt írtad vár egyetlen érték,
hogy lehet egy probléma.
>> Bizonyos funkciók null értéket ad vissza, mint csinálni, mondjuk,
olvasni a nem létező kulcsot listáját.
De null nem olyan, mint a C ahol, ha megpróbálja olvasni
Egy régi mutatót, [hallhatatlan] null pointer, csak seg hibák
és ha te vagy a debugger is megmondja, hogy pontosan hol van.
Ehelyett null lesz do-- funkciók fog tenni kiszámíthatatlan dolgokat
ha ők kézzel null.
Mint ha átadta max null, ez kapsz negatív végtelen.
És igen, igen.
És így történt ez nekem egyszer, mikor volt
megváltozott egy csomó mezők listámon szerkezete
Egyszer megváltoztatása nélkül máshol amikor olvastam tőlük.
És akkor kaptam mindenféle random végtelenig eredmények felbukkannak
és én fogalmam sincs, honnan jöttek.
És sajnos, van nincs igazi R szigorú mód
ahol azt mondják, ha valamit néz ki, hogy lehet, hogy hiba,
csak megáll ott, úgyhogy lehet fegyelmezett és javítani.
Van azonban valami nevű megállója, ha nem.
Ez egyenértékű a C- szemével, ha már beszéltünk erről.
Nem hiszem, hogy a C érvényesíteni egy előadás a témában,
de a szekciójának vezetője talán mégis rajta.
És megáll, ha alapvetően nem vesz semmilyen állítmány, így minden olyan nyilatkozat,
lehet igaz vagy hamis.
És ha ez hamis, akkor leállítja a programot.
Azt mondja, hogy pontosan mit vonalat voltak, és milyen állapotban sikerült.
>> És ez nagyon hasznos, például, józanság ellenőrzése, a funkció bemeneteket.
Tehát ha van egy függvény és vársz, mondjuk,
ha kell, adj egy időpontra, azt akarom, a dátumok csak egy vektor hossza 1
és valahol 1 és 31 között.
És ha nem, tudom, valami rosszul sült.
És én úgy dönt, hogy megáll ott, mielőtt ezt a van random kopogás hatásokat kód
hogy nehezebb nyomon követni rajta.
Szóval ez az egyik lehetséges használja a leállítás, ha nem.
>> Akárhogy is, az OK gombra.
Szóval itt a vége.
Köszönöm, hogy eljöttek.
Én egy rangot amatőr ebben.
Szóval sajnálom, ha unatkozik, vagy zavaros, vagy mit.
Örülök, hogy kérdéseket e-mailben A connorharris@college.harvard.edu.
Ez megy is mindenki számára nézi ezt élő vagy később.
Továbbá, bár nem vagyok TF, én is nagyon
hajlandó szolgálni mint egy nem hivatalos tanácsadója bárki, aki
felhasználásával R a végleges projekt.
>> Ha azt szeretné, hogy, hogy, akkor csak beszélni a TF
majd írj nekem egy e-mailt, így Tudom, mit dolgozik
és így tudok létrehozni találkozó szor veled, ha akarod.
Tehát újra, nagyon szépen köszönöm.
Remélem élveztem.
>> Közönség: [hallható].
>> Conner HARRIS: Természetesen.
>> Közönség: Miféle projekt lenne egy CS tanuló használjon R?
Conner HARRIS: Tehát ha nem valamit, ami pusztán az adatbányászat,
például, és ott nagyon sok dolog
meg tudná csinálni, hogy az adatokat bányászat és a gépi tanulás.
Érdemes használni R komponense valamit.
Én hoztam ki, eredetileg, a példa Az, ha írsz egy weboldal
és szeretné futtatni automatizált statisztikai elemzése a szerver
naplók egy bizonyos idő minden nap, hogy lehet valamit, ami
nagyon könnyű csinálni, mindössze egy rövid R script, akkor a menetrend
futtatni minden este, például.
>> És biztos vagyok benne, ha van valami oka, hogy azt
Szeretné statisztikák vagy grafikus képességekkel és ez a futam helyett automatikusan
annak, hogy kölcsönhatásba lépnek A dolgok az Excel,
például, hogy valami érdemes használni R.
Tehát még kérdésed, mielőtt elmegyek?
Nem?
Rendben, újra, köszönöm Nagyon szépen, hogy eljöttek.