CONNOR HARRIS: Still I ajatella jännittäviä video tuotettu ammatillinen konsultointi joka käyttää R paljon työssään. KERTOJA: mitä takana tilastot, analytiikan, ja visualisointeja että nykypäivän kirkkain tiedot tutkijat ja yritysjohtajat luottaa tehdä voimakas päätöksiä? Et voi aina nähdä sen. Mutta se on olemassa. Sitä kutsutaan R, avoimen lähdekoodin r-- tilastollinen ohjelmointikieli että tiedot asiantuntijat maailmassa liikakäyttöön kaikesta alkaen kartoitus laajoja sosiaalisia ja markkinointi suuntauksia verkossa kehittämään taloudellisia ja ilmasto malleja, jotka auttavat ajaa taloutemme ja yhteisöjä. Mutta mitä on R ja mistä R aloittaa? No alunperin, R aloitti täällä kaksi professoria joka halusi paremman tilastollisen alustan opiskelijoille. Joten he loivat yksi mallinnettu jälkeen tilastokieltä S. Ne, yhdessä monien muiden, pidetään työtä ja käyttää R, työkalujen luominen R ja löytää uusia sovelluksia R päivittäin. Tämän ansiosta on maailmanlaajuinen yhteisö vaivaa, R jatkoi kasvuaan tuhansia käyttäjien luoman kirjastot rakennettu parantaa R-laitteiden toiminnot ja väkijoukon alkuperää laadunvalvonta ja tukea eniten tunnustettu teollisuuden johtajia kaikilla aloilla että käyttää R. joka on suuri, koska R on paras, mitä se tekee. Orastava asiantuntijat nopeasti ja helposti tulkita, vuorovaikutuksessa, ja visualisoida tietoja, jotka osoittavat niiden nopeasti kasvavaan R käyttäjiä ympäri maailman ja miten open source R jatkuu muoto tulevaisuus tilastotietojen analysointi ja tietojen tiedettä. CONNOR HARRIS: OK, suuri. Joten oma esittely on hieman enemmän selvin päin. Se ei liity niin paljon jännittävä taustamusiikkia. Mutta kuten näitte video, R on eräänlainen yleiskäyttöisen ohjelmointikielellä. Mutta se on luotu enimmäkseen tilastollisiin työtä. Joten se on suunniteltu tilastoja, tietojen analysointia, tiedon louhintaan. Ja jotta voit nähdä tämän paljon suunnitteluun liittyviä valintoja että päättäjät R tehty. Se on suunniteltu pitkälti, ihmisiä, jotka eivät ole asiantuntijoiden ohjelmointi, joka ovat vain poimien ohjelmointi sivussa, jotta he voivat tehdä työnsä yhteiskuntatieteissä tai tilastoissa tai mitä tahansa. Se on paljon hyvin merkittäviä eroja C. Mutta syntaksi ja paradigmat että se käyttää ovat suurin piirtein samat. Ja sinun pitäisi tuntea aika paljon kotona suoralta kädeltä. Se on välttämätöntä kieli. Älä murehdi liikaa, että jos et tiedä aikavälillä. Mutta on ero välillä välttämätöntä, deklaratiivisen, ja toimiva. Välttämätöntä vain tarkoittaa teet lausunnot ovat pohjimmiltaan komentoja. Ja sitten tulkki tai tietokone seuraa niitä yksitellen. Se on heikosti kirjoitettu, on ei tyyppi ilmoitusten R. Ja sitten linjat erityyppisten ovat hieman löysä kuin ne ovat C, esimerkiksi. Ja kuten sanoin olemassa hyvin laajat tilat piirtämistä, tilastollisia analyysi, tiedon louhintaan. Nämä ovat molemmat rakennettu kieli ja, kuten video sanoi, tuhansia kolmannen osapuolen kirjastoja, jotka voit ladata ja käyttää maksutta hyvin löysä lupaehtoja. Niin yleensä, Suosittelen että katsotte näitä kaksi kirjaa jos aiot työskennellä R. One niistä on virallinen R aloittelijan opas. Se ylläpitää ydin kehittäjät R. Voit ladata sen uudelleen, vapaa lataa ja laillisesti siihen linkin siellä. Kaikki nämä diat eivät mene ylös internetissä, CS50 verkkosivuilla Tämän jälkeen on tehty. Joten ei tarvitse kopioida asioita alas kuumeisesti. Toinen on oppikirja Cosma Shalizi, joka on tilastojen professori Carnegie Mellon, nimeltään Advanced Data Analyysi Alkeis näkökulmasta. Tämä ei ole ensisijaisesti R kirja. Se on tilastojen kirjan ja se on tietojen analysointi kirja. Mutta se on hyvin saatavilla ihmisille, jotka on hiukkasen tilastojen tietoa. En ole koskaan tehnyt muodollisen kurssi. Tiedän vain palasia eri Allied aiheista että olen ottanut kursseja. Ja pystyin ymmärtämään se aivan hyvin. Kaikki luvut R. Ne on valmistettu T ja niillä on myös koodi listauksia allekkain luku kertoa miten teet kukin hahmo R-koodia. Ja se on erittäin hyödyllinen, jos yrität jäljitellä jotkut hahmo näet kirjan. Ja uudelleen lataa stat.cmu.edu/cshalizi/ Anteeksi, että olisi slash tilde cshalizi. Teen varmasti oikein, että kun virallinen diat nousevat. / ADAfaEPoV joka on vain kirjainlyhenne kirjan nimi. Joten yleinen caveats-- R on paljon ominaisuuksia. Olen vain menossa pystyä kattamaan pinta paljon asioita. Myös ensimmäisen osan Seminaarin tulee olemaan jotain tietojen kaatopaikka. Olen melko pahoillani siitä. Periaatteessa, aion tutustuttaa sinut paljon asioita suoralta kädeltä, menossa niin nopeasti kuin mahdollista. Ja sitten pääsemme hauska osa, joka on demo, jossa voin näyttää sinulle kaiken että olemme puhuneet ruudulla. Ja voit pelata noin itse. Joten siellä tulee olemaan paljon teknisiä juttuja sinkoutua täällä. Älä ole huolissasi kopiointi kaiken, alas. Koska, voit saada kaikki tavaraa CS50 sivuilla myöhemmin. Ja B, se ei ole todella niin tärkeää muistaa tämä päässä dioja. Se on enemmän tärkeää, että saat jotkut intuitiivinen laitoksen kanssa ja joka tulee vain leikkimisestä. Joten miksi käyttää R? Periaatteessa, jos sinulla on projekti, joka liittyy kaivos suuria tietomääriä, tiedot visualisointi, te pitäisi käyttää R. Jos olet tekee monimutkainen tilastolliset analyysit, että olisi vaikea Excel, esimerkiksi, se olisi myös good-- myös jos teet tilastollisia analyysi, joka on automatisoitu. Sanotaan olet ylläpitää verkkosivuilla. Ja haluat lukea palvelimen loki joka päivä ja koota joitakin lista, kuten alkuun maissa, käyttäjät tulevat, jotkut yhteenveto tilastoja siitä, kuinka kauan he viettävät sivustossasi tai mitä tahansa. Ja haluat käyttää tätä joka päivä. Nyt jos teet tämän Excelissä, sinun täytyy mennä oman palvelimen loki, tuoda sen osaksi Excel-tietoja taulukkolaskenta, suorittaa kaikki analyysin käsin. R, voit vain kirjoittaa yhden käsikirjoituksen. Aikataulu se ajaa joka päivä käyttöjärjestelmästä. Ja sitten joka ilta klo 02:00, tai kun ajoittaa sen, se näyttää läpi Internet-liikenne kyseiselle päivälle. Ja sitten seuraavana päivänä, luultavasti on tämä kiiltävä, uusi raportti tai mitä tahansa kaikkien tiedot pyysit. Joten periaatteessa R on Cisco ohjelmointi vs. Cisco analyysi. Alustava on tehty. Mennään osaksi todellisia asioita. Joten on kolme todellisia nimikkeet kielellä. On numeerinen tyyppi. On tavallaan ero kokonaislukuja ja kelluvat pistettä, mutta ei oikeastaan. On merkki tyyppi, joka on jousille. Ja siellä on looginen tyyppi, joka on Booleans. Ja voit muuntaa tyypit käyttää näitä toimintoja numeerinen, merkki, kuin looginen. Jos soitat, esimerkiksi, kuin numeerinen merkkijono, se yrittää lukea, että merkkijono numerona, samalla tavalla että A2I ja scanf tehdä, ja C. Jos soitat kuin numeerinen totta vai tarua se muuntaa 1 tai 0. Jos soitat kuin merkki mitään se tulee muuntaa sen osaksi string edustus. Ja sitten on vektoreita ja matriiseja. Joten vektorit ovat pohjimmiltaan 1 ulotteinen taulukot. Ne ovat mitä me kutsumme taulukot C. Matriisit, 2 ulotteinen taulukot. Ja sitten korkeampi ulotteinen taulukot voit on 3, 4, 5 mitat tai mitä tahansa numeeristen arvojen, merkkijonojen, ja loogiset arvot. Sinulla on myös luettelot, jotka ovat eräänlainen assosiatiivisia array. Saan tuohon vähän. Joten yksi tärkeä asia että matkoja ihmiset ylös R on se, että ei ole olemassa todellinen, puhdas Atomic tyyppejä. Ei ole todellista eroa numero, kuten numeerinen arvo, ja luettelo numeerisia arvoja. Numeerisia arvoja ovat todella sama kuin vektorit, joiden pituus on 1. Ja tämä on useita merkittäviä vaikutuksia. Yksi, se tarkoittaa, että voit tehdä asioita hyvin helposti, joihin kuten lisäämällä numeron vektori. R pohjimmiltaan kuva mitä tarkoitat. Ja saan sen, että toinen. Se tarkoittaa myös sitä, että ei ole mitään tapaa tyyppi checker-- siinä määrin, että jotain olemassa R-- kertoa kun olet kulunut yksi arvo kun se odottaa array tai päinvastoin. Ja jotka voivat aiheuttaa outoa ongelmat, joita Törmäsin kun Käytin R aikana minun kesätyötä. Ja ei ole sekatyyppinen taulukot. Joten et voi olla array olivat ensimmäinen elementtejä on, en tiedä, merkkijono "John" ja Toinen tekijä on numero 42. Jos yrität tehdä sitä, niin saat kaikki vain muunnetaan merkkijono. Joten meillä on merkkijono John, merkkijono 42. Niin epätavallinen syntaktinen features-- eniten R syntaksi on hyvin samanlainen C. On olemassa muutamia tärkeitä eroja. Kirjoittaminen on hyvin heikko. Niin ei ole muuttuvia julistuksia. Tehtävä käyttää outo virhe operaattori alle väliviivaa. Kommentit ovat hash merkki. Oletan nyt päivää kutsumme sitä hashtag vaikka se ei oikeastaan ​​accurate-- ei kaksoiskauttaviivalla. Modulaarinen tähteet ovat kanssa %% merkkejä. Kokonaislukujaolla on kanssa% /% mikä on erittäin vaikea lukea, kun se on ennustetaan ruudulle. Voit saada valikoimia kokonaislukuja kanssa paksusuolen. Joten 2,5 antaa sinulle vektori kaikki numerot 2: sta 5. Taulukot yksi-indeksoitu, joka ruuvit paljon ihmisiä up jos he useammasta tyypillinen ohjelmointikieliä, kuten C, jossa suurin asiat ovat nolla-indeksoitu. Tämäkin on jossa R perintöä kuten kieli, kuten ei ammattilaiset tulee. Jos olet sosiologi tai taloustieteilijä tai jotain ja yrität käyttää R pohjimmiltaan lisänä sinun tärkeämpää ammatillisen työn, aiot löytää yksi-indeksointi hieman luonnollinen. Koska olet alkaa laskea 1 arjessa, ei 0. For-silmukoita, tämä on samanlainen kuin foreach rakentaa PHP, joka pääset oppia in-- melko pian. Joka on arvon vektori ja voit tehdä asioita arvoa. Yleisö: Se on keksiä luento. CONNOR HARRIS: Voi, se on keksiä luento, erinomainen. Yleisö: Toimeksianto, on se pitäisi kohta oikealta vasemmalle? CONNOR HARRIS: Oikealta vasemmalle, kyllä. Voit ajatella sitä arvoa oikea työnsi muuttuja vasemmalla. Yleisö: OK. CONNOR HARRIS: Ja lopuksi toiminto syntaksi on vähän outo. Sinulla on funktion nimi foo, osoitetaan Tämän avainsanan toiminto, jota seuraa kaikki argumentit ja sitten elin toiminnon jälkeen. Jälleen nämä asiat voivat tuntua hieman oudolta. He tulee toinen luonto jälkeen työskentelet kieli hieman. Niin vektorit, tapa voit rakentaa vektori on sinun tyyppi C, joka on avainsana, sitten kaikki numerot haluat tai jouset tai mitä tahansa. Asianosaisten myös vektoreita. Mutta tuloksena joukko saa litistetty. Joten ei voi olla taulukot missä jotkut elementit ovat yhden numeroita ja jotkut elementit ovat taulukot itse. Joten jos yrität rakentaa array olivat ensimmäinen elementti on 4 ja toinen elementti on joukko 3,5 sinun vain saada kolme elementtiä array, 4,3,5. He eivät voi olla näiden yhdistelmiä. Jos yrität lukea tai kirjoittaa ulkopuolella rajojen vektori saat tätä arvoa kutsutaan NA joka tarkoittaa puuttuva arvo. Ja tämä on tarkoitettu kuten tilastotieteilijöiden jotka käsittelet puutteellisia aineistoja. Jos haet toiminto, joka on tarkoitus Vain yhden numeron jono niin mitä saat on, toiminto kartta yli jono. Joten jos toiminto sanokaamme vie numero ja palaa sen neliö. Haet että array 2,3,5 Mitä saat on joukko 4,9,25. Ja se on erittäin hyödyllinen koska se tarkoittaa, ei tarvitse kirjoittaa silmukoita tehdä hyvin yksinkertaisia ​​asioita, kuten soveltamalla toiminto kaikille jäsenille tietokokonaisuutta. Jotka, jos olet työskennellyt suuri aineistoja, sinun täytyy tehdä paljon. Binary toiminnot ovat Applied tuloa merkintä. Haen tuohon. Voit käyttää niitä paneelit tai vektoreita hakasulkeilla. Joten vektori nimi hakasulkeisiin 1 antaa sinulle ensimmäinen elementti. Vector nimi hakasulkeiden 2 antaa sinulle toinen elementti. Voit siirtää vektorin indeksien ja voit saada takaisin ulos pohjimmiltaan osa tekijä. Joten voit tehdä vektori nimi suluissa C, 2,4 ja saat pois vektori sisälsi toisen ja neljännen taulukon alkiot. Ja jos haluat vain nopea yhteenveto tilastotieto vektorin kuten neljännespisteiden alue, mediaani, maksimi, mitä tahansa, Voit laittaa yhteenveto vektori nimi ja saada että ulos. Se ei oikeastaan ​​hyödyllinen ohjelmointi mutta jos pelaat ympäri aineistoja, se on kätevä. Matrices-- pohjimmiltaan korkeamman ulottuvuuden taulukoita. Heillä on tämä erityinen merkintätapa syntaksin. Matriisin array, joka saa täytetty in-- pahoillani, matriisin tietoja, rivien, sarakkeiden määrän. Kun sinulla on joitakin tietoja, se täyttää array pohjimmiltaan menossa ylhäältä alas ensimmäinen. Sitten vasemmalta oikealle. Niin, niin. Ja R on rakennettu matriisi kertolaskua, spektrin hajoaminen, diagonalisointi, paljon asioita. Jos haluat korkeamman ulottuvuuden paneelit, niin 3, 4, 5, tai mitä mitat voit tehdä sen. Syntaksi on joukko hämärä vastaa c, sitten luettelon mitat. Joten jos haluat 4 ulotteinen array joiden mitat 4, 7, 8, 9, array, dim vastaa C (4,7,8,9). Voit käyttää yhden arvot suluissa ensimmäinen merkintä pilkku toinen merkintä. Voit saada koko viipaleita rivien tai sarakkeiden. Tämän epätäydellinen syntaksi on vain rivi numero pilkku tai pilkku sarake määrä. Joten luettelot ovat eräänlainen liittyvän array. Heillä on oma syntaksin täällä. Jälleen ei kuumeisesti kopioi kaikki tämän alas. Tämä on vain niin, että ihmiset läpi diat myöhemmin on tämä kaikki kiva viite. Ja tämä tulee hyvin luonnollinen kerran Olen itse kävelee demoja. Joten luetellaan periaatteessa liittyy taulukot. Voit käyttää arvoja lista nimeä, dollarin merkki, avain. Joten jos lista on foo, voit käyttää sitä niin. Voit saada koko avainarvoparin johtamalla aukiolla kiinnike indeksi. Jos olet lukea olematon näppäintä, saat null. Se ei virhe. Asia on, R tekevät niinkuin paljon null kuin se voi. Ja tämä voi tarkoittaa, että jos olet ei odota saada null ulos Joidenkin lista lukea, saat joitakin arvaamaton virheet alempana linja. Tämä tapahtui minulle kesätyö kun käytin R jossa vaihdoin miten tietty Luettelo on määritelty yhdessä paikalla mutta ei muuttanut myöhemmin koodi, joka luetaan arvoja siitä. Ja niin mitä tapahtui oli olin lukeminen tyhjäarvoja pois tästä luettelosta, kulkee ne toiminnot, ja on hyvin sekava kun sain kaikenlaisia satunnainen Äärettömyydet pulppuaa tässä toiminnossa. Koska jos käytät tiettyjä enintään tai vähintään toimintoja null, saat ääretön arvot pois. Datakehykset, he alaluokka luettelon. Jokainen arvo on vektori samanpituisia. Ja niitä käytetään esittämiseen, pohjimmiltaan, datataulukot. On tämä alustus syntaksi. Tämä on kaikki, jälleen, on paljon selkeämpi kun saat demon. Ja kiva juttu datakehykset on, että voi antaa nimiä kaikki sarakkeet ja nimet kaikki rivit. Ja niin että tekee päästä niitä hieman ystävällisempi. Myös tämä on, miten useimmat toimintoja, lukea tietoja Excel tai tekstitiedostoja, esimerkiksi, lukee tietonsa. He laittaa sitä jonkinlainen datakehyksen. Joten functions-- toiminnot syntaksi on vähän outo. Taas se on funktion nimi, luovuttaa, avainsana toiminto ja sitten argumenttiluettelossa. Joten joitakin mukavia asioita miten toiminnot toimivat täällä. Yhden, voit itse määrittää oletusarvot tiettyjä väitteitä. Joten voit sanoa R1 equals-- voit sanoa foo on toiminto, jossa R1 vastaa jotain oletuksena jos käyttäjä määrittää argumentteja. Muuten, se on mitä hän laittaa. Ja tämä on erittäin kätevä koska paljon meidän toimintoja on usein kymmeniä tai satoja argumentteja. Esimerkiksi ne, piirtämistä kaavioita tai piirtämällä sirontakuvaajiin on väitteitä, jotka ohjaavat kaiken otsikko ja akselin tarrat väri regressiolinjoja. Joten jos et halua saada ihmiset täsmentää jokainen näistä satoja perustelut valvoa jokaista osa juoni tai regressio tai mitä tahansa, se kiva olla nämä oletusarvot. Ja sitten voit todella kirjoittaa niin näit takaisin tänne. Tai löytää parempaa esimerkkiä. Kun soitat toimintoja voit itse soittaa heille käyttämällä argumenttinimiä. Joten tässä on esimerkki matriisi rakentaja. Se kestää kolme väitettä. Yleensä sinulla on tietoja, joka on vektori. Sinulla on N rivi, joka on määrä rivejä. Sinulla N cols-- sarakkeita. Asia on, jos kirjoitat N rivi vastaa riippumatta ja N col vastaa riippumatta kun soitat tätä toimintoa, voit itse kääntää niitä. Niin voit laittaa N COL ensimmäinen ja N rivi toinen ja se tekee mitään eroa. Niin, että on mukava pikku ominaisuus. Oliko tuonti ja vienti. Tämä voidaan tehdä, periaatteessa. Tiloja on myös kirjoittaa ulos mielivaltainen R vastustaa binaaritiedoston ja sitten lukea ne takaisin myöhemmin. Joka on kätevä, jos teet iso interaktiivinen istunto R ja sinun pitää tallentaa asiat hyvin nopeasti. Oletuksena R on työhakemiston että tiedostot saavat kirjoitettu ulos ja luetaan takaisin sisään. Voit nähdä, että getwg, vaihda se setdw. Mitään erityisen mielenkiintoinen täällä Joten nyt todellinen tilastot stuff-- Multilineaarinen regressio. Joten tavallista syntaksin on vähän monimutkainen. Malli on iso esine periaatteessa. Se saa määrätty lm, joka on funktiokutsu. Ensimmäinen elementti, y tilde x1 plus riippumatta. Minun syntaksin tässä on vähän sekava. Olen melko pahoillani, tämä on tavallinen että tietokone oppikirjoissa tehdä tämän. Mutta se on vähän outo. Joten periaatteessa, se on lm suluissa, ensimmäinen erä on variable-- pahoillani, riippuvainen muuttuja tilde x1 plus x2 plus kuitenkin monien riippumattomien muuttujia sinulla on. Ja sitten nämä voivat olla joko vektorit, kaikki samanpituisia. Tai ne voivat olla pylväs otsikot datakehyksessä että juuri määrittämäsi Toinen väite datakehyksen. Voit myös määrittää monimutkaisempi kaava joten sinun ei tarvitse lineaarisesti taantua yksi riippuva muuttuja, tai yhden vektorin on ennestään vektori. Voit tehdä, esimerkiksi, vektorikomponentti y potenssiin plus 1 ja taantua että vastaan log joidenkin muiden vektorin. Voit tulostaa yhteenvetoja malli tämä komento nimeltään summary-- vain yhteenveto parens malli. Taas jotain muuta minun pitäisi selventää. Jotain muuta, joka saa korjataan kun diat nousevat internetissä. Jos haluat vain laskea yksinkertainen korrelaatio voit käyttää korrelaatiovektorin 1 vektori 2 toiminto ydin. Menetelmä on oletuksena Pearson korrelaatioita. Ne ovat standardin niistä voi tehdä. Siellä myös Spearman ja Kendell korrelaatiot jotka ovat joitakin erilaisia paremmuusjärjestykseen korrelaatio. No ne eivät laske tuotetta hetkiä välillä vektorien itse, mutta vektorin sijoitus tilauksia. Selitän myöhemmin. Yleisö: Nopea kysymys CONNER HARRIS: Toki. Yleisö: Eli kun olet laskettaessa siitä yksinkertaisesta korrelaatiot do oletat, että on olemassa tilastollinen merkitys korrelaatio? CONNER HARRIS: Sinun ei tarvitse. Lm on pohjimmiltaan vain kone. Se vie kaksi asiaa ja se sylkemään kertoimet parhaiten sopiva viiva. Se myös raportoi standardi virheet nämä kertoimet. Ja se kertoo, kuten on siepata tilastollisesti merkitsevä tai ero 0. Onko kaltevuus paras sopiva viiva tilastollisesti eri nollasta, jne. Joten se olettaa mitään, mielestäni on paras vastaus kysymykseesi. OK. Plotting-- joten tärkein syy sinun pitäisi Käytä R, kuten Multilineaarinen regressio. Periaatteessa jokainen kieli on joitakin järjestely että. Ja rehellisesti R: n syntaksia regressio on vähän mystistä. Mutta kuvaaja on, jos se todella loistaa. Työjuhta toiminto on juoni ja se kestää kaksi vektoria, x ja y. Ja sitten ellipsin edustaa hyvin suuri joukko valinnaisia ​​väitteet, valvoa kaikkea otsikot värit eri linjojen tai eri kohtiin, tyypin juoni. Voit olla hajottaa tontteja tai viivadiagrammeissa. [Äänetön] 2 vektorit samanpituisia. Voit ennen tätä liittää datakehyksen käsikirjoitus. Ja tämä avulla voit vain käyttää sarake otsikot sijaan eri vektoriin. Voit lisätä parhainta sovitusta edustavat suorat ja paikalliset regressio käyrät teidän kuvaaja. Nämä komennot on lueteltu täällä, AB-linjan ja linjat, oletuksena nämä saada kirjoitetaan ponnahdusikkunoista koska se olettaa, että käytät R vuorovaikutteisesti. Jos et ole voit kirjoittaa kaksi tiedostot ovat todella tahansa muodossa haluat. Anteeksi, minulla on kirjoitusvirhe Tajusin juuri. Jos haluat avata toinen graafinen laite voit käyttää tätä toimintoa kutsutaan PNG tai JPEG tai paljon muita kuvaformaatteja. Ja voit kirjoittaa kaavioiden mitä tiedostonimi määrittää. Peruuttaa, että sinun täytyy use-- En kirjoittanut tätä slide-- mutta siellä on toiminto nimeltään dev piste pois, että ei ota argumentteja. Sitten on tilat 3D salavehkeily ja ääriviivat piirtämistä jos haluat tehdä kaavioita kaksi riippumatonta muuttujaa. En päästä näihin juuri nyt. On myös joitakin tilat animaatio ne ovat yleensä kolmansien osapuolten ylläpitämiä. Olen tehnyt animaatioita R kuvaajat, mutta en ole käyttänyt näitä kolmannen osapuolen kirjastot. Joten en voi oikeastaan ​​todistaa miten hyviä he ovat. Mitä Suosittelen, jos haluat tehdä animaatioita käyttäen R on voit kirjoittaa pois kaikki kehykset animaatiot ja voit käyttää kolmannen osapuolen program-- tyypillisistä kutsutaan FFmpeg tai ImageMagick-- pistellä kaikki kehyksiä yhdeksi animaatio. Joten aika demo. Joten jos käytät mitä tahansa Unix kuten järjestelmä joka on Linux BSD mutta joka käyttää BSD. OS X avaa terminaali-ikkuna ja Type R komentokehotteeseen. Jos sinulla on R studiossa tai kuten, että myös toimii. Windows-käyttäjille pitäisi olla löytää R Käynnistä-valikon. Sitä pitäisi kutsua jotain kuten R x64 3 pisteen riippumatta. Avaa että sinne. Joten nyt haluan vain Avaa pääteikkuna. Hyvä, haku. Yleisö: Komento-Space CONNER HARRIS: Komento-Space, kiitos. En yleensä käytä Maceissa. Terminaali, näyttää uusi ikkuna. New window on asetuksia Basic, R. Joten sinun pitäisi saada tervetullut viesti, jotain tällaista. Joten olen käyttäen R vuorovaikutteisesti. Voit myös kirjoittaa R skriptejä tietenkin. Periaatteessa skriptejä ajaa täsmälleen samalla tavalla kuin istuisit tietokoneen kirjoittamalla jokainen rivi yksi kerrallaan. Joten aloitetaan tekemällä vektorin. Nuoli C 1, 2. 1, 2, 4. OK toki. Voin tehdä fontin kokoa suurempi. Yleisö: Komento-Plus CONNER HARRIS: Komento-Plus. Komento-Plus. Okei, miten tuo on? Hyvä? OK. Joten aloittaa julistamisesta Vector lista. Do, nuoli, C 1,2,4. Voimme nähdä. Älä ole huolissasi kiinnike siellä. Suluissa joten jos tulostaa hyvin pitkä taulukot, voimme missä olet. Yksi esimerkki olisi, jos en vain haluavat alue 2-200. Jos minä tulostettu hyvin pitkä jono, suluissa on vain niin voin pitää kirjaa joka indeksin me olemme, jos etsin tällä visuaalisesti. Joten joka tapauksessa, meillä on. Joten sanoin aiemmin, että taulukot vuorovaikutuksessa oikein hyvin, esimerkiksi, unary toimintoja, kuten tämä. Joten mitä taidan saada, jos kirjoitan plus 1? Jep. Oikea, nyt teen tämä eri array. Sanotaan b c 20,40, 80. Niin mitä mieltä olet Tämä komento tekee? Lisää elementtejä. Ja niin periaatteessa se mitä se tekee. Joten tämä on melko kätevä. Joten en miten voin tehdä tämän. C on, sanokaamme, 6 kertaa 1-10. Joten mitä haluan nähdä sisälsi, mitä luulet? Joten kaikki kerrannaisina kuusi. Nyt, mitä luulet tapahtuu, jos teen näin? Teen tätä hieman selkeämpi, C, C. Mitä tapahtuu, sinä ajatella, jos teen näin? plus C. [KUULUMATON] Yleisö: Joko virhe tai se vain lisää kolme ensimmäistä elementtejä. CONNER HARRIS: Ei aivan. Tämä on mitä saimme. Mitä tapahtuu, on lyhyempi array,, sai kierrätetään. Joten saimme 124, 124, 124. Joo. Ja pohjimmiltaan, voit katsella tämä toiminta ennen plus 1, kuin alaluokan tämän ongelman, jos lyhin jono on vain numero 1, joka on yksi alkiotaulukon. Minä vain olla sanomalla vektori kaikki aika sijaan array, koska sitähän R asiakirjat tavallisesti. Se on syvälle c tapa. OK, joten nyt meillä on tämä joukko. Joten meillä on tämä joukko, c. Voimme saada yhteenveto tilastojen C, yhteenveto C. Ja se on mukavaa. Joten Nyt tehdä joitakin matriisi asioita. Sanotaan m on matriisi. Tehdään tästä kolme kolmella yksi. Joten nrows vastaa 3, ja ncols vastaa 3. Ja tietojen katsotaanpa do-- niin mitä luulet tämä tulee tehdä? Oikea, se on seuraava. Se on nrow ja ncolumn. Joten mitä olen tehnyt on olen julisti kolme kolmen matriisi ja olen hyväksyttiin yhdeksän alkiotaulukon. Niin logaritmi kaikkien elementit yksi yhdeksään. Ja kaikki ne arvot täyttää ylös array-- anteeksi? Yleisö: Nuo ovat alustan 10 lokit? CONNER HARRIS: Ei, loki on luonnolliset logaritmit, joten pohja e. Joo, jos halusi pohja 10 log, mielestäni sinun täytyisi kirjautua tahansa, jaettuna log 10. Ja niin tiedot [äänetön] vain täyttyy jono, niin ylhäältä alas, sitten vasemmalta oikealle. Ja jos halusi tehdä joitakin muita array, sanokaamme n on matriisi. Tehdään, en tiedä, 2-13. Tai minä tehdä jotain mielenkiintoista. Teen 2-4. nrow tasavertaisina, sanokaamme, 3. Ncol vastaa 4. n. Joten meillä tätä. Ja nyt, jos haluamme kertoa näitä, tekisimme n prosentin kertaa prosenttia, koska se on n. Ja meillä on matriisi tuotteita. Vuoteen he tavalla Näitkö kuinka kun minä julisti n, 2-4 vektori sai pyöräili asti se täytti kaikki n? Jos halusi ottaa ominaisarvon hajoaminen, tämä on jotain voimme tehdä hyvin helposti. Voimme tehdä eigen n. Ja niin tämä on meidän ensimmäinen kohtaavat luettelo. Joten eigen n on lista kahdella avaimella. Arvoon, joka on tämän taulukon täällä. Ja vektoreita, mikä on tämän taulukon täällä. Joten jos halusi purkaa, sanoa, tämä kolmas sarake alkaen ominaisvektorit matriisin, koska ominaisvektorit ovat sarakevektoreita. Joten voimme tehdä vec eigen n dollarin merkki vektorit, pilkku 3, on [äänetön]. Vec. Onko se, kuten arvata saattaa. Sano sitten n kertaa prosenttia kertaa vec. Joten tulos tässä varmasti näyttää jos otimme kolmannen eigenvalue täällä, joka vastaa kolmas ominaisvektori. Se vain kerrotaan kaiken Tämän ominaisvektori, komponentti-viisas, jonka ominaisarvo. Ja sitähän me odottaa, sillä siitähän ominaisarvot ovat. Onko kukaan täällä ei ottanut lineaarialgebraa? Pari ihmistä, OK. Vain kääntää aivot pois hieman. Ja todellakin, jos otamme eigen n dollarin merkki arvot 3 kertaa vec, myös saada sama asia. Se muotoiltu eri tavalla rivi vektori sijasta pystyvektori, mutta iso juttu. Ja niin ne ovat pohjimmiltaan mukava asioita, joita voimme tehdä matriisit, osoitettu luettelot. Haluan osoittaa mukava asioita toimii hyvin. Joten say-- [äänetön] toiminto, kutsukaamme se toi vastaan ​​toiminto n n squared-- Oikeastaan ​​se ei oikeastaan ​​paras. a, b, potenssiin ja b. Joten yksi asia toiminnot, jälleen, on ne ei tarvitse nimenomaista palata lausuntoja. Joten voit just-- viime lausunto arvioitu on lausunto palasi, tai arvo palautetaan. Joten tässä tapauksessa, me vain arvioida yhden lausunnon, potenssiin ja b. Että on oletusarvo palauttaa arvon. Se ei koskaan sattuu laittaa palauttavat arvoja nimenomaisesti, varsinkin jos olet tekemisissä toiminta erittäin monimutkainen logiikka virtaus. Mutta et tarvitse niitä. Joten nyt voimme tehdä toi 5, 1, ja tämä on periaatteessa mitä voit odottaa. Jotain muuta voimme tehdä, voimme todella tehdä func b on 1, vastaa 5. Jos siis mitkä numero täällä, joka argumentti menee joka väitteen in-toiminto, voimme kääntää ympäri Näiden arvojen minne haluamme. Yleisö: Onko syy kirjoittaa se pois b vastaa toisin kuin vain käyttämällä numerot ja pilkku? CONNER HARRIS: Joo, yleensä tehdä tämän, jos sinulla on toimintoja paljon argumentteja. Jotka saattavat usein olla kuin LIPUT että haluat vain haluat käyttää harvoin. Ja näin voit only-- sinua voi viitata erityiset väitteet että haluat käyttää ei-oletusarvot, ja sinun ei tarvitse kirjoittaa ulos nippu lippuja vastaa väärien heidän jälkeensä. Tai voin kirjoittaa tämän jälleen oletusarvo kuten b = 2. Ja sitten voisin tehdä f func, Teen 4, 1 tällä kertaa. Ja 17, mikä on 4 potenssiin plus 1, kuten arvata saattaa. Mutta voisin myös vain kutsuvat tätä toi 4, ja saan 18, koska En määritä b. Joten b saa oletusarvo 2. OK, joten nyt jos olet seuraavat yhdessä demo, Kirjoita tämä rivi komento kysyy ja katso, mitä tulee esiin. Oikeastaan, älä tee sitä. Kirjoita tähän. Sinun pitäisi saada jotain tällaista. Joten mtcars on rakennettu tiedot asettaa tämä esittelyä tarkoituksiin, joka tulee with--, joka tulee vuonna oletuksena teidän r jakeluun. Tämä on kokoelma tilastot 1974 kysymys Motor Trend -lehden useita eri automalleihin. Joten siellä on maileina gallonaa kohden, cylinders-- Unohdan mitä disp is-- hevosvoimaa. Todennäköisesti. Jos vain Google MT autoja, sitten yksi ensimmäisistä tuloksista on peräisin virallinen R asiakirjat ja se selittää kaikki nämä tiedot kenttiin. Joten paino is-- paino on paino auton tonnia. Q s on neljäsosa mailin aikaa. Joten nyt voimme tehdä joitakin hauskoja asioita noin MT autojen kentissä. Joten voimme tehdä asioita kuten rivi nimiä, mt autoja. Ja tämä on luettelo kaikista rivien tietokokonaisuus, jotka ovat nimiä autoja. Voimme tehdä colnames, mt autoja tätä. Jos et mt autoja, sub-numeerinen indeksi, kuten 2. saamme toisessa sarakkeessa ulos tämä, mikä olisi sylintereitä. Yleisö: Mitä teit? CONNER HARRIS: olen kirjoittanut mt autot, suluissa e, joka antoi minulle toinen sarake pois mt autoja. Tai jos haluamme peräkkäin, voin kirjoittaa mtcars pilkku 2, esimerkiksi. Muut kierroksella 2. pilkku, niin. Ja että menee teidän peräkkäin. Tämä täällä vain antaa sinulle sarake, vaan sarake vektorina. Tajusin juuri nyt unohdin osoittaa hienoja asioita vektorit että voit tehdä indeksejä. Joten anna minun tehdä juuri nyt. Tehdäänpä c gets-- laskemisesta tämä pause-- 2 kertaa 1-10. Joten C on vain olemaan vektori 2: sta 20. Voin ottaa elementtejä, kuten tämä, C2. Voin kulkea vektori näin, C-- haluan käyttää eri nimi kuin C, kuten vec C. Periaatteessa olen tekemässä tämä niin et saa sekava välillä C vektori rakentaminen toiminto, ja sitten C muuttujan nimi. Vec suluissa C 4, 5, 7. Tämä saat minut ulos neljännen, viidennen, ja seitsemän elementtejä jono. Voin tehdä vec, laittaa negatiivinen indeksi, kuten negatiivinen 4. Jotka saavat minut pois tämän kanssa Neljäs elementti poistetaan. Sitten jos halusin tehdä viipaleita, Voin tehdä vec 2 kautta 6. 2 paksusuolen 6 on vain yksi vektori, joka on 2, 3, 4, 5, 6. Sylkee että. Joten joka tapauksessa, takaisin mt autoja. Joten tehdä joitakin taantumat. Sanotaan malli gets-- katsotaanpa lineaarisesti regress-- En tiedä. Katsotaanpa ensin eivät kiinnitä mtcars, tietenkin. Joten [äänetön] malli lm, katsotaanpa taantua mailia per gallona tilde paino. Ja sitten datakehys on mtcars. Joten yhteenveto malli. OK, joten tämä näyttää vähän monimutkainen. Mutta pohjimmiltaan, kun huomataan jos me yrittää ilmaista mailia per gallona lineaarisena funktiona paino, sitten saimme tämän linjan täällä, joka kuunteluja klo 37.28. 37,28 olisi teoreettinen mailia per gallona auton, joka painaa nolla. Ja sitten jokainen ylimääräinen tonni, pudotat noin viisi mailia per gallona pois tuosta. Molemmat kertoimet sinua voi nähdä, keskivirheet siellä. Ja ne ovat hyvin tilastollisesti merkitsevä. Jotta voimme olla hyvin varmasti 1 e 10 negatiiviseen 10. Joten 1 kertaa jotain negatiivista 10, että jos teet raskaampi auto, se on pahempi mailia per gallona. Tai voimme testata joitakin muita malli. Kuten sijasta taantumassa tämä paino, Katsotaanpa taantua sen loki painoa, koska ehkä tehokas painon mittarilukema on jotenkin ole lineaarinen. Tämä antoi meille r potenssiin on 0,7528. Joten kokeile tätä. Tällä kertaa tehkäämme eri muuttujaa, liian. Model2. Joten yhteenveto, Model2. Selvä, joten taas, me saimme parhaiten sopiva viiva täällä. Ja tämä time-- tämä sanoo, pohjimmiltaan, että aina kun lisätä painoa auto tekijällä e menetät näin monta mailia per gallona. Ja niin tällä kertaa meidän vakiojäännöspoikkeama error it-- että ei ole väliä, oikeastaan. Vakiojäännöspoikkeama on pohjimmiltaan vain keskivirhe että olet jättänyt sen jälkeen, kun ottaa pois suuntaus linja. Ja meidän r potenssiin tässä 0,81, joka on vähän parempi kuin mitä meillä oli ennen, 0.52. Ja niin Nyt lisätä termi tähän regressio. Joten taantua mailia per gallona sekä log painojen ja, tehdään, q mailia, neljäsosa mailin aikaa. OK, sillä on oltava the-- kunnossa, qsec. Qsec. Actually-- pahoillani, mitä? Soitan tämä jotain muustakin Model2. Soitan tämän model3. Ja nyt voimme tehdä yhteenveto model3. Ja niin taas, tämä on pohjimmiltaan mitä voisi odottaa. Sinulla on positiivinen siepata. Tehokas kasvava paino on negatiivinen. Ja tehokas lisäämällä neljäsosa mailin aika on positiivinen, mutta kuitenkin vähemmän kuin paino. Nyt intuitiivisesti, voit järkeä tämä sanomalla ajatella urheiluautoja. Siellä hyvin nopea kiihtyvyys, hyvin lyhyt neljäsosa mailin kertaa. He myös aikovat käyttää enemmän kaasua, katsoo järkevämpää autot ovat menossa on hitaampi kiihtyvyys, korkeampi neljäsosa mailin kertaa, ja käyttää vähemmän kaasua ,, niin korkeampi mailia per gallona. Suuri. Ja nyt on aika tontti jotain tällaista. Joten do-- niin paljas luut voimme tehdä plots-- koska Olen liittänyt tämän datakehyksen before-- voimme vain tehdä tontteja, paino- mpg. Tee tämä vähän isompi. Siellä olemme periaatteessa on sirontakuvaajaan, mutta pisteet ovat eräänlainen vaikea nähdä tämän. En muista suoralta kädeltä mitä syntaksi on muuttaa juonta. Joten kai tämä on hyvä aika tuoda esille, siellä on erittäin mukava sisäänrakennettu apua ominaisuus, apua lainausmerkkejä funktion nimi. Tuomme esille pohjimmiltaan mitä haluat. Taidan itse tehdä tämän tyyppi vastaa p pisteille tontteja. Oliko että muuta mitään? Ja ei, ei oikeastaan. Selvä. Jostain syystä, kun tein tätä omasta tietokone jonkin aikaa sitten, kaikki hajottaa pistettä olivat paljon selkeämpi. Oli miten oli, ovat hajonta sellainen näkyvissä? Siellä on yksi siellä. Harvat, harvat. Voit tavallaan nähdä heidät, eikö? Joten jos haluamme lisätä parhaiten sopiva viiva Tämän tontti täällä, joka on vähän paljas bones-- haluan tehdä vähän mukavampaa. Tärkeimmät vastaa vs. paino. Mailia per gallona. Jälleen voit nähdä, kuinka hyödyllinen valinnaiset argumentit ovat täällä myös ei tarvitse laittaa asioita tietyssä järjestyksessä näppäimistön perustelut kun on tontteja, koska nämä ottaa paljon argumentteja. Xlab vastaa paino, paino, tonnia. Selvä. OK, joo, tämä laite on on hieman ärsyttävää. Mutta voit nähdä tavallaan siellä, siellä kuvaajan nimi puolella. Täällä there's-- pohjassa täällä on akselin tarroja. En muista suoralta kädeltä mitä komentoja ars-- mitä toimintoja on lisätä koko mainittuja merkkejä ja otsikot, mutta ne ovat siellä. Joten jos haluamme lisätä parhaiten sopiva viiva, voisimme tehdä jotain like-- I on syntaksi kirjoitettu täällä. Joten muistakaa me vain lisätä malli oli mpg, paino, mtcars. Joten jos halusin lisätä parhaiten sovitettu linja, voisin tehdä, b rivi malli. Ja puomi, meillä on paras sopiva viiva. Se on eräänlainen vaikea nähdä uudelleen. Olen melko pahoillani teknologinen vaikeuksia. Mutta se toimii pohjimmiltaan ylhäältä vasemmalta alas oikealle. Ja jos asteikolla oli isompi, voit nähdä että leikkauspiste on mitä voit löytää yhteenvedosta tilastoista jos kirjoitat yhteenveto malli. OK, joten toivon, että kaikki saa jotain tunnetta mitä R on, mitä se on hyvä. Voisit tehdä paljon mukavampaa tontteja kuin tämä omaa aikaa, jos haluat. Joten ulkomainen toiminto rajapintana. Tämä on jotain, joka ei ole tyypillisesti katettu Johdantoluennot tai johdanto mitään r. Se ei ole todennäköistä olet menossa tarvitse sitä. Kuitenkin, löysin sen hyödylliseksi omia projekteja aiemmin. Ja ei ole hyvä opetusohjelma sitä verkossa. Joten olen juuri menossa kiire teille kaikille läpi tämän ja sitten olet vapaa lähtemään. Ja niin ulkomaisten toiminto käyttöliittymä on mitä voit soittaa ulos nähdä toimintoja R. Sisäisesti R on rakennettu C. R: n aritmeettinen on vain C: n 64-bittinen liukuluku aritmeettinen, joka on double [kuultavissa]. Ja saatat haluta tehdä tämä joukko syitä. Yhden, R tulkitaan, se on ei käännetty alas konekielelle. Joten voit kirjoittaa uudelleen sisempi silmukoita C ja sitten saada etu käyttää R. Like se on hieman helpompaa kuin C Se on parempi kuvaajien tilat ja vaikka mitä. Ja kun vielä voi saada huippunopeus ulos sisemmän silmukoita, joka on, jos todella tarvitset sitä. Uudelleenkäytön nykyisten C kirjastot, se on myös tärkeää. Jos sinulla on C kirjasto, kuten, En tiedä, Fourier, tai joitakin hyvin Archean tilastot käytetty menettely korkean energian astrofysiikan tai jotain, en tiedä. Korkea energian astrofysiikka ei edes ajatella, mielestäni. Mutta voit tehdä sen sijaan, kirjoittaa Native R -portti niistä. Sekä the-- ja uudelleen, kuten jos katso useimmissa R oletus kirjastoissa, on sisäosat, sisäosat ovat aio käyttää ulkomaisia ​​toimintoa käyttöliittymä hyvin laajasti. He ovat asioita, kuten Fourier muuntaa tai computing korrelaatio kertoimet kirjoitettu C, ja he vain R kääreet ympärillä. Käyttöliittymä on vähän vaikea. Luulisin sen vaikeus on liioiteltu paljon ohjeita löydät. Mutta silti, se on vähän sekava. Ja en ole pystynyt löytää hyvä opetusohjelma se, joten tämä on se juuri nyt. Tämäkin koko segmentin on enemmän myöhempää käyttöä varten. Älä ole huolissasi kopiointi kaiken alas juuri nyt. Joten seuraavat ohjeet ovat Unix-järjestelmät, Linux, BSD, OS X En tiedä miten tämä toimii Windows, mutta kiitos vain älä tee Opinnäytetyö Windows. Et todellakaan halua. Unix on paljon parempi asettaa up rento ohjelmointia. Joten, pohjimmiltaan ulkomaisia toiminto rajapintana. Jos haluat kirjoittaa C toiminto käytettäväksi R, se on otettava kaikki väitteet osoittimia. Joten yhden arvojen, tämä tarkoittaa että se osoitti arvoa. Ja paneelit, tämä on osoitin että ensimmäinen elementti, joka on mitä joukko nimiä oikeastaan ​​tarkoittaa. Tämäkin on jotain sinun pitäisi olla melko täysin alas jälkeen s asettaa viisi. Array nimet ovat vain osoittimia ensimmäiseen elementtiin, Liukulukujen tyyppi on kaksinkertainen. Ja funktio on palata mitätön. Ainoa tapa, että se voi todella kertoa R mitä tapahtui on muuttamalla muistin R antoi sitä kautta ulkomaisen toiminto liitäntä. Joten olen kirjoittanut tämän Esimerkiksi täällä, tämä on toiminto, joka laskee käyttö piste kahden vektorin. Se kestää kaksi perustelua, vec1, vec2, jotka ovat vektorit itse, ja sitten n, joka on pituus, koska uudelleen, R on rakennettu [äänetön] selvittää pituus vektorien, mutta C-ei. C, vektoreita on mielivaltainen rajattu murikka muistia. Joten miten voit laskea piste tuotteet on juuri perustanut tätä parametri nollaan ja sitten kerrata kautta 1 tähti n, koska n on osoitin pituus, vain lisätä jotain tätä parametri. Ja se voi olla hyvä käytäntö jos aiot tehdä tämä kirjoittaa kaksi erillistä C toimintoja. Yksi niistä has-- Yksi heistä vain vie argumentit ja tyypit että ne tavallisesti olla C. Joten se vie array väitteet osoittimia. Mutta yhden arvo argumentteja kuin n, se vain vie niin arvoja kopioida, ilman viitteitä. Ja sitten se ei [Äänetön] ulos osoitin. Ja sitten voit olla eri, periaatteessa, kääre toiminto että pohjimmiltaan käsittelee vaatimuksia ulkomaisen toiminto liitäntä sinulle. Miten soitat tämän R on, kerran sinulla on toiminto kirjoitettu C, kirjoitat R cmd shlib, R komento jaettu kirjasto, foo piste C, tai mitä tahansa tiedoston nimi on, ja OS kuori ei R terminaali. Ja tämä luo kirjasto foo piste niin. Ja sitten voit ladata sen meidän script tai interaktiivisesti komennolla dyn piste kuormitus. Sitten on funktio T nimeltään piste C. Tämä vie argumentit, jotka ovat ensimmäinen funktion nimi C että haluat soittaa. Ja sitten kaikki parametrit tuon toiminnan, ne on oikeassa järjestyksessä. Sinun täytyy käyttää näitä tyyppi pakottamista toimii kokonaisluku, kuin kaksinkertainen, kuten luonne, ja looginen. Ja sitten kun se palaa luettelo, joka taas on vain liittyvä joukko parametrien nimet ja arvot kun toiminto on loppunut. Joten tässä tapauksessa, koska piste tuot on perustelut vec1, vec2, ja int n, n ulos. Dot C meillä on piste tuot, funktion nimi olemme soittaa, vec1, vec2, tyyppi pakottaa. Pituus joko vektori, Olen vain valitsi vec1 mielivaltaisesti. Se olisi vakaampi sanoa s kokonaisluku min pituus vec1, pituus vec2. Sitten vain kaksinkertainen nolla, koska emme oikeastaan välitä mitä menee ulos parametri koska olemme asettamalla sen arvoksi nolla joka tapauksessa. Ja sitten tulokset tulevat olemaan iso liittyy joukko pohjimmiltaan vec1 on mitä tahansa, vec2 on mitä tahansa. Mutta olemme kiinnostuneita pois, jotta voimme saada että ulos. Tämä on jälleen hyvin lelu esimerkki Ulkomaisen toiminto rajapintana. Mutta jos sinulla on laskea piste tuotteet massiivinen vektoreiden silmukoita, tai jos sinun täytyy tehdä jotain muuta silmukka, ja et halua luottaa R, joka ei ole hieman yläpuolella rakennettu, tämä voi olla hyödyllistä. Jälleen, tämä ei ole yleensä johdanto aihe R. Se ei ole kovin hyvin dokumentoitu. Olen vain myös sen, koska Löysin sen hyödyllistä aikaisemmin. Joten, huonoista käytännöistä. Mainitsin, että on olemassa silmukan sisään toiminto. Yleensä sinun ei pitäisi, vuonna kieli, käytä sitä. Perustuu miten R toteuttaa iteroinnin sisäisesti, se voi olla hidasta. He vain myös ruma. R käsittelee vektoreita erittäin hienosti, joten Usein et tarvitse käyttää sitä. Sitten voit yleensä korvata vektori usein näihin toimintoihin sanottujen korkean Jotta toimintoja, Kartta, Vähennä, Etsi, tai suodatin. Otan vain antaa joitakin esimerkkejä siitä, mitä nämä tekevät. Kartta on korkeamman asteen funktio koska se vie toimivat argumentti. Joten voit antaa sen funktio, voit antaa sen jono, ja se soveltaa toiminto jokaiseen alkio ja palauttaa uuden taulukon. Vähennä, pohjimmiltaan annat se joukko, annat sen funktio, joka ottaa kaksi argumenttia. Sitä sovelletaan toiminto ensimmäinen, Ensimmäinen väite joitakin käynnistin arvo. Sitten tämä tulos toisessa. Sitten tämä tulos kolmannella, sitten että tulostaan ​​neljännellä. Ja palata sitten, kun se saa loppuun. Niinpä esimerkiksi, jos haluat laskea summa kaikki tekijät array, kuin voisi kutsua vähentää kanssa [äänetön] vähentää lisäksi toiminto, kuten func , b, palauta ja b. Ja sitten alkaa arvo 0. Ja kaikki nämä, voit löytää ne kuvattu R asiakirjat, tahansa oppikirjan Functional Programming. Mukana on myös tämän luokan toiminnot nimeltään sovelletaan toimintoja, jonka minä don't-- he hieman vaikea selittää, mutta jos tarkastellaan [äänetön] varattu että minä mainittu alussa, hän selittää niitä melko hyvin hänen liite T ohjelmointi. Lisää käytännöistä, lisäämällä vektoreihin. Joo? Minun pitäisi korjata, että. Että ensimmäisellä rivillä, vec nuoli, että nuoli ei pitäisi olla siellä. Voit määrittää vektori, Jälleen ottaa sen pituus plus 1 ja määrittämällä jotain arvoa että. Joka laajentaa vektori, tai et voi tehdä vec tasavertaisten C, vec newvalue. Uudelleen, jos käytät C: yksi argumentti vektorina, Tuloksena hierarkia saa litistetty. Joten sinun täytyy vain saada vektori joka on pidentää 1. Älä koskaan tee tätä. Miksi te ei pitäisi tehdä tätä on tämä. Kun jakaa vektori, se antaa sille tietty murikka muistia. Jos nostat että vektori kokoa, se on kohdentaa uudelleen vektori jossain muualla. Ja niin uudelleen jakaminen on melko kallista. En aio mennä yksityiskohtiin siitä, miten muisti allokoijiksi toteutetaan käyttöjärjestelmän tasolla, mutta se vie paljon aikaa löytää uusia kimpale muistia. Ja myös, jos olet uudelleen jakamisesta paljon ja paljon asteittain suurempi paloina, voit päätyä jotain kutsutaan muistin pirstoutuminen, jos vapaata muistia on jaettu paljon vähän lohkojen muistiin allokoijiksi näkökulmasta. Ja se saa kovemmin ja kovemmin löytää muisti muita asioita. Joten sen sijaan, jos haluat tehdä tämän, jos sinun täytyy kasvaa vektori toisesta päästä seuraavaan, sen sijaan, että liittämällä siihen jatkuvasti, sinun tulisi etukäteen jaettava. Vec nuoli, vektori pituus vastaa 1000, tai mitä tahansa. Ja sitten voit vain määrittää vektorin arvot yksi ajan kuluttua olet varattu sitä kerran. Törmäsin tähän, jälleen, minun kesätyö kun olin kirjallisesti NRA ero yhtälö ratkaisija. Ei symbolinen numeerinen. Ajatuksena on, että kun olet yksi vastinetta ratkaisu, käytät että laskea seuraavaan. Joten luonnollinen naiivi kaltevuus oli sanoa OK, joten Aloitan vektori se arvoon olennaisesti. Laske siitä seuraava arvo joka menee päälle minun ratkaisu vektori, ja liitettävä kyseinen. Luoda jotain muuta, liitettävä kyseinen. Se meni hyvin, hyvin hitaasti. Ja kun tajusin tämän ja Muutin järjestelmä mistä lisäämällä tähän vektori kuten 10000 100000 kertaa, vain ennalta myöntämällä vektori ja juuri käynnissä kanssa. Sain yli 1000 kertaiseksi nopeuttaa. Joten tämä on hyvin yleinen ansa R ohjelmointia. Jos haluat rakentaa vektori pala palalta, ennen jaettava. Toinen yleinen matka up-- tämä on viimeinen dia, älä worry-- on virheiden käsittelyä. R, rehellisesti, ei todella tehdä tämän hyvin. On olemassa paljon ongelmia, jotka voivat ilmaantua. Esimerkiksi, jos saat array tai vektorin pois toiminto että uskoit yksittäinen arvo tulevan, tai päinvastoin, ja ohitat sen osaksi toiminto Kirjoitit odottaa yksi arvo, joka voi olla ongelma. Tietyt toiminnot palata null samoin vaikkapa lukeminen olematon Näppäile luettelosta. Mutta null ei ole kuin C jossa jos yrität lukea vanhasta osoitin, [kuulumaton] null osoitin, se vain Seg viat ja jos olet oman debuggeri se kertoo tarkalleen missä olet. Sen sijaan, null tulee do-- toimintoja tekee arvaamattomia asioita jos he kädellä null. Kuten jos olet luovutti max null, se tulee antaa sinulle negatiivista ääretön. Ja niin, joo. Ja niin tämä tapahtui minulle kerran, kun olin muuttunut joukko kentät listallani rakenne kerran muuttamatta niitä muualta kun luin niistä. Ja sitten sain kaikenlaisia ​​satunnaisia äärettömyys tulokset pulppuaa ja minulla ei ole aavistustakaan, mistä he tulivat. Ja valitettavasti siellä mitään todellista R tiukkaa tilassa jossa voit sanoa jos jotain näyttää siltä kuin se voisi olla virhe, vain lopettaa siellä niin voin olla kurinalaista ja korjata sen. On kuitenkin jotain kutsutaan pysäkki jos ei. Tämä vastaa C: n väittävät, jos olet puhunut siitä. En usko C väittää on luento aihe, mutta ryhmänjohtaja olisi voitu mennä sen yli. Ja pysähtyy, jos ei periaatteessa ottaa mitään predikaatti, niin lausunnot, jotka voi olla totta vai tarua. Ja jos se on väärä, se pysähtyy ohjelmansa. Se kertoo sinulle, mitä linja on olivat ja missä kunnossa epäonnistui. Ja tämä erittäin hyödyllistä, esimerkiksi, järki tarkkailun, toiminto tuloa. Joten jos sinulla on funktio ja odotat, vaikkapa jos sinun pitäisi antaa minulle päivämäärä, haluan päivämäärät on vain vektori, jonka pituus on 1 ja jossain välillä 1 ja 31. Ja jos ei, tiedän jotain on mennyt pieleen. Ja päätän lopettaa siellä ennen tämän on satunnaisia ​​kolhi vaikutuksista koodilla että se on vaikeampi jäljittää kautta. Niin, että yksi mahdollinen käyttää pysähtyy, jos ei. Oli miten oli, OK. Niin, että lopussa. Kiitos niin paljon, että tulitte. Olen listalla amatööri tässä. Pahoillani jos olet kyllästynyt tai sekava tai mitä olet. Olen iloinen ottaa kysymyksiin sähköpostitse klo connorharris@college.harvard.edu. Tämä koskee myös kaikille katsomassa tämän elää tai myöhemmin. Myös, vaikka en ole TF, olen myös hyvin halukas toimimaan epävirallinen neuvonantaja kaikille, jotka on käyttämällä R opinnäytetyön. Jos haluat, että sitten vain puhua TF ja sitten kirjoittaa minulle sähköpostia niin Tiedän mitä olet työskennellyt ja niin voin perustaa kokous kertaa, jos haluat. Joten jälleen, paljon kiitoksia. Toivottavasti pidit siitä. Yleisö: [äänetön]. CONNER HARRIS: Tietenkin. Yleisö: Millainen projekti olisi CS opiskelija käyttää R? CONNER HARRIS: Joten jos olet ei tehdä jotain, joka on puhtaasti data mining, esimerkiksi, ja siellä on paljon asioita voisit tehdä, että tiedot kaivos- ja koneoppiminen. Haluat ehkä käyttää R osa jotain. Toin esille, alun perin, esimerkiksi ja jos olet kirjoittamassa sivusto ja haluat käyttää automatisoituja tilastollinen analyysi palvelimen kirjautuu tiettyyn aikaan joka päivä, jotka saattavat olla jotain, joka on erittäin helppo tehdä vain lyhyesti R skripti, voit ajastaa juosta joka yö, esimerkiksi. Ja olen varma, jos siellä mitään syytä sinun haluavat tilastoja tai kuvaajien ominaisuuksia ja on tämä ajaa automaattisesti sen sijaan ottaa vuorovaikutuksessa asioita Excelissä, esimerkiksi, että on jotain saatat haluta käyttää R. Joten kysyttävää ennen kuin lähden? Ei? Hyvä, hyvin, jälleen, kiitos kovasti tulossa.