CONNOR HARRIS: Ikka arvan, et mõned põnevad video toodetud professionaalne nõustamine mis kasutab R palju tööd. Jutustaja: Mis on selle taga statistika analytics ja visualiseerimine et tänapäeva säravamaid andmeid teadlased ja ärijuhte tugineda teha võimas otsuseid? Sa ei pruugi alati näha. Aga see on olemas. Seda nimetatakse R, avatud lähtekoodiga R-- statistilise programmeerimiskeelt et andmed eksperdid maailma kasutamise üle kõike alates kaardistamine paljusid sotsiaalseid ja turunduse trendid Internetis arendamisele finants- ja kliima mudeleid, mis aitab juhtida meie majanduse ja kogukondade. Aga mida täpselt on R ja kust R alustada? Noh algselt R alustas Siin on kaks professorit kes tahtsid paremat statistilist platvorm oma õpilastele. Nii nad lõid modelleeritud pärast statistilise keele S. Nad koos paljude teistega, hoida kallal ja kasutades R, luua vahendeid R ja leida uusi rakendusi R iga päev. Tänu sellele on maailma kogukonna jõupingutusi, R muudkui kasvas tuhandeid kasutaja loodud raamatukogud ehitatud suurendada R funktsionaalsuse ja Rahvas pärineva kvaliteedi kinnitamise ja toetust enim tunnustatud tööstuse juhid igas valdkonnas, et kasutab R. Milline on suur, sest R on parim, mida ta teeb. Noored eksperdid kiiresti ja lihtsalt tõlgendada, suhelda, ja visualiseerida andmeid, mis näitab nende kiiresti kasvav kogukond R kasutajat üle maailma ja kuidas avatud lähtekoodiga R jätkuvalt kujundada Tulevikus statistiliste analüüsi ja andmete teadust. CONNOR HARRIS: OK, suur. Nii et minu enda esitlus on natuke rohkem kaine. See ei kaasne nii palju põnev taustamuusika. Aga kui sa nägid videot, R on omamoodi Üldise eesmärgi programmi keelt. Aga see loodi peamiselt Statistilise töö. Nii et see on mõeldud statistika andmete analüüs, andmete hankimiseks. Ja nii näed seda palju disaini valikuid, et tegijate R tehtud. See on mõeldud suuresti, inimesed, kes ei ole ekspertide programmeerimine, kes lihtsalt pealevõtmine programmeerimine küljel, et nad saaksid teha oma tööd ühiskonnaõpetus või statistika või mis iganes. See on palju väga olulisi erinevusi C. Aga süntaks ja paradigmad et ta kasutab on üldjoontes samad. Ja sa ei tohiks tunda päris palju kodus õigus ära nahkhiir. See on hädavajalik keeles. Ära muretse liiga palju, et Kui sa ei tea sõna. Aga seal on vahet vahel hädavajalik, deklaratiivne, ja funktsionaalne. Hädavajalik tähendab lihtsalt teha avaldused, mis on põhimõtteliselt käske. Ja siis tõlgi või arvuti järgmiselt neid ükshaaval. See on nõrgalt kirjutatud, on no tüübist deklaratsioonid R. Ja siis read Erinevatele on natuke rohkem lahti, kui need on C, näiteks. Ja nagu ma ütlesin on väga ulatuslikud vahendid koostada graafikuid, statistika analüüs, andmete hankimiseks. Need on nii ehitatud keel ja nagu video ütles, tuhandeid kolmanda osapoole teeke, saate alla laadida ja kasutada tasuta väga lahtine litsentsi tingimused. Nii üldiselt salli et te vaatate neid kahte raamatut kui sa lähed tööle R. Üks neist on ametlik R algaja suunata. See haldab core arendajad R. Võite alla laadida seda uuesti, tasuta tasu ja õiguslikult sel link seal. Kõik need slaidid lähevad up internet, kohta CS50 kodulehel Pärast seda tehakse. Seega pole vaja kopeerida asju ette meeletult. Teine on õpik Cosma Shalizi, kes on statistika professor Carnegie Mellon, nimetatakse Täpsem andmed Analüüsitav Elementaarsed vaatepunktist. See ei ole peamiselt teadus- raamat. See on statistika raamat ja see on andmete analüüs raamatu. Aga see on väga kättesaadav inimestele, kes on natuke statistikat teadmisi. Ma ei ole kunagi teinud vastava kursuse. Ma lihtsalt tean, killud erinevatest seotud teadused et olen võtnud kursusi. Ja ma ei suutnud aru saada see väga hästi. Kõik arvud on esitatud R. Nad on tehtud R ja neil on ka kood nimekirjad allpool iga näitaja, mis ütleb teile, kuidas te teete iga number R-kood. Ja see on väga kasulik, kui üritad jäljendada mõned joonisel näete raamatut. Ja taas tasuta lae alla stat.cmu.edu/cshalizi/ Vabandame, et tuleks kärpida tilde cshalizi. Ma teen kindlasti parandada, et kui ametnik slaidid tõusevad. / ADAfaEPoV mis on alles akronüüm raamatu pealkiri. Nii üldine caveats-- R on palju võimalusi. Ma olen ainult kavatse olla võimalik katta pinnale palju asju. Ka esimene osa seminar saab olema midagi andmed prügimäele. Ma olen üsna kahju. Põhimõtteliselt ma lähen tutvustada teile palju asju õigus ära nahkhiir, läheb nii kiiresti kui võimalik. Ja siis me saame lõbus osa, mis on demo, kus ma näitan sulle kõike et oleme rääkinud ekraanil. Ja saate mängida oma. Nii et see saab olema palju tehniline kraam visatakse üles siin. Ära muretse, kopeerides kõik, et maha. Kuna A, saad kõik kraami CS50 veebilehel hiljem. Ja B, see ei ole tegelikult nii väga oluline meelde seda alates slaidid. See on veelgi olulisem, et sa saad mõned intuitiivne rajatis sellega ja mis pärineb lihtsalt mängides. Miks kasutada R? Põhimõtteliselt, kui teil on projekt, mis hõlmab kaevandamine suured andmekogud, andmeid visualiseerimine, sa peaks kasutama R. Kui oled teeb keeruliseks statistilist analüüsi, et oleks raske Excel, Näiteks, oleks Samuti good-- ka kui sa teed statistika analüüsi, mis on automatiseeritud. Oletame, et sa oled säilitades kodulehel. Ja sa tahad lugeda server log iga päev ja koostada mõned nimekirja, nagu top riikides, kasutajad tulevad, mõned kokkuvõte statistikat, kui kaua nad kulutavad oma veebilehel või mis iganes. Ja sa soovid käivitada iga päev. Nüüd, kui sa teed seda Excel, sa pead minema oma server log, importida, et arvesse Excel andmed tabelisse, käivitatakse kõik analüüs käsitsi. R, võid lihtsalt kirjutada üks skript. Kavandada selle iga päev oma operatsioonisüsteemi. Ja siis igal õhtul kell 02:00, või kui sa kavandada selle, näebki läbi Interneti liiklus samal päeval. Ja siis järgmisel päeval, saate on see läikiv, uus aruanne või mis iganes koos kõigi teavet, mida küsitakse. Ühesõnaga R on Cisco programmeerimine versus Cisco analüüsi. Esialgsed tehakse. Lähme reaalses asju. Nii on kolm reaalne tüüpi keeles. Seal on arvuline. Seal on mingi vahe täisarvud ja ujuva punkti, kuid tegelikult mitte. Seal on märk kirjuta, mis on stringid. Ja seal on loogiline kirjuta, mis on tõeväärtused. Ja saate teisendada vahel tüüpi Kasutades neid funktsioone numbriline, kui märk, nagu loogiline. Kui te helistate, näiteks Numbrilised string, siis püüab ta lugeda, et string numbrina, samamoodi et A2I ja scanf teha, ja C. Kui helistate kui numbriline kohta on õige või vale see muunduda 1 või 0. Kui te helistate kui tegelane midagi siis see teisendada seda arvesse string esindus. Ja siis on vektorid ja maatriksid. Nii vektorid on põhimõtteliselt 1 ühedimensionaalne. Nad on, mida me nimetame massiivid C. maatriksid 2 mõõtmeline massiivid. Ja siis suurem ühedimensionaalne saate on 3, 4, 5 mõõtmed või mis iganes numbriliste väärtustega, stringid, loogilise väärtusi. Sul on ka nimekirjad, mis on mingi assotsiatiivne massiiv. Ma saan sinna natuke. Nii et üks oluline asi et väljasõidud inimesi üles R on see, et puuduvad tõeline, puhas aatomi tüübid. Ei ole tegelikku vahet Numbri nagu arvväärtus, ja loetelu arvväärtused. Numbrilised väärtused on tegelikult sama vektorid pikkusega 1. Ja see on mitmeid olulist mõju. Üks, see tähendab, et sa saad teha asjad väga lihtsalt, et kaasata nagu lisades numbri vektor. R hakkab põhimõtteliselt arv mida mõtled selle. Ja ma saan, et teises. See tähendab ka, et ei ole nii, tüübi checker-- ulatuses, et midagi sellist eksisteerib R-- öelda Kui olete möödunud aastal ühe väärtuse kui ta loodab massiivi või vastupidi. Ja see võib põhjustada mõned kummalised mured, et ma jooksin kui Olin kasutades R ajal minu suveks tööd. Ja ei ole segatud tüüpi massiivid. Nii et sa ei pea massiivi olid Esimene elemendid on, ma ei tea, string "John" ja Teine element on number 42. Kui püüad seda teha, siis saad kõik lihtsalt teisendada stringi. Nii et meil on string John, string 42. Nii ebatavaline süntaktilise features-- kõige R süntaks on väga sarnane C. Seal on mõned olulised erinevused. Kirjutades on väga nõrk. Nii ei ole muutuja deklaratsioonid. Ülesanne kasutab kummaline viga operaator vähem kui sidekriipsuga. Kommentaarid on koos räsi märk. Ma arvan, et tänapäeval me nimetame seda hashtag kuigi see ei ole tegelikult accurate-- ole topelt kaldkriipsuga. Modular jäägid on koos %% märke. Integer jaotus on koos% /%, mis on väga raske lugeda, kui ta on prognoositud kuni ekraanile. Saad valikuid täisarvud jämesooles. Nii 2,5 teile vektori Kõigi numbrid 2 kuni 5. Massiivid on üks indekseeritud, mis kruvidega palju inimesi up, kui nad rohkem Tüüpiline programmeerimiskeeli, nagu C, kus enamik asjad on null-indekseeritud. Jällegi, see on koht, kus R pärandi keele jaoks, nagu ei professionaalse programmeerijad on saadaval. Kui oled sotsioloog või majandusteadlane või midagi ja sa üritad kasutada R põhimõtteliselt lisandina Teie tähtsam erialase töö, sa lähed leida ühe indekseerimise natuke loomulikumaks. Sest sa hakka lugema 1 igapäevaelus, mitte 0. For-silmuseid, mis sarnaneb foreach ehitada PHP, mis sa saad õppida in-- üsna varsti. Milline on väärtus vektor ja siis võid teha asju väärtust. Sihtrühm: See on tulla loeng. CONNOR HARRIS: Oh, see on tulla loeng, väga hea. Sihtrühm: Ülesanne, on see peaks meelde paremalt vasakule? CONNOR HARRIS: Paremalt vasakule, jah. Sa ei mõtle seda kui väärtus õigus lükata varieeruva vasakul. Sihtrühm: OK. CONNOR HARRIS: Ja lõpuks funktsiooni süntaks on natuke imelik. Sul on funktsiooni nimi suva, määratud Selle märksõna funktsioon, millele järgneb kõik argumendid ja siis keha funktsiooni pärast seda. Jälle need asjad võivad tunduda natuke imelik. Nad läbiv pärast te töötate keelt natuke. Nii vektorid, kuidas sa vektori on kirjutad C, mis on märksõna, siis kõik numbrid soovite või stringid või mis iganes. Argumendid ka vektorid. Aga tulemuseks massiivi saab lapik. Nii et sa ei pea massiivid, kus mõned elemendid on ühe numbrid ja mõned elemendid on massiivid ise. Nii et kui sa püüad ehitada massiiv oli esimene element on 4 ja teine ​​element on massiivi 3,5 teil lihtsalt saada kolm elementi massiivi, 4,3,5. Nad ei saa olla segatüüpi. Kui püüad lugeda ega kirjutada väljaspool piire vektorit saad seda väärtust nimetatakse PUUDUB A mis tähendab väärtuse puudumine. Ja see on mõeldud nagu statistikud, kes töötavad mittetäieliku andmekogud. Kui te rakendate funktsiooni, mis pidavat võtta vaid üks number massiivi siis mida sa saad, seda funktsioon kaardistab üle massiivi. Seega, kui teie ülesanne oletame võtab number ja naaseb see ruut. Sa kohaldada, et massiivi 2,3,5 Mida saad on massiivi 4,9,25. Ja see on väga kasulik sest see tähendab, et sa ei pea kirjutama silmuseid teeme väga lihtsad asjad nagu kohaldamisel Funktsiooni kõigile liikmetele andmehulga. Milline kui te töötate suur andmekogud, mida sa pead tegema palju. Binary funktsioonid rakendusuuringute kirje sissekandega. Ma saan sinna. Võite kasutada neid massiive või vektorite nurksulgudes. Seega vektor nimi nurksulgudes 1 annab sulle esimene osa. Vector nime nurksulgudes 2 annab teile teise element. Võite edastada vektor indeksite ja saate saada tagasi välja põhiliselt sub tegur. Nii saab teha vektor nimi sulgudes C, 2,4 ja sa saad välja vektor, mis sisaldab teisel ja neljandal elemendid massiivi. Ja kui sa tahad lihtsalt Kiire kokkuvõte statistika vektori nagu interquartile vahemikus, keskmine, maksimum, mida iganes, võid trükkida kokkuvõte vektor nimi ja saan selle välja. See ei ole tõesti kasulik programmeerimine, kuid kui sa mängid ümber andmekogud, see on mugav. Matrices-- põhimõtteliselt suurem mõõtmete massiivid. Neil on see eriline märke süntaks. Matrix array, mis saab täis in-- kahju, maatriksi andmed, ridade arv, veergude arvu. Kui teil on mõningaid andmeid, täidab ta massiivi põhimõtteliselt läheb ülevalt alla esimene. Siis vasakult paremale. Nii, nagu see. Ja R on ehitatud maatriks korrutamise puhul spektraalne lagunemise diagonalization, palju asju. Kui soovid kõrgema mõõtmete massiivid, nii 3, 4, 5, või mis iganes mõõtmed saab teha. Süntaks on massiiv päevasõidutulede võrdub c, siis nimekirja mõõtmed. Nii et kui sa tahad 4 mõõtmeline massiiv mõõtmetega 4, 7, 8, 9, massiivi, päevasõidutulede võrdub c (4,7,8,9). Sa tutvuda ühe väärtused sulgudes Esimene sissekanne komaga teine ​​sissekanne. Saad kogu viilud Ridade või veergude. Selle puudulikud süntaks on lihtsalt rea number koma või komadega veerus number. Nii nimekirjad on omamoodi seotud massiivi. Nad on oma süntaks siin. Jällegi ei meeletult kopeerida see kõik maha. See on lihtsalt nii, et inimesed läbimas slaidid hiljem on see kõik kena viide. Ja seda saab väga loomulik kord Ma tegelikult kõndida läbi demos. Nii loetleb põhiliselt seotud massiivid. Te pääsete väärtused nimekiri nimi, dollari märk, võti. Seega, kui teie loend on nime suva, siis saate kasutada seda niimoodi. Saad kogu võtmeväärtuste paari mida läbides nurksulg indeks. Kui teil lugeda olematu võti, saate null. See ei ole viga. Asi on selles, R teen palju koos null kui võimalik. Ja see ei tähenda, et kui sa oled ei oodanud, et saada null välja Mõne nimekirja lugeda, saad mõned ettearvamatu vigu veelgi allapoole rida. See juhtus minuga minu suveks tööd, kui olin kasutades R kus ma muutunud, kuidas teatud Nimekiri on määratletud ühe koha kuid ei muutu hiljem kood, mis lugeda väärtusi ta. Ja mis siis juhtus oli olin lugedes null väärtused sellest nimekirjast, möödaminnes neid funktsioone, ja olles väga segaduses kui ma sain igasuguseid juhuslik infinities koristuse üles Selles funktsioonis. Sest kui te rakendate teatud maksimaalse või minimaalselt funktsioonid tühjaks, saad lõpmatu väärtused välja. Andmed raamid, nad alamklass nimekirja. Iga väärtus on vektor ühepikkused. Ja nad esitamiseks kasutatakse, Põhimõtteliselt tabelid. Seal on see initsialiseerimise süntaks. Seda kõike jällegi olla palju selgem, kui sa saad demo. Ja kena asi andmed raamid on see, et sa võib anda nimed kõik veerud ja nimed kõigile read. Ja nii, et muudab juurdepääsu neid natuke sõbralikumaks. Ka see, kuidas enamik funktsioone, mis lugeda andmeid Exceli või tekstifaile, näiteks loeb oma andmed. Nad pane see mingisugune andmed raami. Nii functions-- funktsioonid süntaks on natuke imelik. Jällegi see on funktsiooni nimi, määrata, seda märksõna funktsioon ja seejärel argumentide loetelus. Nii on mõned toredaid asju kuidas funktsioonid töötavad siin. Ühe, saab tegelikult määrata vaikeväärtuste teatud argumendid. Nii saab öelda, R1 equals-- võib öelda suva on funktsioon, kus R1 võrdub midagi vaikimisi, kui kasutaja täpsustab ühtegi argumenti. Muidu see iganes ta panna. Ja see on väga mugav sest paljud meie funktsioonid on sageli kümneid või sadu argumente. Näiteks need, joonistamiseks graafikud või kandes hajuvusdiagrammide on argumendid, mis kontrollivad kõike pealkiri ja telje sildid värvi Regressioonijooned. Ja kui sa ei taha selleks, et inimesed täpsustada iga üks neist sadu argumendid kontrolli iga aspekti krundi või regressioon või mis iganes, see on tore, et on need vaikeväärtused. Ja siis saate tegelikult kirjutada kui nägid siia tagasi. Või leida paremat näidet. Kui te helistate funktsiooni saate tegelikult kutsuda neid kasutades argument nimed. Nii et siin on näide maatriks ehitaja. See võtab kolm argumenti. Tavaliselt on andmeid, mis on vektor. Sul on N rida, mis on ridade arv. Sul on N cols-- veergude arvu. Asi on selles, kui sa kirjutad N eraldi real iganes ja N col võrdub iganes, kui olete helistaja seda funktsiooni, saab tegelikult vastupidine neid. Nii saab asetada N col esimene ja N rida teine ​​ja see teeb mingit vahet. Nii et see kena väike funktsioon. Kas importi ja eksporti. Seda saab teha, põhimõtteliselt. On ka võimalus kirjutada välja suvaline R vastuväiteid binaarkoodiks ja siis loe neid tagasi hiljem. Milline on mugav, kui sa teed suur interaktiivne istungil R ja sa pead päästa asju väga kiiresti. Vaikimisi R on Töökataloogi et faile saada kirjalik viidud ja loe tagasi saadud. Te näete, et koos getwg, muuta seda setdw. Midagi eriti huvitav siin Nüüd tegelik statistika stuff-- multilinear regressiooni. Nii tavaline süntaksi on natuke keeruline. Mudel on suur objekt põhimõtteliselt. Läheb määratud LM, mis on funktsioon kõne. Esimene element, y tilde x1 pluss iganes. Minu süntaks siin on natuke segane. Ma olen üsna kahju, seda on standardne viis et infotehnoloogia raamatuid teha. Aga see on natuke imelik. Ühesõnaga, see on lm Sulgudes esimene kirje on variable-- kahju, sõltub muutuja tilde x1 pluss x2 pluss Kuid paljud sõltumatu muutujad pead. Ja siis need võivad olla kas vektorid, kes kõik ühepikkused. Või nad võivad olla veerus päised andmete raami et sa lihtsalt täpsustada Teine argument andmed raami. Samuti saab määrata keerukama valemiga nii et sa ei pea lineaarselt regress ühe muutuja, või ühe vektori varasemal vektor. Seda saab teha, näiteks vektorkomponent y ruudus pluss 1 ja taanduda, et vastu Logi mõne teise vektori. Saate printida kokkuvõtted mudel selle käsu nimeks summary-- lihtsalt kokkuvõte parens mudel. Jälle midagi muud ma peaks selgitama. Midagi muud, mis saavad parandatud kui slaidid tõusevad internetis. Kui tahad lihtsalt arvutada lihtne seos saate korrelatsioon vektor 1 vektor 2 funktsiooni tuum. Meetod on vaikimisi Pearson korrelatsioonid. Need on standard ones saate teha. Samuti Spearman ja Kendell korrelatsioonid mis on mõned erinevad paremusjärjestus korrelatsioon. Noh nad ei arvuta toode hetked vahel vektorite endi kuid vektori Koht tellimusi. Ma seletan hiljem. Sihtrühm: Kiire küsimus CONNER HARRIS: Muidugi. Sihtrühm: Nii et kui sa arvutamisel sel lihtsal korrelatsioonid teha sa eeldada, et seal on statistilise tähtsust korrelatsioon? CONNER HARRIS: Sa ei pea. Lm on põhimõtteliselt lihtsalt masin. See võtab kaks asja ja see sülitama koefitsiendid kõige sobivam liin. Samuti teatab standard vead need koefitsiendid. Ja ta ütleb teile, nagu on lõikaja statistiliselt oluline või erinevuse 0. Kas Tõus fit line statistiliselt nullist erinev, jne. Nii et see eeldab midagi, ma arvan Kõige parem vastus teie küsimusele. OKEI. Plotting-- nii peamine põhjus, miks sa peaksid kasuta R, nagu multilinear regressiooni. Põhimõtteliselt iga keel on mõned rajatis eest. Ja ausalt Ri süntaks regressiooni on natuke kauge. Aga joonestamist on koht, kus ta tegelikult paistab. Tööhobune funktsioon on maatükk ja see võtab kaks vektorit, x ja y. Ja siis ellipsid seisab väga Suur hulk vabatahtlik argumente, et kontrollida kõike alates pealkirjad värvid erinevate joonte või erinevates punktides, et krunt. Sul võib olla hajumine kruntide või line krundid. [Kuuldamatu] 2 vektorid ühepikkused. Võite eelnema seda kinnitada andmed raami oma script. Ja see laseb sul lihtsalt kasutada veerg päised asemel eraldi vektorid. Saate lisada kõige sobivamad jooned ja kohaliku regressiooni kõverad oma graafikut. Need käsud loetletud Siin ab line ja liinid, Vaikimisi neid saada kirjutatud pop up aknad sest see eeldab, et te kasutate R interaktiivselt. Kui sa ei ole võimalik kirjuta kaks faile on tõesti igas formaadis soovid. Sorry, mul kirjaviga ma lihtsalt aru. Kui soovite avada teise graafilise seadme saate seda funktsiooni nimetatakse PNG või JPEG või palju muid pildi formaate. Ja sa võid kirjutada graafikuid mis iganes faili nime täpsustada. Tühistamiseks, et sa pead use-- Ma ei kirjuta seda ka slide-- kuid seal on funktsioon nimega dev dot välja, et ei võta argumente. Siis on võimalus 3D joonestamist ja kontuuri joonistamiseks Kui sa tahad teha graafikud kahe sõltumatu muutuja. Ma ei hakka neid kohe. On ka mõned rajatised animatsioon Neil on tavaliselt säilitada kolmandate isikute poolt. Olen teinud animatsioone R graafikud, aga ma ei ole kasutanud nende kolmandale isikule raamatukogudes. Nii et ma ei saa tõesti tunnistust kuidas head nad on. Mida ma soovitan, kui soovite teha animatsioone kasutades R on sul võimalik kirjutada kõik raamide animatsioone ja siis saate kasutada kolmanda osapoole program-- Tüüpiline need on kutsutud FFmpeg või ImageMagick-- õmblema kõik oma kaadrit üheks animatsiooni. Nii aega demo. Nii et kui te kasutate mõnda Unix nagu süsteemi mis on Linux BSD kuid kes kasutab BSD. OS X avada terminal window ja kirjuta R käsureale. Kui teil on R stuudio või jms, mis samuti toimib. Windowsi kasutajad peaksid olema võimalik leida R oma menüü Start. Tuleb kannab mingit nagu R x64 3 punkti mis iganes. Avage et seal. Nüüd lubage mul avada terminal window. Olgu, otsing. Sihtrühm: Command-Space CONNER HARRIS: Command-Space, aitäh. Ma tavaliselt ei kasuta Mac. Terminal, näitavad uues aknas. Uus aken on seaded põhi-, R. Seega sa peaksid tervitus, midagi sellist. Nii ma kasutan R interaktiivselt. Võite ka kirjutada R skriptid muidugi. Põhimõtteliselt skripte käivitada täpselt sama moodi nagu kui sa olid istub arvuti kirjutades iga rida üks korraga. Nii alustame tehes vektor. Noolega C 1, 2. 1, 2, 4. OK, kindlasti. Ma ei saa teha fondi suurus suurem. Sihtrühm: Command-Plus CONNER HARRIS: Command-Plus. Command-Plus. Olgu, kuidas on? Hea? OKEI. Nii alustame kuulutab vektor nimekirja. Kas, nool, C 1,2,4. Me näeme. Ära muretse klambri seal. Sulgudes on nii et kui sa printida väga pikk massiivid, saame, kus sa oled. Üks näide oleks, kui ma lihtsalt tahan vahemikus 2-200. Kui ma trükitud väga pikk rida, sulgudes on lihtsalt nii et ma ei hoia jälgib, millised indeks Me oleme kui ma otsin läbi selle visuaalselt. Nii igatahes, meil on. Nii et ma enne ütlesin, et massiivid suhelda väga kenasti, näiteks unaarse tegevuse niimoodi. Mis sa arvad, et ma tulen saada, kui ma kirjutada pluss 1? Yep. Õigus, nüüd ma teen Selle erinevat valikut. Oletame, b c 20,40, 80. Nii et mida sa arvad see käsk teha? Lisa elemente. Ja nii põhimõtteliselt see, mida ta teeb. Nii et see on päris mugav. Nii et ma kuidas ma seda teen. c on, oletame, 6 korda 1 kuni 10. Niisiis, mida ma tahan näha sisaldas sa arvad? Nii et kõik telli kuus. Nüüd, mida sa arvad juhtub, kui ma seda teen? Ma teen seda natuke selgem, c, c. Mis juhtub, sa arvan, et kui ma seda teen? pluss c. [Kuuldamatu] Sihtrühm: kas viga või see lihtsalt lisab esimesed kolm elementi. CONNER HARRIS: Mitte päris. See on see, mida me saime. Mis juhtub on lühem massiiv, a, sai ringlema. Nii saime 124, 124, 124. Jah. Ja põhimõtteliselt saab vaadata Selline käitumine enne, pluss 1, nagu alamklass selline käitumine, kus lühim massiiv on lihtsalt number 1, mis on üks element massiivi. Ma lihtsalt öeldes vektor kõik aeg asemel massiiv, sest see on, mida r dokumentatsiooni tavaliselt teeb. See on juurdunud c harjumus. OK, ja nii nüüd on meil selle massiivi. Nii et meil on see massiiv, c. Saame kokkuvõte statistika c, kokkuvõte c. Ja see on tore. Nüüd teeme mõned maatriks asju. Oletame, et m on maatriks. Teeme seda kolm kolm ühe. Nii nrows võrdub 3 ja ncols võrdub 3. Ja andmed olgem do-- mis siis Mis sa arvad, et see saab seda teha? Õigus, see on järgmise üks. See on nrow ja ncolumn. Mida ma olen teinud on ma olen kuulutas kolm kolm maatriksit ja ma olen möödus üheksa elementi massiivi. Nii logaritmi kõik elemente ühe läbi üheksa. Ja kõik need väärtused täita üles array-- kahju? Sihtrühm: Need on aluseks 10 palke? CONNER HARRIS: No, samamoodi on naturaallogaritmi, et alus e. Jah, kui sa tahad alus 10 log, ma arvan, et sa tahaks olla logida iganes, jagatud log 10. Ja nii andmetel [kuuldamatu] lihtsalt täitub massiiv, nii ülevalt alla, siis vasakult paremale. Ja kui sa tahad teha mõned teised massiiv, oletame, et n on maatriks. Teeme, ma ei tea, 2-13. Või ma teen midagi huvitavat. Ma teen 2 kuni 4. nrow võrdub oletame, 3. NcoI võrdub 4. n. Nii meil see. Ja nüüd, kui me tahame korrutada neid, me teeks n protsenti korda protsenti, sest see on n. Ja meil on maatriks tooteid. Autor nad Muide, kas te näete, kuidas kui ma deklareeritud n on 2 kuni 4 vektor sai ringlema kuni see täis kõik n? Kui soovid võtta eigenvalue lagunemise see on midagi, mida me teha saame väga lihtsalt. Me ei saa teha eigen n. Ja nii see on meie esimene kohtumine nimekirja. Nii eigen n on loetelu koos kaks võtit. Väärtused, mis on selle massiivi siin. Ja vektorid, mis on käesoleva massiivi siin. Nii et kui sa tahad, et eraldada, ütleme, seda kolmandas veerus alates eigenvectors maatriks, sest eigenvectors on veeru vektorid. Nii saame teha vec eigen n dollari märk vektorid, koma 3, on [kuuldamatu]. Vec. Kas see, kui võiks eeldada. Siis ütle n korda protsenti korda vec. Nii et tulemus siin kindlasti välja näeb kui võtsime kolmanda eigenvalue siin mis vastab Kolmanda omavektori. See lihtsalt korrutada kõik Selle omavektori, osa tark, poolt eigenvalue. Ja see, mida me ootame, sest see, mida eigenvalues ​​on. Kas keegi siin ei võetud Lineaaralgebra? Paar inimest, OK. Lihtsalt lülita oma ajud välja natuke. Ja tõepoolest, kui me võtame eigen n dollari märk väärtused 3 korda vec, ka saada sama asi. See on vormindatud erinevalt järjest vektori asemel veeruvektoriga, kuid suur asi. Ja nii need on põhimõtteliselt kena asju, mida me saame teha põhiaineid näidanud nimekirjad. Ma peaks näitama kena asju toimib hästi. Nii saab say-- [kuuldamatu] funktsioon, nimetame see funkts vastu funktsiooni n n ruudus tegelikult, see ei ole tõesti parim. a, b, a ruudus pluss b. Nii et üks asi funktsioonid on jällegi nad ei pea selgesõnaline tagastamise avaldused. Nii saab lihtsalt-- Viimane väide hinnatud saab avalduse tagasi, või väärtuse tagasi. Nii et sel juhul me ainult hinnata üks väide, ruuduline plus b. See on vaikimisi tagastatav väärtus. See ei ole kunagi valus panna tagasi väärtusi selgesõnaliselt, eriti kui on tegemist suure funktsioon väga keeruline loogika voolata. Aga sa ei pea neid. Nüüd saame teha funkts 5, 1, ja see on põhimõtteliselt mida võid oodata. Midagi muud me teha saame, saame tegelikult teha funkts b võrdub 1, a on võrdne 5. Nii et kui me täpsustada number siin, mis argumendi, mille argument funktsioonis, saame flip ümber Nende väärtuste iganes me tahame. Sihtrühm: Kas põhjus kirjutada ta läbi b võrdub mitte ainult kasutades numbrid ning koma? CONNER HARRIS: Jah, tavaliselt seda teha, kui sul on funktsioonid palju argumente. See võib sageli olla nagu lipud, et soovite ainult soovite kasutada harvadel juhtudel. Ja sel moel saab ainult-- sa võib viidata konkreetsetele argumentidele mida soovite kasutada mitte-default väärtused, ja sa ei pea kirjutama välja hunnik lippe võrdub vale pärast neid. Või ma ei kirjuta seda jälle vaikeväärtus nagu b võrdub 2. Ja siis ma võiks teha f funkts, Ma teen 4, 1 seekord. Ja 17, mis on 4 ruuduline pluss 1, kui võiks eeldada. Aga ma võiks ka lihtsalt nimetame seda koos funkts 4, ja ma saan 18, sest Ma ei täpsusta b. Nii b saab vaikimisi väärtus 2. OK, nii et nüüd, kui sa oled järgmiste koos demo, kirjuta seda joont teie käsutuses kiire ja vaata, mis kerkib. Tegelikult ei saa seda teha. Tüüp seda. Sa peaksid midagi sellist. Nii mtcars on ehitatud andmeid määrata selle tutvustamise eesmärkidel, mis on with-- et tegemist in vaikimisi oma r jaotus. See on statistika koostamine 1974 küsimus Motor Trend ajakirja mitmete erinevate automudelite. Nii et miili galloni, cylinders-- Ma unustan, mida disp on-- hobujõudu. Tõenäoliselt. Kui sa just Google MT autod, siis üks esimesi tulemusi arvestatakse alates ametlik r dokumentatsioon ja see selgitab kõik need andmeväljad. Nii kaalu on-- massi on auto kaal tonnides. Q s on veerand miil aega. Nüüd saame teha mõned naljakad asjad umbes MT autod on andmed valdkonnas. Nii saame teha asju nagu rida nimesid, mt autod. Ja see on nimekiri kõigist rida sätestatud andmed, mis on nime autod. Me ei saa teha colnames, mt autod seda. Kui sa mt autod, sub-numbriline indeks, nagu 2. saame teise veergu välja Sellest mis oleks silindreid. Sihtrühm: Mida sa tegid? CONNER HARRIS: ma kirjutada MT autod, sulgudes e, mis andis mulle teise veerg välja mt autod. Või kui me tahame järjest, ma ei kirjuta mtcars komaga 2, näiteks. Muud ümmargune 2 koma niimoodi. Ja see läheb oma rida. See siin lihtsalt annab teile kolonn, kuid kolonni vektorina. Ma mõistsin nüüd unustasin näidata mõned lahedad asju vektorid mida saate teha koos indeksitega. Nii et lubage mul seda teha kohe. Nii teeme c gets-- panna Selle kohta pause-- 2 korda 1 kuni 10. Nii c on lihtsalt saab olema vektor 2 kuni 20. Saan elemente nagu see, c2. Ma ei liigu vektori niimoodi, C- lase mind kasutada teise nime kui c, nagu vec c. Põhimõtteliselt ma teen see, et sa ei saa segi vahel c kui vektori konstrueerimise funktsiooni, ja siis c muutuja nime. Vec sulgudes c 4, 5, 7. See saad mind neljas, viies, ja seitse elementi massiivi. Ma suudan vec, pane negatiivne indeks, nagu negatiivne 4. See saab mind seda neljas element eemaldada. Siis, kui ma tahtsin teha viiludeks, Ma suudan vec 2 kuni 6. 2 koolon 6 on lihtsalt üks vektorit, mis on 2, 3, 4, 5, 6. Sülitab välja, et. Nii igatahes, tagasi mt autod. Nii teeme mõned regressioon. Oletame, et mudel gets-- olgem lineaarselt regress-- ma ei tea. Esiteks teeme lisada mtcars, muidugi. Nii [kuuldamatu] mudel lm, olgem taanduda miili galloni kohta tilde kaal. Ja siis andmed raam on mtcars. Nii kokkuvõte mudel. OK, nii et see tundub natuke keeruline. Aga põhimõtteliselt, nähes, kui me proovida väljendada miili galloni lineaarse funktsiooni kaal siis saime selle liini siin mis intercepts kell 37,28. 37,28 oleks teoreetiline miili galloni auto, mis kaalub null. Ja siis iga täiendava tonni, sa koputama umbes viie miili galloni ära selle. Mõlemad koefitsientide te näete, standard viga seal. Ja nad on väga statistiliselt olulised. Nii saame olla väga kindel, et 1 e 10 negatiivsele 10. Nii 1 korda midagi negatiivset 10, et kui te teete raskemad auto, see on hullem miili galloni. Või saame testida mõne teise mudeli. Nagu asemel regresseeruvate seda kaalu, olgem regress seda samamoodi kaalu, sest äkki tegelik kaal läbisõit on kuidagi mitte lineaarne. See andis meile r ruudus 0,7528. Nii proovime seda. Seekord teeme täna erinevat muutujat, liiga. MODEL2. Nii kokkuvõte, MODEL2. Olgu, nii jälle, me sai meie kõige sobivam joon siin. Ja see AEG_ see ütleb, põhimõtteliselt, et iga kord, kui osakaalu suurendamist auto teguriga e te kaotate seda mitu miili galloni. Ja nii see aeg meie järelejäänud standard viga see-- et ei ole oluline, tõesti. Järelejäänud standard viga on põhimõtteliselt ainult standardviga et teil on jäänud pärast ära trendijoone. Ja meie r ruudus siin on 0,81, mis on natuke parem kui see, mida meil oli enne, 0.52. Ja nii nüüd lisame Mõiste sellele regressiooni. Nii saab taanduda miili galloni nii Logi kaalude ja teeme, q miili, veerand miil aega. OK, see peab olema the-- kõik korras, qsec. Qsec. Actually-- kahju, mida? Las ma nimetan seda midagi muud peale MODEL2. Las ma nimetan seda model3. Ja nii nüüd me saame teha kokkuvõtte model3. Ja nii uuesti, see on põhimõtteliselt Te võite oodata. Sul on positiivne lõikepunkti. Efektiivne suurendamine kaal on negatiivne. Ja tõhusa suurendades veerand miil aeg on positiivne, kuid siiski vähem kui kaal. Nüüd intuitiivselt, saate mõtestada Selle juurde mõelda sportautodele. Seal on väga kiire kiirendus, Väga lühikese veerand miil korda. Nad on ka kavatse kasutada rohkem gaasi, arvestades, et enam mõistlik autod lähevad on aeglasem kiirendus, suurem veerand miil korda ja kasutada vähem gaasi ,, nii suurem miili galloni. Hea. Ja nii nüüd on aeg krundi midagi sellist. Nii saab do-- nii paljad luud me saame teha plots-- sest ma olen lisatud andmete raami before-- saame just seda krunti, massi mpg. Tee seda natuke suurem. Seal me põhimõtteliselt on hajuvusdiagrammile, kuid punktid on omamoodi raske mõista seda. Ma ei mäleta, heast peast, mida süntaks on muutumas krundi. Nii et ma arvan, et see on hea aeg tuua, seal on väga kena sisseehitatud abi funktsioon, abi hinnapakkumisi funktsiooni nime. Me avab põhimõtteliselt midagi soovid. Ma arvan, et ma tegelikult teha tüübist võrdub p punktide krundid. Kas see muudaks midagi? Ja ei, mitte eriti. Hästi. Mingil põhjusel, kui ma tegin seda minu oma arvuti mõnda aega tagasi, kõik hajumine punktid olid palju selgem. Igatahes on hajumine liiki nähtav? Seal on üks seal. Paar seal, mõned seal. Võite omamoodi neid näha, eks? Nii et kui me tahame, et lisada kõige sobivam liin sellele krundile siin, mis on natuke paljaste bones-- lase mul teha seda veidi kenamaks. Main võrdub versus kaal. Miili galloni. Jällegi, näed, kuidas kasulik vabatahtlik argumendid on siin ka ei pea nägema asju Teatud et klaviatuuri argumendid Kui teil on krundid, sest Nende võtab palju argumente. Xlab võrdne kaal, kaalu, tonni. Hästi. OK, jah, see seade on on natuke tüütu. Aga näed omamoodi seal, seal on graafik pealkiri küljel. Üle siin there's-- põhjas siin on teljetähiste. Ma ei mäleta, heast peast mida käske ars-- Mis funktsioonid on suurendada suurus need sildid ja pealkirjad, kuid nad on olemas. Ja kui me tahame lisada kõige sobivam liin, me võiks teha midagi like-- ma on süntaksi kirjutatud siin. Seega pidage meeles, me lihtsalt lisada mudel oli mpg, kaal, mtcars. Ja nii kui ma tahtsin lisada kõige sobivam line, ma võiks teha, b line mudel. Ja buum on meil kõige sobivam liin. See on selline raske näha jälle. Ma olen üsna vabandan tehnoloogiliste raskustega. Aga see töötab põhimõtteliselt ülevalt vasakult alt paremale. Ja kui skaala oli suurem, siis võiks näha et lõikepunkt on, mida saate leida kokkuvõttest statistika kui sa kirjutad kokkuvõte mudel. OK, nii et ma loodan, et kõik läheb midagi aru sellest, mida R on, mida ta on hea. Sa võid teha palju kenamaks krundid kui selle ise korda, kui soovite. Nii et välismaa funktsiooni liides. See on midagi, mis ei ole tavaliselt kaetud sissejuhatav loengud või sissejuhatav midagi r. See ei ole tõenäoline, sa lähed vajavad. Kuid minu arvates oli see kasulik minu projektid varem. Ja pole hea Treening seda võrgus. Nii et ma olen lihtsalt kavatse kiirustada teid kõiki selle kaudu ja siis oled vaba lahkuda. Ja nii välis- funktsiooni liides, mida saate helistada läbi näha funktsioonid, mis R. Sisemiselt R on ehitatud C. R on aritmeetika on lihtsalt C on 64-bitine ujukoma aritmeetika, mis on Topelt [kuuldamatu]. Ja võiksite teha see kamp põhjustel. Ühe R tõlgendatakse, see on ei arvutata alla masinkoodi. Nii saab kirjutada oma sisemine silmuseid C ja siis saan ära kasutades R. Like see on natuke mugavam kui C. See on parem graphing rajatised ja tühi-tähi. Ja samas on võimalik saada tippkiirus välja silmuseid, mis on kui sa tõesti seda vajavad. Kasutab olemasolevaid C teeke, see on ka oluline. Kui teil on C raamatukogu nagu, Ma ei tea, Fourier ', või väga Archean Statistika korras kasutatud kõrge energia astrofüüsika või midagi, ma ei tea. Kõrge energia astrofüüsika ei ole isegi mõelda, ma arvan. Aga sa ei saa seda teha, selle asemel, kirjutada native R port neist. Ja the-- ja jälle, nagu siis, kui sa vaata enamik R vaikimisi raamatukogud, kohta sisemust, sisemust on kavatsete kasutada välisriikide funktsiooni liides väga laialdaselt. Nad on asjad Fourier muudab või arvuti korrelatsioon koefitsiendid kirjutatud C, ja nad lihtsalt R ümbrised ümber. Kasutajaliides on natuke raske. ma arvan tal oli raskusi on liialdatud on palju juhiseid leiad. Aga siiski see on natuke segane. Ja ma ei ole suutnud leida hea juhendaja seda, nii et see on just nüüd. Jällegi, kogu see segment on rohkem edasipidiseks. Ära muretse kopeerimine kõike ette kohe. Nii järgmisi juhiseid on Unix-laadsete süsteemide, Linux, BSD, OS X. Ma ei tea, kuidas see töötab Windows, aga palun lihtsalt ei tee oma Lõplik projekt Windows. Sa tõesti ei taha. Unix on palju parem komplekt kuni igapäevaseks programmeerimine. Niisiis, põhimõtteliselt välismaa funktsiooni liides. Kui soovite kirjutada C funktsiooni kasutamiseks R, ta peab võtma kõik argumente suunanäitajaks. Nii ühe väärtusi, seda tähendab see osutas väärtus. Suhe massiivid, seda on viit esimesele element, mille on see, mis massiivi nimed tegelikult tähendavad. Jällegi, see on midagi, siis peaks olema päris täiesti maha pärast p seatud viis. Array nimed on vaid viiteid esimesele element, Murdarv tüüp on topelt. Ja teie ülesanne on taastada tühine. Ainus võimalus, et ta saab tegelikult öelda R juhtunu on muutes mälu, R andis et see läbi välisriigi funktsiooni liides. Nii et ma olen kirjutanud selle Näiteks siin, see on funktsioon, mis arvutab kasutamiseks skalaarkorrutis Kahe vektori. Kasutada saab kaht argumenti, vec1, vec2, mis on vektorite endi ja siis n, mis on pikkusega, sest jällegi R on ehitatud [kuuldamatu] välja selgitada pikkus vektorid, kuid C ei ole. In C, vektorid on suvaline piiritletud patakas mälu. Nii, kuidas saad arvutada dot tooteid on lihtsalt märkides selle parameetri nulli ja siis korrata läbi 1 täht n, sest n on osuti pikkus, veel lisada midagi Selle välja parameeter. Ja see võib olla hea tava kui sa lähed tegema Selle kirjutada kaks eraldi C funktsioone. Üks neist has-- Üks neist lihtsalt võtab argumendid ja liigid et nad oleks harilikult C. Nii kulub massiivi argumente suunanäitajaks. Aga ühe väärtuse argumendi, nagu n, see lihtsalt võtab nii väärtuste koopia, ilma suunanäitajaks. Ja siis seda ei juhtu [Kuuldamatu] välja pointer. Ja siis võib olla erinev, põhimõtteliselt ümbris funktsioon, mis põhimõtteliselt käepidemed nõuetele välisriigi funktsiooni liides teile. See, kuidas te nimetate seda R on, kui teil on oma funktsioon kirjutatud C, kirjutad R cmd shlib, R käsk jagatud raamatukogu suva dot c, või mis iganes faili nimi on, ja OS laduma mitte R terminal. Ja see loob raamatukogu nimega foo dot nii. Ja siis saab paigutada see meie skripti või interaktiivselt käsuga dyn dot koormus. Siis on funktsioon R nimetatakse dot c. See võtab argumendid, mis on Esimene nime funktsiooni C et soovite helistada. Ja siis kõik parameetrid seda funktsiooni, nad peavad olema nõuetekohasust. Sa pead kasutama seda tüüpi sunni toimib täisarvuni double, kui märk ja loogiliseks. Ja siis, kui ta tagastab nimekirja, mis jällegi on lihtsalt sellega seotud massiivi parameeter nimed ja väärtused pärast funktsiooni käivitada. Nii et sel juhul, sest dot prod on argumendid vec1, vec2 ja int n, n välja. Et dot c meil dot prod, nimi funktsiooni me kutsudes, vec1, vec2 tüüp sundimaks. Pikkus kas vektori Ma valisin vec1 meelevaldselt. Oleks tugevam öelda s täisarv min pikkus vec1, pikkus vec2. Siis lihtsalt topelt null, sest me tõesti ei huvita, mida läheb välja parameeter, kuna me oleme milles see nulli niikuinii. Ja siis tulemusi ei kavatse olla big seotud rida põhimõtteliselt vec1 on ükskõik, vec2 on ükskõik. Aga me oleme huvitatud läbi, nii et me saame selle välja. See on jälle väga toy näiteks Välismaa funktsiooni liides. Aga kui sul on arvutada dot tooted massiivne vektorite silmad, või kui sa pead tegema midagi muud tsüklitesse ja sa ei taha toetuda R, mis ei ole natuke õhuliini ehitatud see, see võib olla kasulik. Jällegi, see ei ole tavaliselt sissejuhatav teema R. See ei ole väga hästi dokumenteeritud. Ma lihtsalt kaasa, sest Ma leidsin selle kasulik minevikus. Nii halbu tavasid. Mainisin, et seal on for loop funktsioon. Üldiselt sa ei tohiks see keelt, ei kasuta seda. Tuginedes kuidas R rakendab iteratsiooni sisemiselt, see võib olla aeglane. Nad lihtsalt otsida ka kole. R käepidemed vektorid väga kenasti, nii Sageli ei ole vaja seda kasutada. Siis saate tavaliselt asendada vektor sageli nende funktsioonidega nn kõrge Selleks funktsioone, kaart, vähendada Leia või Filter. Ma lihtsalt annan mõned näiteid, mida need teevad. Kaart on kõrgemat järku funktsioon, sest see võtab funktsiooni argumendina. Nii saab anda see funktsioon, võite anda talle massiiv, ja see kehtib funktsiooni iga element massiivi ja tagastab uue massiivi. Vähendage, põhimõtteliselt annad see massiiv, annad funktsioon, mis võtab kaks argumenti. See kehtib funktsiooni esimesena, Esimene argument mõned starter väärtus. Siis selle tulemuseks teine. Siis selle tulemusena kolmandas, Seejärel selle tulemusena neljandas. Ja siis tagasi, kui ta jõuab lõpuks. Nii näiteks, kui soovite arvutada summa kõikide elementide massiivi, kui võite helistada vähendada koos [kuuldamatu] vähendada lisaks funktsioon, nagu funkts a, b, tagasi pluss b. Ja siis hakkavad väärtus 0. Ja kõik need, leiad neid kirjeldatud R dokumentatsiooni, Igal õpiku funktsionaalne programmeerimine. Seal on ka selle klassi funktsioone nimetatakse kohaldatakse funktsioone, mis ma don't-- nad natuke raske seletada, aga kui sa vaatad [kuuldamatu] broneeritud, et ma viidatud alguses, selgitab ta neid päris hästi Tema lisas teadus programmeerimine. Loe tavasid, Lisandusid vektoreid. Jah? Ma arvan, et ma peaks parandama. Selle esimene rida, vec nool, et nool ei peaks seal olema. Võite määrata vektor, jälle, mida teha selle pikkus pluss 1 ja määrates mingi väärtus sellele. See pikendab vektor, või siis saab teha vec võrdsete c, vec newvalue. Jällegi, kui te kasutate C üks argument vektor, tulemuseks hierarhia muutub lapik. Nii saate lihtsalt saada vektori mis on pikendada 1. Ära tee seda. Põhjus, miks sa ei tohiks seda teha on see. Kui eraldada vektor, siis annab see teatud patakas mälu. Kui teil suurendada, et vektori suurus, see on ümber jaotada vektor kusagil mujal. Ja nii ümberjaotamine on üsna kallis. Ma ei hakka üksikasju, kuidas mälu jaoturid rakendamine operatsioonisüsteemi tasandil, kuid see võtab palju aega leida uus patakas mälu. Ja ka siis, kui sa oled ümberjaotamiseks palju, palju järk-järgult suurema tükkideks, siis lõpuks midagi nimetatakse mälu killustatus, kus mälu on jaotatud osadeks vähe plokid mällu jaoturid seisukohast. Ja see muutub raskemaks ja raskemaks leida mälu muid asju. Nii et selle asemel, kui teil on vaja teha, kui peate kasvada vektor ühest otsast järgmisele asemel lisades sellele pidevalt, siis tuleb eelnevalt eraldab. Vec nool, vektor pikkus võrdub 1000, või mis iganes. Ja siis saab lihtsalt määrata vektori väärtuste ühe aeg pärast olete suunata see kord. Jooksin seda jällegi minu suveks tööd kui ma kirjutasin NRA erinevus Võrrandilahendaja. Ei sümboolne numbritega. Idee on selles, et kui sul on üks väärtus oma lahendus, te kasutate, et arvutada järgmise üks. Nii et minu loomulik naiivne kalle oli öelda OK, nii et ma hakkan vektori see on oluline väärtus. Arvuta sellest järgmine väärtus mis läheb peale minu lahendus vektor, ja lisab, et. Loo midagi muud, lisab nimetatud. See läks väga aeglaselt. Ja kui ma mõistsin seda ja ma muutsin süsteemi alates lisades, et see vektor nagu 10000 100000 korda, lihtsalt eelnevalt eraldada vektor ja lihtsalt töötab nii. Ma sain üle 1000 korda kiirendada. Nii et see on väga levinud lõksu R programmeerimine. Kui teil on vaja luua vektor jaokaupa, pre-eraldab. Teine levinud reisi up-- see on minu viimane slide, ei worry-- on vigade käsitlemist. R, ausalt öeldes, ei ole tõesti väga hästi. Seal on palju probleeme, mis võivad ette tulema. Näiteks, kui sa saad hulgaliselt või vektor välja funktsiooni et sa ootasid ühe väärtus tulema, või vastupidi, ja te kaotate seda arvesse funktsioon, mis sa kirjutasid ootab üksik väärtus, mis võib olla probleemiks. Teatud funktsioonid tagasi null nagu seda teevad, ütleme, lugemine olematu võti nimekirja. Aga null ei ole nagu C kus, kui sa püüad lugeda vanast pointer, [kuuldamatu] to nullviida, see lihtsalt SEG vead ja kui sa oled oma siluri see ütleb teile täpselt, kus sa oled. Selle asemel, null on do-- funktsioonid teeme ettearvamatu asju kui nad käega null. Nagu kui sa kätte max null, see annab sulle negatiivne lõpmatus. Ja nii, jah. Ja nii see juhtus mulle kord, kui ma pidin muuta kamp väljad minu nimekirja struktuur kord muutmata neid mujal kui ma lugesin neid. Ja siis ma sain igasuguseid juhuslikke lõpmatus tulemusi koristuse üles ja ma ei tea, kust nad tulid. Ja kahjuks pole no tõeline R range režiim kus saab öelda, et kui midagi tundub, et see võiks olla viga, lihtsalt peatuda, et ma saaks olla distsiplineeritud ja kinnitage seda. Siiski on midagi nimetatakse stop kui mitte. See võrdub C-dest assert, kui olete rääkinud sellest. Ma ei usu, C väita on loengu teema kuid oma osa liider oleks läinud üle. Ja lõpetage kui mitte põhimõtteliselt võtab tahes predikaat, nii et kõik kinnitus, et võib olla tõene või väär. Ja kui see on vale, see peatub oma programmi. See ütleb teile täpselt, mida liinist olid ja millises seisus ei suutnud. Ja see väga kasulik, näiteks meelerahu kontrolli, funktsioon sisendeid. Nii et kui teil on funktsioon ja ootate, ütleme, kui sa peaksid mulle kuupäev, ma tahan kuupäevad on lihtsalt vektor pikkusega 1 ja kuskil 1 ja 31. Ja kui ei, ma tean Midagi on valesti läinud. Ja ma valin peatuda enne seda on juhuslik koputama toimet koodi et see on raskem jälgida läbi. Nii et üks võimalik kasutada stop kui mitte. Igatahes OK. Nii et lõpus. Tänan sind nii palju tulemas. Olen Koht amatöör selles. Nii kahju, kui sa oled igav või segaduses või mida iganes. Ma olen õnnelik, et võtta küsimused e-posti teel kell connorharris@college.harvard.edu. See kehtib ka kõigile vaadates seda elada või hiljem. Samuti, kuigi ma ei ole TF, ma olen ka väga valmis olla mitteametlik nõustaja, kes on kasutades R lõpliku projektiga. Kui soovite, et siis lihtsalt rääkida oma TF ja siis kirjutage mulle email, nii Ma tean, mida te töötate ja et ma saaks luua koosolek korda kui soovid. Nii jälle, tänan teid väga. Loodan, et teile meeldis see. Sihtrühm: [kuuldamatu]. CONNER HARRIS: Muidugi. Sihtrühm: Milline projekti oleks CS õpilane kasutada R? CONNER HARRIS: Nii et kui sa ei tee midagi, mis on puhtalt andmete kaevandamine, Näiteks, ja seal On palju asju, sa võiksid teha, et andmed kaevandamise ja masin õppe. Võiksid kasutada R komponent midagi. Ma tõin välja, mis algselt on näiteks ja kui olete kirjalikult kodulehel ja soovid käivitada automatiseeritud statistilise analüüsi server palke teatud ajal iga päev, mis võiks olla midagi, mis on väga lihtne teha vaid lühikese R script, et saate ajakava joosta igal õhtul, näiteks. Ja ma olen kindel, kui seal on mingil põhjusel soovite tahan statistika või graafikute võimeid ja on selle aja jooksul automaatselt asemel võttes suhelda asju Excel, Näiteks, see on midagi, võiksite kasutada R. Nii veel küsimusi, enne kui ma lahkuda? No? Olgu, hästi, jälle, tänan Teid väga varsti.