CONNOR HARRIS: Still I domāju, ka dažas aizraujošas video ražo profesionālu konsultāciju kas izmanto R daudz savā darbā. Teicējs: Kas ir aiz statistiku, Analytics, un vizualizācijas ka šodienas spožāko datu zinātnieki un biznesa līderiem paļauties uz lai padarītu spēcīgu lēmumus? Jūs ne vienmēr var redzēt. Bet tas ir tur. To sauc R, open source R-- statistiskā programmēšanas valoda ka datu eksperti pasaulē vairāk izmantot par visu no kartēšanas plašā sociālā un mārketinga tendences tiešsaistes attīstīt finanšu un klimatu modeļi, kas palīdzēs virzīt mūsu ekonomiku un kopienām. Bet kas īsti ir R un kur bija R sākt? Nu sākotnēji, R sākās šeit ar diviem profesoriem kurš vēlējās labāks statistikas platforma saviem studentiem. Tāpēc viņi radīja viens modelēts Pēc statistikas valodā S. Tie, kopā ar daudziem citiem, tur strādā un, izmantojot R, radot instrumentus R un atrast jaunus pieteikumus par R katru dienu. Pateicoties tam, ir pasaules kopiena pūles, R tur pieaug ar tūkstošiem lietotāju radīts bibliotēkām būvēts lai uzlabotu R funkcionalitāti un pūļa izcelsmes kvalitātes validēšana un atbalstu no visvairāk atzīta nozares līderi visās jomās, kas izmanto R. Kura ir liels, jo R ir labākais, ko tā dara. Topošos speciālistus ātri un viegli interpretēt, mijiedarboties ar, un vizualizēt datus parādot savu strauji augošs kopiena R lietotāju visā pasaulē un redzēt, kā open source R turpina veidot nākotne statistikas analīze un datu zinātne. CONNOR HARRIS: Labi, lieliski. Tātad mana prezentācija būs nedaudz vairāk prātīgs. Tas nav saistīts, ka daudz aizraujošu fona mūziku. Bet kā jūs redzēju video, R ir sava vispārēja mērķis programmas valodā. Bet tas tika izveidots galvenokārt par statistikas darba. Tātad, tas ir paredzēts pēc statistikas, datu analīzi, datu ieguves. Un lai jūs varētu redzēt to daudz projektēšanas izvēles, ka veidotāji R veikts. Tas ir paredzēts, lai lielā mērā, cilvēki, kuri nav eksperti plānošanu, kas ir tikai pacelt programmēšana pusē, lai viņi varētu veikt savu darbu sociālajās zinātnēs vai statistikā vai neatkarīgi. Tas ir daudz ļoti nozīmīgas atšķirības no C. Bet sintakse un paradigmas ka tā izmanto kopumā tas pats. Un jums vajadzētu justies diezgan daudz mājās tiesības pie nūja. Tas ir svarīgi, valoda. Neuztraucieties pārāk daudz par to Ja jūs nezināt termiņu. Bet tur ir atšķirība starp nepieciešamību, deklaratīvs, un funkcionāls. Obligāti, vienkārši nozīmē, ka jūs darīt paziņojumi, kas būtībā komandas. Un tad tulks vai dators šādi tos pa vienam. Tas ir vāji drukāti, ir nav tipa deklarācijas R. Un pēc tam līnijas starp dažādiem ir mazliet vairāk nekā brīvs tie ir C, piemēram. Un kā jau es teicu, ka ir ļoti plašas iespējas par grafikus, lai statistikas analīze, datu ieguves. Tie ir gan iebūvēts valodu un, kā video teica, tūkstošiem trešo personu bibliotēkām, ka Jūs varat lejupielādēt un izmantot bez maksas ar ļoti vaļēju licences nosacījumiem. Tātad kopumā, es gribētu ieteikt ka paskatās šīm divām grāmatām ja jūs gatavojas strādāt pie R. One no tiem ir oficiālais R iesācēja guide. Tas, ko uztur galvenie attīstītāji R. Jūs varat lejupielādēt to no jauna, bez maksas un juridiski tajā saiti tur. Visi šie slaidi gatavojas doties līdzi internetā, par CS50 mājas lapā Pēc tas tiek darīts. Tāpēc nav nepieciešams, lai kopētu lietas leju izmisīgi. Otrs ir mācību grāmata ar Cosma Shalizi, kas ir statistika profesors Carnegie Mellon, ko sauc Advanced Data Analīze, raugoties no Elementary viedokļa. Tas nav principiāli R grāmata. Tā ir statistika grāmatu un tas ir datu analīze grāmata. Bet tas ir ļoti pieejama cilvēkiem, kas ir mazumiņš statistikas zināšanas. Es nekad neesmu pieņēmusi oficiālu kursu. Es tikai zinu, bitiem un gabali no dažādiem sabiedroto priekšmetos ka es esmu pieņemts kursus. Un man bija iespēja saprast tas ļoti labi. Visi skaitļi ir doti R. Tie ir izgatavoti R un viņi arī ir koda sarakstiem Turpmāk katru skaitlis, kas pateiks, kā jūs veicat katru skaitli ar R kodu. Un tas ir ļoti noderīgi, ja jūs mēģināt līdzināties daži skaitlis redzat grāmatā. Un atkal bezmaksas lejuplādēt stat.cmu.edu/cshalizi/ Atvainojiet, kas būtu slash tildes cshalizi. Es pārliecinieties, lai labotu, ka kad oficiālās slaidi iet uz augšu. / ADAfaEPoV kas ir tikai akronīms no grāmatas nosaukuma. Tātad kopumā caveats-- R ir daudz iespējas. Es esmu tikai gatavojas, lai varētu segt virsma daudz lietas. Arī pirmā daļa Semināra būs kaut kas no datu izgāztuves. Es esmu diezgan atvainojos par to. Būtībā, es esmu gatavojas jūs iepazīstināt ar daudz lietas tiesības pie nūja, dodoties cik ātri vien iespējams. Un tad mēs nokļūt jautri daļa, kas ir demo, kur es varu jums parādīt visu ka mēs esam runājuši par ekrānā. Un jūs varat spēlēt aptuveni par savu. Tātad tur būs daudz tehniskā sīkumi izmet līdzi šeit. Neuztraucieties par kopēšanu visu, kas uz leju. Jo, jūs varat iegūt visu sīkumi par CS50 mājaslapā vēlāk. Un B, tas nav reāli, ka svarīgi iegaumēt šo no slaidiem. Tas ir vairāk svarīgi, ka jūs saņemsiet daži intuitīvu iekārta ar to un kas nāk no tikai spēlēšanās. Tātad, kāpēc izmantot R? Būtībā, ja jums ir projekts, kas ietver ieguves lielas datu kopas, datu vizualizācija, jūs jāizmanto R. Ja esat darot sarežģīta statistikas analīzi, ka būtu grūti Excel, piemēram, tas būtu arī good-- arī ja jūs darāt statistical analīze, kas ir automatizēta. Pieņemsim, ka jūs esat uzturēt tīmekļa vietni. Un jūs vēlaties lasīt servera log katru dienu un apkopot daži saraksts, kā top valstīm, lietotāji nāk no, daži statistikas kopsavilkumu par to, kā ilgi viņi pavada uz jūsu mājas lapā vai neatkarīgi. Un jūs vēlaties, lai palaistu to katru dienu. Tagad, ja jūs darāt to Excel, jūs jādodas uz Jūsu servera žurnālu, importēt kas stājas Excel datu izklājlapu, palaist visu analīzi manuāli. Ar R, jūs varat vienkārši uzrakstīt vienu skriptu. Ieplānojiet tā katru dienu no jūsu operētājsistēmu. Un tad katru nakti pie 2:00, vai tad, kad jūs ieplānojiet tā, tas izskatās caur jūsu interneta satiksmes šajā dienā. Un tad jau nākamajā dienā, jums ir šī spīdīgu, jaunu ziņojumu vai kāds ar visi informāciju jūs lūdza. Tātad būtībā R ir Cisco programmēšana pret Cisco analīzi. Iepriekšēja tiek darīts. Iesim uz reālajām lietām. Tātad ir trīs reāls veidi valodā. Tur ir ciparu tips. Tur ir sava veida atšķirība starp veseli skaitļi un peldošās punkti, bet nav īsti. Tur ir raksturs tips, kas ir virknes. Un tur ir loģisks tips, kas ir Booleans. Un jūs varat konvertēt starp tipiem izmantojot šīs funkcijas, kā ciparu, kā raksturs, kā loģiski. Ja jums zvanīt, piemēram, kā skaitlisku par string, tā centīsies lasīt, ka string kā vairāki, tāpat ka A2I un scanf darīt, un C. Ja tu sauc kā skaitlisku par patiess vai nepatiess tas būs konvertēt uz 1 vai 0. Ja jums zvana kā raksturs par kaut ko tas būs pārvērst kas stājas string pārstāvība. Un tad tur ir vektori un matricas. Tātad vektori ir būtībā 1 dimensiju masīvi. Tie ir tas, ko mēs saucam masīvus C. Matricas, 2 dimensiju masīvi. Un tad augstāku dimensiju masīvi jūs varat ir 3, 4, 5 izmērus, vai kāds no skaitliskām vērtībām, Stīgu, loģiskās vērtības. Jums ir arī saraksti, kas ir sava veida asociatīvo masīvu. Es nopirkšu vērā, ka mazliet. Tātad viena svarīga lieta ka braucieni cilvēkus pētniecībā ir tā, ka nav reālas, tīra atomu veidi. Nav aktuālā atšķirība starp numuru, kā skaitlisku vērtību, un sarakstu skaitliskām vērtībām. Skaitliskās vērtības ir faktiski pats kā vektoru garumu 1. Un tas ir vairākas svarīgas sekas. Viens, tas nozīmē, ka jūs varat darīt lietas, ir ļoti viegli, kas ietver piemēram, pievienojot vairākus vektorā. R būs pamatā skaitlis out Ko tu ar to domā. Un es nopirkšu ka sekundē. Tas arī nozīmē, ka tur nav veids veidam checker--, ciktāl ka kaut kas tamlīdzīgs pastāv R-- pateikt kad esat izturējis vienotajā vērtībā kad tas sagaida masīva vai otrādi. Un tas var radīt dažas nepāra nepatikšanām, kas man uzbrauca, kad Man bija, izmantojot R laikā mana vasaras darbu. Un nav jaukta tipa bloki. Tātad, jūs nevarat būt masīvs bija Pirmie elementi ir, es nezinu, string "Jānis" un Otrais elements ir numur 42. Ja jūs mēģināt to darīt, tad jūs saņemsiet viss vienkārši pārvērš virkni. Tāpēc mums ir virkne John, stīgu 42. Tik neparasti sintaktisko features-- visvairāk R sintakse ir ļoti līdzīga C. Ir dažas būtiskas atšķirības. Rakstīt ir ļoti vāja. Tātad nav mainīgo deklarācijas. Pielietojums izmanto dīvaini kļūda operators mazāk nekā defisi. Komentāri ir ar hash zīmi. Es domāju, tagad dienas mēs to saucam hashtag lai gan tas nav īsti accurate-- nav dubultā slīpsvītra. Moduļu atliekas ar %% zīmēm. Integer sadalījums ir ar% /%, kas ir ļoti grūti lasīt, kad tas ir prognozēts up uz ekrāna. Jūs varat saņemt diapazonu skaitļu ar kolu. Tātad 2,5 dos jums vektors visiem skaitļiem no 2 līdz 5. Masīvi ir viena indeksētas, kas skrūves daudz cilvēku augšu, ja viņi no vairāk tipiski programmēšanas valodas, piemēram, C, kur lielākā daļa lietas ir nulle indeksētas. Atkal, tas ir, ja R mantojumu kā valodu, piemēram, nav profesionāli programmētāji nāk. Ja esat sociologs vai ekonomists vai kaut kas un jūs mēģināt izmantot R būtībā kā papildinājums jūsu svarīgāka profesionāls darbs, jūs gatavojas atrast one-indeksācija nedaudz vairāk dabas. Tāpēc, ka jūs sākat skaitīšana pēc 1 ikdienas dzīvē, nevis 0. For-cilpas, tas ir līdzīgs foreach būvēt PHP, ko jūs saņemsiet, lai mācīties in-- diezgan drīz. Kas ir par vērtību vektoru un tad jūs varat darīt lietas ar vērtību. Mērķauditorija: Tas ir jānāk klajā ar lekciju. CONNOR HARRIS: Ak, tas ir nākt klajā lekciju, lielisks. Mērķauditorija: Uzdevums, tas ir vajadzēja norādīt, no labās uz kreiso? CONNOR HARRIS: No labās uz kreiso pusi, jā. Jūs varat domāt par to kā vērtību par pareizais shoved uz mainīgo pa kreisi. Mērķauditorija: OK. CONNOR HARRIS: Un visbeidzot funkcija sintakse ir mazliet dīvaini. Jums ir funkcija nosaukums foo, kas piešķirts ar šo atslēgvārdu funkciju, kam seko ar visiem argumentiem, un pēc tam, ka korpuss funkciju pēc tā. Atkal šīs lietas var likties mazliet dīvaini. Tie būs kļuvusi par otro dabu pēc Jūs strādājat ar valodu mazliet. Tātad vektori, ceļš jūs būvēt vektoru ir jums tips C, kas ir atslēgvārds, tad visi skaitļi vēlaties vai stīgas vai neatkarīgi. Argumenti arī vektori. Bet rezultātā masīvs izpaužas saplacināts. Tātad, jūs nevarat būt masīvi vajadzības daži elementi ir vienvietīgas numuri un daži elementi ir paši bloki. Tātad, ja jūs mēģināt būvēt masīvs bija pirmais elements ir 4 un otrais elements ir masīvs 3,5 jūs tikai iegūt trīs blokam, 4,3,5. Tie var būt jaukta tipa. Ja jūs mēģināt lasīt vai rakstīt ārpus robežas vektors jūs saņemsiet šo vērtību sauc NA kas apzīmē pazudušu vērtību. Un tas ir paredzēts, lai piemēram, statistiķi, kuri strādā ar nepilnīgu datu kopām. Ja jūs pieteikties funkciju, kas ir paredzēts veikt tikai vienu numuru masīva tad ko jūs saņemsiet, jo funkcija vēros pa masīva. Tātad, ja jūsu funkcija teiksim aizņem numuru un nosūta to atpakaļ laukumā. Jūs pieteikties ka uz masīva 2,3,5 Ko jūs saņemsiet, ir masīvs 4,9,25. Un tas ir ļoti noderīgi jo tas nozīmē, ka jūs nav rakstīt cilpas dara ļoti vienkāršas lietas, piemēram, piemērojot funkcija visiem datu kopas dalībniekiem. Kas, ja jūs strādājat ar lielu datu kopas, kas Jums jādara daudz. Binary funkcijas Lietišķā ieraksts ar ierakstu. Es nopirkšu par to. Jūs varat tiem piekļūt ar masīviem vai vektori ar kvadrātiekavās. Tātad vektors nosaukums kvadrātiekavas 1 dos jums pirmo elementu. Vector nosaukums kvadrātiekavas 2 dos jums uz otro elementu. Jūs varat iet uz vektoru indeksu un jūs dabūt atpakaļ, būtībā sub faktors. Tātad jūs varat darīt, vektora nosaukums stiprinājumus C, 2,4 un jūs saņemsiet no vektoru, kas satur otrais un ceturtais elementi masīva. Un, ja jūs vēlaties, tikai Ātrā kopsavilkums statistika no vektora, piemēram, interkartilais plīts, vidējais, maksimālais, neatkarīgi, Jūs varat vienkārši ierakstiet kopsavilkumu vektors vārds un saņemt, ka ārā. Tas nav īsti noderīgs programmēšana, bet, ja jūs spēlējat ap datu kopas, tas ir ērts. Matrices-- būtībā augstākas dimensiju masīvi. Viņi ir šo īpašo notācija sintaksi. Matrix ar masīvu, kas izpaužas piepildīts in-- Atvainojiet, matrica ar datiem, rindu skaits, kolonnu skaitu. Ja jums ir daži dati, tas aizpilda masīvs būtībā gatavojas augšas uz leju pirmais. Tad kreisās uz labo pusi. Tātad, piemēram, ka. Un R ir iebūvēts Matrix reizināšanas, spektrālo sadalīšanās, diagonalization, daudzas lietas. Ja vēlaties augstāku dimensiju bloki, tā 3, 4, 5, vai kāds izmēri jūs varat darīt. Sintakse ir masīvs dim vienāds C, tad saraksts izmēriem. Tātad, ja jūs vēlaties, 4 dimensiju masīvs ar izmēriem, 4., 7., 8., 9., masīva, dim vienāds c (4,7,8,9). Jūs piekļūt vienvietīgas vērtības ar iekavām Pirmais ieraksts komatu otrais ieraksts. Jūs varat iegūt visu šķēles rindu vai kolonnu. Ar šo nepilnīgu sintaksi tas ir tikai rinda numuru komats vai komatu kolonnu numurs. Tātad saraksti ir sava veida saistītā masīvs. Viņiem ir savs sintakse šeit. Atkal nav izmisīgi kopēt visu šo leju. Tas ir tikai tāpēc, ka cilvēki iet caur slaidiem vēlāk ir tas viss jaukā atsauci. Un tas būs ļoti dabiska reizi Es tiešām iet cauri demos. Tātad ir uzskaitīta būtībā saistīti bloki. Jūs varat piekļūt vērtības ar saraksta nosaukums, dolāra zīmi, atslēgu. Tātad, ja jūsu saraksts ir nosaukta foo, tad jūs varat piekļūt, piemēram, ka. Jūs varat saņemt visu atslēgu vērtības pāri pārejot uz kvadrātiekava indeksu. Ja jūs lasīt no neeksistējošu galvenais, jūs saņemsiet null. Tas nebūs kļūda. Lieta ir, R darīs, kā daudz ar nulli, kā tas ir iespējams. Un tas var nozīmēt, ka, ja jūs esat nav gaidījis, lai saņemtu null out dažu saraksta lasīt, jūs saņemsiet dažas neparedzamas kļūdas lejup līnija. Tas notika ar mani vasaras darbs, kad es biju, izmantojot R kur es mainīts, kā zināms saraksts tika noteikts vienas vietas bet nemainījās vēlāk par kods, kas lasa vērtības no tā. Un tā, kas notika, bija es biju lasījums Null vērtības no šī saraksta, iet tos funkcijām, un ir ļoti sajaukt kad es saņēmu visādas izlases infinities augkopība up Šajā funkciju. Jo, ja jūs pieteikties pārliecināts maksimālais vai minimālās funkcijas null, jūs saņemsiet bezgalīgu vērtības out. Dati rāmji, viņi apakšklase saraksta. Katru vērtība ir vektors vienāda garuma. Un viņi izmanto, lai iesniegtu, būtībā, datu tabulas. Tur ir šī inicializācijas sintakse. Tas viss, atkal, ir daudz skaidrāks, ja jums uz demo. Un jauka lieta par datu rāmji ir tas, ka jums var dot nosaukumus visām kolonnām un nosaukumus visiem rindām. Un tā tas padara piekļuvi viņiem mazliet draudzīgāku. Arī tas ir, kā vairums funkcijas, kas lasot datus no Excel izklājlapas vai no teksta failiem, piemēram, lasīs viņu datus. Tie būs nodot to daži datu rāmja veida. Tātad functions-- funkcijas sintakse ir mazliet dīvaini. Atkal tas ir nosaukums funkciju, piešķirt, šo atslēgvārdu funkciju un pēc tam argumentu sarakstā. Tātad ir dažas jaukas lietas par to, kā darbojas šeit strādāt. Attiecībā uz vienu, jūs faktiski var piešķirt standartvērtības uz dažiem argumentiem. Tātad jūs varat teikt R1 equals-- jūs varat teikt foo ir funkcija, kur R1 ir vienāds kaut pēc noklusējuma, ja lietotājs norāda nekādi argumenti. Pretējā gadījumā, tas ir kāds viņš likt. Un tas ir ļoti ērts jo daudz mūsu funkcijas ir bieži desmitiem vai simtiem argumentiem. Piemēram tie skicēšanai grafiki vai uzzīmējot izkliedes zemes gabalu ir argumenti, kas kontrolē viss no nosaukuma un asi uzlīmes uz krāsu regresijas līnijas. Un tāpēc, ja jūs nevēlaties lai cilvēki precizēt katrs no šiem simtiem argumentu kontrolē katru aspektu gabals vai regresijas vai kāds, tas ir jauki, ir šīs standartvērtības. Un tad jūs varat faktiski rakstīt kā redzējāt atpakaļ šeit. Vai atrast labāku piemēru. Kad jūs zvanu funkciju jūs varat faktiski viņiem piezvanīt, izmantojot Arguments nosaukumiem. Tātad, šeit ir piemērs matrica konstruktors. Tas aizņem trīs argumentus. Parasti jums ir dati, kas ir vektors. Jums ir N rindu, kas ir rindu skaits. Jums ir N cols-- kolonnu skaitu. Šī lieta ir, ja jūs tipa N rinda vienāds neatkarīgi un N col vienāds jebko, kad tas jūs aicināt šo funkciju, jūs faktiski var mainīt tos. Tātad jūs varat likt N col pirmais un N rinda otrais un tas neko nemainītu. Tātad tas ir jauki maz iezīme. Vai importu un eksportu. To var izdarīt, būtībā. Ir arī iespējas izrakstīt patvaļīga R iebilst pret bināro failu un pēc tam lasīt tos atpakaļ vēlāk. Kas ir ērts, ja jūs darāt liels interaktīva sesija R un jums ir nepieciešams, lai saglabātu lietas ļoti ātri. Pēc noklusējuma R ir darba direktoriju ka failus saņemt rakstīts ārā un lasīt atpakaļ no. Jūs varat redzēt, ka ar getwg, nomainiet to ar setdw. Nekas īpaši interesants šeit Tātad tagad faktiskie statistika stuff-- multilinear regresiju. Tik ierastās sintakse ir mazliet sarežģīta. Šis modelis ir liels objekts būtībā. Tas izpaužas piešķirts LM, kas ir funkcija zvanu. Pirmais elements, y tilde x1 plus neatkarīgi. Mans sintakse šeit ir mazliet mulsinoša. Es esmu diezgan žēl, šis ir standarta veids ka datorzinātnes grāmatas izdarīt. Bet tas ir mazliet dīvaini. Vārdu sakot, tas ir lm iekavas, pirmais elements ir variable-- sorry, atkarīgs mainīgs tilde x1 x2 plus plus Tomēr daudziem neatkarīgiem mainīgie jums ir. Un tad tie var būt vai nu vektori, visi vienāda garuma. Vai arī viņi var būt sleja galvenes datu rāmi ka jūs vienkārši norādīt In Otrs arguments datu rāmi. Jūs varat arī norādīt sarežģītāka formula tāpēc jums nav lineāri regresēt viens atkarīgais mainīgais, vai viens vektors uz iepriekš esošas vektors. To var izdarīt, piemēram, vektora komponentam y brusas plus 1 un regress, ka pret log dažu citu vektors. Jūs varat izdrukāt kopsavilkumi modelis ar šo komandu sauc summary-- tikai kopsavilkums parens modeli. Atkal kaut kas cits man vajadzētu noskaidrot. Kaut kas cits, kas saņems labots kad slaidi iet līdzi internetā. Ja jūs vienkārši vēlaties, lai aprēķinātu vienkāršs korelācija Jūs varat izmantot korelācijas vektoru 1 vektors 2 funkcija kodols. Metode ir pēc noklusējuma Pearson sakarības. Tie ir standarta tie jūs varat darīt. Tur arī Spearman un Kendell sakarības kas ir dažas šķirnes rank pasūtījums korelācija. Nu tie nav aprēķināt produktu brīži starp pašām vektoriem, bet vektora rangu pasūtījumiem. Es paskaidrošu, ka vēlāk. Mērķauditorija: Quick jautājums Conner HARRIS: Protams. Mērķauditorija: Tātad, ja jūs aprēķinot par vienkāršu sakarības do jūs pieņemt, ka tur ir statistiskā nozīme uz korelāciju? Conner HARRIS: Jums nav. LM ir būtībā tikai mašīna. Tas prasīs divas lietas un tas būs izspļaut koeficienti vispiemērotāko līnijas. Tā arī ziņo standarts kļūdas šiem koeficientiem. Un tas jums pateiks, piemēram, ir krustošanās statistiski nozīmīga vai atšķirība no 0. Vai slīpums no labākajiem fit line statistiski atšķiras no nulles, un tā tālāk. Tātad tas uzņemas neko, es domāju, ka ir labākā atbilde uz jūsu jautājumu. LABI. Plotting-- tāpēc galvenais iemesls, jums vajadzētu Izmanto R, tāpat multilinear regresiju. Būtībā katrs valoda ir dažas mehānismu, kas. Un godīgi R sintakse regresijas ir mazliet Arcane. Bet, uzzīmējot ir, ja tā tiešām spīd. Darbarīku funkcija ir gabals un tas aizņem divus vektorus, x un y. Un tad elipses apzīmē ļoti liels skaits izvēles argumentiem, kas kontrolēt visu, sākot no sadaļām ar krāsām Dažādu līnijām vai dažādās vietās, uz zemes gabala veida. Jūs varat būt izkliedi gabali vai līniju gabali. [Dzirdams] 2 vektori vienāda garuma. Jūs varat pirms šo ar pievienotu datu rāmi jūsu skriptu. Un tas ļaus jums tikai izmantot kolonnu galvenes, nevis atsevišķu slimību pārnēsātājiem. Jūs varat pievienot atbilstošākās līnijas un vietējā regresijas līknes uz jūsu grafikā. Šīs komandas uzskaitīti šeit, ab line un līnijas, pēc noklusējuma tie nokļūt iestrādātas pop up logiem jo tā pieņem, ka jūs izmantojat R interaktīvi. Ja jūs neesat jūs varat rakstīt divus failus, kas ir tiešām jebkurā formātā vēlaties. Atvainojiet, man ir typo es tikko sapratu. Ja jūs vēlaties, lai atvērtu cits grafisks ierīce Jūs varat izmantot šo funkciju sauc PNG vai JPEG vai daudz citu attēlu formātus. Un jūs varat rakstīt grafikus, lai kāds faila nosaukums norādāt. Lai atceltu, ka jums ir use-- Man nav rakstīt to uz slide-- bet tur ir funkcija sauc dev dot off ka aizņem ne argumentus. Tad ir iespējas 3D uzzīmējot un par kontūru uzzīmējot ja jūs vēlaties, lai grafiki diviem neatkarīgiem mainīgajiem. Es ne iekļuvuši tie tieši tagad. Ir arī daži iekārtas animācijas tie parasti ir uztur trešajām personām. Es esmu darījis animācijas ar R grafikus, bet man nav izmantoti šo trešo pusi bibliotēkām. Tāpēc es nevaru īsti apliecināt lai cik labi viņi ir. Ko es ieteiktu, ja vēlaties padarīt animācijas, izmantojot R tiek jūs varat rakstīt visu rāmji par animācijas un tad jūs varat izmantot trešā persona program-- tipiski tie tiek saukti par FFmpeg vai ImageMagick-- dūriens visiem jūsu rāmjiem iekļaušanu vienā animāciju. Tātad laika demo. Tātad, ja jūs izmantojat jebkuru Unix līdzīgu sistēmu kas ir Linux BSD bet kurš izmanto BSD. OS X atvērt termināla logu un ierakstiet R pie komandrindas. Ja jums ir R studijā vai tamlīdzīgi, ka arī darbojas. Windows lietotājiem, jums vajadzētu būt iespēja atrast R jūsu Start izvēlnē. Būtu sauc par kaut ko tāpat R x64 3. kāds punkts. Atvērt ka tur augšā. Tāpēc tagad ļaujiet man tikai atvērt termināla logu. Labi, meklēt. Mērķauditorija: Command-Space Conner HARRIS: Command-Space, paldies. Man nav parasti izmanto Mac. Terminal, parādīt jaunu logu. Jauns logs ir iestatījumi pamata, R. Tātad jums vajadzētu saņemt apsveicams ziņa, kaut kas līdzīgs šim. Tāpēc es esmu, izmantojot R interaktīvi. Jūs varat arī rakstīt R skriptus, protams. Būtībā skripti palaist tieši tāpat kā ja tu sēdēja pie datora ierakstot katrā rindā pa vienam. Tāpēc sāksim izdarot vektoru. Arrow C 1, 2. 1, 2, 4. Labi, protams. Es varu darīt fonta izmērs lielāks. Mērķauditorija: Command-Plus Conner HARRIS: Command-Plus. Command-Plus. Visas tiesības, kā tas ir? Labs? LABI. Tāpēc sāksim ar atzīst vektora sarakstu. Vai, bultiņas, C 1.2.4. Mēs varam redzēt. Neuztraucieties par kronšteinu tur. Iekavās ir tādēļ, ja jums izdrukāt ļoti ilgi bloki, mēs varam, kur jūs esat. Viens piemērs būtu, ja es vienkārši vēlaties diapazons 2 200. Ja es drukāts ļoti garš masīvs, kronšteini ir tikai, lai es varētu saglabāt dziesmu no kuriem indekss mēs esam par, ja es esmu meklē caur šo vizuāli. Tātad jebkurā gadījumā, mums ir. Tāpēc es teicu iepriekš, ka masīvi mijiedarboties ļoti labi ar, piemēram, unary darbības, piemēram, šis. Tātad, ko jūs domājat, ka es ņemšu iegūt, ja es ierakstiet plus 1? Yep. Labais tagad es ņemšu veikt Tas atšķiras masīvs. Teiksim b c 20,40, 80. Tātad, ko jūs domājat šī komanda būs darīt? Pievieno elementus. Un tā būtībā tas, ko tā dara. Tātad tas ir diezgan ērti. Tāpēc es kā par man darīt. c ir, teiksim, 6 reizes no 1 līdz 10. Tātad, ko darīt, es gribu redzēt ietverts, jūs domājat? Tātad viss daudzkārtņi seši. Tagad, ko jūs domājat notiks, ja es to varu darīt? Es ņemšu padara šo mazliet skaidrāku, C, C. Tātad, kas notiek, vai ne domāju, ja man darīt? plus c. [Dzirdams] Mērķauditorija: nu kļūda, vai tas tikai piebilst, pirmos trīs elementus. Conner HARRIS: Ne gluži. Tas ir tas, ko mēs saņēmām. Kas notiek, ir īsāks masīvs, a, got iestatīti. Tātad, mēs saņēmām 124, 124, 124. Jā. Un būtībā, jūs varat apskatīt Šī uzvedība pirms, plus 1, kā apakšklase šo rīcību, ja īsākais masīvs ir tikai skaitlis 1, kas ir viens elements masīvs. Es vienkārši pasakot vektors visu laiks, nevis masīvs, jo tas ir tas, ko r dokumentācija parasti dara. Tas ir iesakņojusies c ieradums. Labi, tāpēc tagad mums ir šī masīvs. Tāpēc mums ir šī masīvs, c. Mēs varam iegūt kopsavilkumu statistiku par C, kopsavilkuma c. Un tas ir jauki. Tāpēc tagad pieņemsim darīt dažas matricas lietas. Teiksim m ir matrica. Veidosim to trīs ar trīs vienā. Tātad nrows vienāds 3, un ncols vienāds ar 3. Un datiem pieņemsim do-- lai to, ko Vai jūs domājat, ka tas ir gatavojas darīt? Pareizi, tas ir nākamais. Tas ir nrow un ncolumn. Tātad, ko es esmu darījis, ir es esmu pasludināja trīs ar trīs matrica un es esmu pieņemts deviņu elementu masīvu. Tātad logaritmu visu elementi viens līdz deviņi. Un visi šie lielumi aizpildīt up array-- žēl? Mērķauditorija: Tie ir parastie 10 žurnāli? Conner HARRIS: Nē, žurnāls ir naturālie logaritmi, tā bāze e. Jā, ja jūs vēlētos bāze 10 log, es domāju, ka jūs ir lai pieteiktos kāds, kas dalīts ar log 10. Un tik datiem [nedzirdama] vienkārši aizpilda masīvu, tāpēc augšas uz leju, tad kreisās uz labo. Un, ja jūs vēlētos darīt kādu citu masīvs, teiksim n ir matrica. Darīsim, es nezinu, no 2 līdz 13. Vai es darīšu kaut ko vairāk interesantu. Es darīšu 2 līdz 4. nrow vienāds, teiksim, 3. ncol vienāds 4. n. Tātad, mēs esam ieguvuši to. Un tagad, ja mēs gribam vairoties tiem, mēs darītu n procentiem reizes procentiem, jo tas ir n. Un mums ir matricas produktus. Līdz viņi veidā, jūs redzēt, kā kad es atzīts par N, tad 2. līdz 4. vektors got iestatīti līdz tas piepilda visas n? Ja jūs vēlētos, lai ņemtu eigenvalue sadalīšanās, Tas ir kaut kas, mēs varam izdarīt ļoti viegli. Mēs varam darīt EIGEN n. Un tā tas ir mūsu pirmais sastopas ar sarakstu. Tātad Eigen n ir saraksts ar divām atslēgām. Vērtības, kas ir šis masīvs šeit. Un vektori, kas ir šī masīvs šeit. Tātad, ja jūs vēlaties iegūt, teiksim, šis trešais sleja No eigenvectors matricas, jo tad eigenvectors ir kolonnu vektori. Tātad, mēs varam darīt VEC EIGEN n dolāra zīmi vektori, komats 3, no [nedzirdama]. VEC. Vai tas, kā jūs varētu gaidīt. Tad saka n reizes procenti reizes VEC. Tātad rezultāts šeit, protams, izskatās ja mēs ņēmām trešo eigenvalue šeit, kas atbilst trešais Eigenvector. Tas tikai reizināts viss Tas Eigenvector, komponents, gudrs, ko eigenvalue. Un tas, ko mēs varētu sagaidīt, jo tas, ko īpašvērtības ir. Vai kāds šeit nav ņemti lineārā algebra? Pāris cilvēki, OK. Just savukārt jūsu smadzenes off mazliet. Un tiešām, ja mēs ņemam EIGEN n dolāra zīmi vērtības 3 reizes VEC, labi saņemt to pašu. Tas ir formatēta savādāk kā pēc kārtas vektors tā vietā, lai kolonnas vektora, bet īpašs. Un tā tie būtībā ir jauki lietas, ko mēs varam darīt ar matricām, pierādīja sarakstus. Es būtu jāpierāda jauki lietas par funkcijām, kā arī. Tātad pieņemsim say-- [nedzirdama] funkcija, sauksim tas func pret funkciju n n squared-- patiesībā, tas nav īsti labākais. a, B, A kvadrātā plus b. Tātad viena lieta par funkcijas, atkal, ir tie nav nepieciešams skaidri atgriešanās paziņojumus. Tātad jūs varat just-- pēdējais apgalvojums novērtēts būs paziņojumu atpakaļ, vai vērtība atgriezās. Tātad šajā gadījumā, mēs esam tikai izvērtējot vienu pārskatu, kvadrātā plus b. Tas būs noklusējuma atgriešanās vērtība. Tā nekad sāp, lai nodrošinātu, atgriešanās vērtības skaidri, it īpaši, ja jums ir darīšana ar funkcija ir ļoti sarežģīta loģika plūst. Bet jums nav nepieciešams. Tāpēc tagad mēs varam darīt FUNC 5, 1, un Tas ir būtībā tas, ko jūs gaidījāt. Kaut kas cits, mēs varam darīt, mēs faktiski var darīt lē B ir vienāds ar 1, A ir vienāds ar 5. Tātad, ja mēs norādīt, cik daudz šeit, kas arguments iet uz kuru arguments in funkciju, mēs varam uzsist apkārt Šīs vērtības kur mēs gribam. Mērķauditorija: Vai ir iemesls rakstīt to veic ar b vienāds, nevis tikai, izmantojot numuri un komats? Conner HARRIS: Jā, parasti darīt, ja jums ir funkcijas ar daudz argumentu. Tas bieži vien var būt, piemēram, karogi, ka jūs tikai vēlaties izmantot retos gadījumos. Un šādā veidā jūs varat only-- jums var atsaukties uz konkrētiem argumentiem ka jūs vēlaties izmantot non-standartvērtības, un jums nav izrakstīt ķekars karogi vienāds nepatiesa pēc tiem. Vai es varu uzrakstīt šo atkal noklusējuma vērtība, piemēram, b atbilst 2. Un tad es varētu darīt f FUNC, Es darīšu 4, 1 šoreiz. Un 17, kas ir par 4 brusas plus 1, kā jūs varētu gaidīt. Bet es varētu arī vienkārši saucam ar FUNC 4, un es nopirkšu 18, jo Man nav norādīts b. Tātad b izpaužas noklusēto vērtību 2. Labi, tāpēc tagad, ja jūs esat pēc kopā ar demo, ierakstiet šo līniju jūsu komandu ātri un redzēt, kas nāk uz augšu. Patiesībā, nedari to. Ierakstiet šo. Jums vajadzētu saņemt kaut kas līdzīgs šim. Tātad mtcars ir iebūvēts datu noteikti šīs demonstrācijas mērķiem, kas nāk with-- kas nāk pēc noklusējuma ar savu r izplatīšanu. Tas ir apkopojums par statistiku 1974 jautājums Motor Trend žurnālā par vairākiem dažādiem auto modeļiem. Tātad tur ir jūdzes uz vienu galonu, cylinders-- Es aizmirst to, ko disp is-- zirgspēku. Droši vien. Ja jūs vienkārši Google MT automašīnām, tad viens no pirmajiem rezultātiem būs no oficiāls r dokumentācija un tas izskaidros Visi šie datu lauki. Tātad svars is-- WT ir automobiļa svars tonnās. Q sek ir ceturksnis jūdžu laiks. Tāpēc tagad mēs varam darīt dažas jautras lietas Par MT automašīnām ir datu lauks. Tātad, mēs varam darīt lietas piemēram, rindu nosaukumiem, MT automašīnām. Un tas ir saraksts ar visiem rindas noteiktie dati, kas ir vārdi automašīnām. Mēs varam darīt colnames, MT automašīnas šo. Ja jūs mt automašīnas, sub-skaitliskā indekss, piemēram, 2. mēs otro kolonnu no Tas, kas būtu balonus. Mērķauditorija: Ko jūs darījāt? Conner HARRIS: es drukāti mt automašīnas, kronšteini e, kas deva man otro kolonna no mt automašīnām. Vai, ja mēs gribam pēc kārtas, es varu rakstīt mtcars Comma 2, piemēram. Cita apaļas 2 komats, piemēram, ka. Un, kas iet jūsu rindā. Tas šeit tikai dod jums kolonna, bet kolonna kā vektors. Es tikko sapratu, tagad es aizmirsu demonstrēt dažas labas lietas par vektoriem ka jūs varat darīt ar indeksiem. Tāpēc ļaujiet man darīt tieši tagad. Tātad, pieņemsim do c gets-- liekot šo par pause-- 2 reizes 1 līdz 10. Tātad c ir tikai būs vektors 2 līdz 20. Es varu ņemt elementus, piemēram, tas, C2. Es varu iet ar vektoru piemēram, tas, C- let me izmantot citu nosaukumu nekā c, tāpat VEC c. Būtībā, es esmu dara šo, lai jūs nesaņemat sajaukt starp C kā vektors būvniecība funkcija, un tad c kā mainīgā nosaukums. VEC kronšteini c 4, 5, 7. Tas saņemsiet mani ceturto, piekto, un septiņi elementi masīva. Es varu darīt VEC, ielieciet negatīva indekss, piemēram, negatīva 4. Ka saņems mani tas ar ceturtais elements noņemts. Tad, ja es gribēju darīt šķēles, Es varu darīt VEC 2 līdz 6. 2 resnās 6 ir tikai vēl viens vektors, kas ir 2, 3, 4, 5, 6. Atklepo ka. Tātad jebkurā gadījumā, atpakaļ pie mt automašīnām. Tātad, pieņemsim darīt dažas regresiju. Teiksim modelis gets-- pieņemsim lineāri regress-- Es nezinu. Pirmkārt Darīsim pievienot mtcars, protams. Tātad [dzirdams] Modelis LM, pieņemsim regress jūdzes uz vienu galonu uz Tilde svaru. Un tad dati rāmis ir mtcars. Tātad kopsavilkums modelis. Labi, tāpēc tas izskatās mazliet sarežģītāk. Bet būtībā, redzot, kā tad, ja mēs mēģināt izteikt jūdzes uz vienu galonu kā lineāru funkciju no svara, tad mēs saņēmām šo līniju šeit, kas pārtver at 37.28. 37,28 būtu teorētiskie jūdzes vienu galonu auto, kas sver nulli. Un tad par katru papildu tonnu, jūs pieklauvēt apmēram piecas jūdzes uz vienu galonu off no tā. Abi šie koeficienti jums var redzēt, standarta kļūdas tur. Un tie ir ļoti statistiski nozīmīga. Tātad, mēs varam būt ļoti noteikti 1 e 10 uz negatīvo 10. Tātad 1 reizes kaut ko negatīvu 10, ka, ja jūs veicat smagāks auto, tas būs sliktāks jūdzes uz vienu galonu. Vai arī mēs varam pārbaudīt kādu citu modeli. Tāpat vietā regresē šo par svaru, pieņemsim regresēt to uz žurnāla svara, jo varbūt efektīvai svara gada nobraukums ir kaut kā nav lineāra. Tas deva mums r brusas no 0.7528. Tātad, pieņemsim mēģināt šo. Šoreiz pieņemsim darīt atšķirīgs mainīgs, too. Model2. Tātad kopsavilkums, model2. Labi, tāpēc atkal mēs saņēmām mūsu atbilstošāko līniju šeit. Un tas LAIKU_ tas ir saprotams, būtībā, ka katru reizi, kad palielināt svaru auto ar koeficientu e jūs zaudējat šo vairākas jūdzes uz vienu galonu. Un tā šoreiz mūsu atlikušo standarts kļūda it-- ka nav svarīgi, tiešām. Atlikušais standarta kļūda ir būtībā tikai standarta kļūda kas jums ir pa kreisi pēc tam, kad atņemt tendence līniju. Un mūsu r šeit brusas ir 0.81, kas ir nedaudz labāk nekā tas, ko mums bija pirms 0.52. Un tāpēc tagad pieņemsim pievienot Termins šo regresu. Tātad pieņemsim regresēt jūdzes uz vienu galonu gan uz žurnāla svaru un, pieņemsim darīt, Q jūdzes, ceturtdaļa jūdžu laiks. OK, tai jābūt the-- visas tiesības, qsec. Qsec. Actually-- žēl, ko? Ļaujiet man nosaukt šo kaut ko cits bez model2. Ļaujiet man nosaukt šo model3. Un tāpēc tagad mēs varam darīt kopsavilkuma model3. Un tā atkal, tas ir pamatā ko jūs varētu sagaidīt. Jums ir pozitīva pārtvert. Efektīva palielinot svars ir negatīvs. Un efektīva palielinot ceturksnis jūdze laiks ir pozitīva, bet gan mazāk nekā svara. Tagad intuitīvi, jūs varat veikt sajūtu sakot domāt par sporta automašīnām. Tur ir ļoti liela paātrinājuma, Ļoti īsā ceturtdaļjūdzi reizes. Viņi arī gatavojas izmantot vairāk gāzes, tā kā vairāk saprātīgi automašīnas dodas ir lēnāka paātrinājumu, augstākas ceturtdaļjūdzi reizes, un patērē mazāk gāzes ,, tāpēc augstākas jūdzes uz vienu galonu. Liels. Un tāpēc tagad ir pienācis laiks gabals kaut kas līdzīgs šim. Tātad pieņemsim do-- tik tukša kauli mēs varam darīt plots-- jo es esmu pievienots šo informāciju rāmi before-- mēs varam vienkārši darīt gabalu, WT mpg. Padarīt šo mazliet lielāks. Tur, mēs būtībā have a izbārstīt gabals, bet punkti ir sava veida grūti saprast, par šo. Es neatceros nesagatavots ko sintakse ir mainīt zemes gabalu. Tāpēc es domāju, ka tas būs labs laiks audzināt, tur ir ļoti jauks Iebūvēts palīdzība iezīme, palīdzība pēdiņām funkcijas nosaukums. Mēs audzināt būtībā kaut kas jūs vēlaties. Es domāju, ka es tiešām to izdarītu tips vienāds p punktiem gabaliem. Vai tas kaut ko mainīt? Un nē, nav īsti. Viss kārtībā. Kādu iemeslu dēļ, kad man bija šis manā datorā, kamēr atpakaļ, visi izbārstīt punkti bija daudz skaidrāks. Jebkurā gadījumā, ir izkliedes veida redzams? Tur ir viens tur. Daži tur, daži tur. Jūs varat kārtot redzēt, vai ne? Tātad, ja mēs gribam, lai pievienotu atbilstošāko līniju uz šo zemes gabalu šeit, kas ir nedaudz tukša bones-- ļaujiet man to mazliet jaukāku. Galvenais ir vienāds pret svaru. Jūdzes uz vienu galonu. Atkal, jūs varat redzēt, cik noderīgs izvēles argumenti šeit ar arī kam nav likt lietas noteiktā secībā ar tastatūras argumentiem ja Jums ir zemes gabalu, jo tie aizņemt daudz argumentu. Xlab vienāds svars, svars, tonnas. Viss kārtībā. Labi, jā, šī ierīce tiek mazliet kaitinošas. Bet jūs varat redzēt veida tur augšā, tur ir diagramma nosaukums pusē. Vairāk nekā šeit there's-- uz grunts šeit ir ass etiķetes. Es neatceros nesagatavots ko komandas ars-- kādi funkcijas ir palielināt lielums šīm uzlīmēm un nosaukumiem, bet viņi tur. Un tāpēc, ja mēs gribam, lai pievienojiet atbilstošāko līniju, mēs varētu darīt kaut ko like-- I ir sintakse rakstīts šeit. Tik atceros, mēs vienkārši pievienojiet modeli bija mpg, svars, mtcars. Un tāpēc, ja es gribēju, lai pievienotu atbilstošāko line, es varētu darīt, b līnijas modeli. Un boom, mums ir atbilstošāko līniju. Tas ir sava veida grūti redzēt vēlreiz. Es esmu diezgan atvainojos par tehnoloģiskās grūtības. Bet tas darbojas būtībā augšas pa kreisi uz leju pa labi. Un, ja mērogs būtu lielāks, jūs varētu redzēt ka krustošanās ir tas, ko jūs varat atrast no kopsavilkuma statistiku ja jūs tipa kopsavilkuma modeli. Labi, tāpēc es ceru, ka visi saņem kaut sajūtu par to, kas R ir, kas tas ir labs. Jūs varētu darīt daudz nicer gabalus nekā tas par savu laiku, ja vēlaties. Tātad ārvalstu funkciju saskarni. Tas ir kaut kas nav tipiski ietverts ievadā lekcijās vai ievada kaut par r. Tas nav iespējams, jūs gatavojas to vajag. Tomēr, es atklāju, ka noderīgi mana projekti pagātnē. Un tur nav labs apmācība par to tiešsaistē. Tāpēc es esmu tikai gatavojas skriešanās jūs visus ar šo un tad jūs esat brīvi atstāt. Un tā ārzemju funkcija saskarne ir kas Jūs varat izmantot, lai izsauktu, lai redzētu funkcijas ar R. iekšēji, R ir veidota uz C. R aritmētiskais ir tikai C ir 64-bitu peldošā komata aritmētika, kas ir tipa double [nedzirdama]. Un jūs varētu vēlēties darīt šis ķekars iemeslu dēļ. Attiecībā uz vienu, R tiek interpretēts, tas ir nav apkopoti uz leju, lai mašīnu kodu. Tātad jūs varat pārrakstīt savu iekšējās cilpas C un pēc tam iegūt priekšrocības, izmantojot R. sajūta tas ir mazliet ērtāk nekā C. Tas ir labāk grafikus iekārtas un plauktiņš. Un, kamēr vēl ir iespēja saņemt maksimālais ātrums no iekšējās cilpas, kas ir, ja jūs tiešām to vajag. Atkārtoti esošās C bibliotēkas, tas ir arī svarīgi. Ja jums ir kāda C bibliotēku, piemēram, Es nezinu, Furjē pārveido, vai kādu ļoti Archean statistika procedūra izmantota augstas enerģijas astrofizikā vai kaut ko, es nezinu. Augstas enerģijas astrofizika nav pat domāju, es domāju. Bet jūs varat darīt, ka tā vietā, uzrakstīt dzimtā R ostā no tiem. Un the-- un atkal, tāpat kā tad, ja jūs izskatās vairumā R noklusējuma bibliotēkās, par iekšējās, tad iekšējie ir gatavojas izmantot ārvalstu funkciju saskarne ir ļoti plaši. Tās būs lietas, piemēram, Furjē pārveido vai skaitļošanas korelācija koeficienti rakstīts C, un tie būs vienkārši ir R ietinēji ap tiem. Saskarne ir mazliet grūti. ES domāju tās grūtības ir pārspīlēta in instrukciju jūs atradīsiet daudz. Bet tomēr, tas ir mazliet mulsinoša. Un man nav bijusi iespēja atrast labu pamācību par to, tāpēc tas ir to tieši tagad. Atkal, tas viss segments ir vairāk par vēlāk. Neuztraucieties par kopēšanu viss uz leju tiesības tagad. Tāpēc šādus norādījumus ir par Unix līdzīgu sistēmu, Linux, BSD, OS X. Es nezinu kā tas darbojas uz Windows, bet, lūdzu, vienkārši nav darīt savu galīgais projekts par Windows. Jūs tiešām nevēlos. Unix ir daudz labāks komplekts up ikdienas plānošanu. Tātad, būtībā ārvalstu funkcija interfeisu. Ja jūs vēlaties rakstīt C funkcija izmantošanai ar R, tas ir veikt visus argumenti kā norādes. Tātad vientuļajiem vērtībām, šis nozīmē tas norādīja uz vērtību. Par bloki, tas ir rādītājs uz pirmā elementa, kas ir tas, kas masīvs vārdi patiesībā nozīmē. Atkal, tas ir kaut kas jums vajadzētu būt diezgan pilnīgi noteikti pēc lpp noteikti pieci. Array nosaukumi ir tikai norādes pirmajam elementam, Tipa peldošā komata ir dubultā. Un jūsu uzdevums ir atgriezties spēkā neesošu. Vienīgais veids, ka tā var faktiski pateikt R, kas ir noticis ir grozot atmiņu, R deva to caur ārvalstu funkcijas interfeiss. Tāpēc es esmu uzrakstījis šo Piemēram šeit, tas ir funkcija, kas skaitļo izmantošanu dot produkts no diviem vektoriem. Tas aizņem divus argumentus, vec1, vec2, kas ir paši vektori, un pēc tam n, kas ir garums, jo atkal, R ir celta [dzirdams], lai noskaidrotu garums vektoru, bet C nav. In C, vektori ir patvaļīgs norobežota rieciens atmiņas. Tātad, kā jūs varat aprēķināt DOT produktus ir tikai noteikt šo out parametrs līdz nullei, un tad atkārtot, izmantojot no 1 līdz star n, jo n ir rādītājs ar garumu, vienkārši pievienot kaut ko šo out parametrs. Un tas var būt laba prakse ja jūs gatavojas darīt Tas uzrakstīt divas atsevišķas C funkcijas. Viens no tiem has-- viens no viņiem vienkārši ņem argumentus un veidi ka viņi parasti būs C Tātad tas aizņem masīvs argumenti kā norādes. Bet viena vērtība argumenti, piemēram, n, tā vienkārši ņem par vērtībām, kopēt, bez norādes. Un tad tas nav [Dzirdams] out rādītājs. Un tad jūs varat būt atšķirīgs, galvenokārt, iesaiņojuma funkcija, kas būtībā rokturi prasības no ārvalstu funkcijas interfeiss jums. Kā jūs aicinu šo pētniecībā ir, kad jums ir jūsu uzdevums rakstīts C, Rakstot R cmd shlib, R komandu dalīta bibliotēka, foo dot c, vai kāds Jūsu faila nosaukums ir, un OS apvalks nav R terminālī. Un tas radīs bibliotēka sauc foo dot tik. Un tad jūs varat ielādēt to Mūsu skripts vai interaktīvi ar komandu dyn dot slodzi. Pēc tam, ka ir funkcija R sauc dot c. Tas aizņem argumentus, kas ir vispirms nosaukums funkciju C ka jūs vēlaties, lai izsauktu. Un tad visi parametri šai funkcijai, tie ir jābūt pareizai kārtībā. Jums ir izmantot šos veida piespiešana funkcijas kā skaitlim, kā dubultā, jo raksturs, un kā loģisks. Un tad, kad tas atgriež saraksts, kas atkal ir tikai asociētā masīvs no parametru nosaukumi un vērtības pēc tam, kad funkcija ir darbojies. Tātad, šajā gadījumā, jo punkts prod ir argumentus vec1, vec2, un int n, n ārā. Lai dot c mums ir dot prod, nosaukums funkcijas mēs aicinām, vec1, vec2, tips piespiest. Par nu vektora garums, Es tikko izvēlējos vec1 patvaļīgi. Tas būtu stabila teikt s skaitlim min garums vec1, garums vec2. Tad tikpat dubulto nullei, jo mums nav īsti aprūpi, ko tērēta out parametra, jo mēs esam nosakot to līdz nullei anyway. Un tad rezultāti būs liels saistīta masīvs būtībā vec1 ir kāds, vec2 ir neatkarīgi. Bet mēs esam ieinteresēti ārā, lai mēs varētu iegūt, ka out. Tas ir atkal, ļoti rotaļlieta piemērs no ārvalstu funkciju saskarni. Bet, ja jums ir, lai aprēķinātu dot produkti masveida vektoru cilpas, vai ja jums ir jādara kaut kas cits pa apli, un jūs nevēlaties, lai paļauties uz R, kas tas ir mazliet virs galvas iebūvēts tā, tas var būt noderīgs. Atkal, tas parasti nav ievada temats R. Tas nav ļoti labi dokumentēta. Es esmu tikai iekļaujot to tāpēc, ka Es atklāju, ka ir lietderīgi pagātnē. Tātad, slikta prakse. Es minēju, ka tur ir cilpa ar funkciju. Parasti jums nevajadzētu, jo valoda, nevis to izmantot. Pamatojoties uz to, kā R īsteno atkārtojuma iekšēji, tas var būt lēns. Viņi vienkārši arī izskatās neglīti. R rokturi vektoriem ļoti labi, tāpēc nereti jums nav nepieciešams, lai izmantotu to. Tad jūs varat parasti aizstāt vektoru bieži ar šīm funkcijām, ko sauc par augstu pasūtīt funkcijas, Karte, samazināt, Atrast, vai Filter. Es ņemšu tikai dot dažus piemēri par to, ko tie dara. Karte ir lielāks pasūtījums funkcija, jo tā veic funkciju kā argumentu. Tātad jūs varat dot to funkciju, Jūs varat arī tā masīvs, un tā piemēros funkcija uz katru masīva elementa un atgriezties jauno masīvu. Samazināt, būtībā jūs piešķirat tas masīvs, jūs arī tā funkcija, kas aizņem divus argumentus. To piemēros funkcija, pirmkārt, Pirmais arguments ar kādu starteris vērtību. Tad ar šo rezultātu otrajā. Tad ar šo rezultātu trešajā, pēc tam uz kuras rezultātā dod ceturto. Un pēc tam atgriezties, kad tas kļūst līdz beigām. Tā, piemēram, ja jūs vēlaties, lai aprēķināt visu elementu summa masīvā, nekā jūs varētu aicināt samazināt ar [dzirdams] samazināt summēšanu funkcija, tāpat FUNC a, b, atgrieztu plus b. Un tad sākt vērtību 0. Un visiem šiem, jūs varat atrast tos aprakstīts R dokumentācijā, jebkurā mācību grāmata par funkcionālā programmēšana. Tur ir arī šīs klases funkcijas sauktie pieteikties funkcijas, ko es don't-- viņi mazliet grūti izskaidrot, bet, ja jūs meklēt [nedzirdama] rezervēts ka es citēts sākumā, Viņš skaidro, tos diezgan labi viņa pielikums par R plānošanu. Vairāk par praksi, pievienojot to vektoriem. Yeah? Es domāju, ka man vajadzētu labot to. Šajā pirmajā rindā, VEC bultiņa, ka arrow nevajadzētu būt tur. Jūs varat piešķirt uz vektoru, atkal, ko pieņem garumu plus 1 un piešķirot kādu vērtību, kas. Tas paplašinās vektoru, vai jūs var darīt VEC vienāds C, VEC newvalue. Atkal, ja jūs izmantojat C ar viens arguments kā vektors, iegūtais hierarhija tiek saplacināts. Tātad jūs tikai iegūt vektors kas ir pagarināts līdz 1.. Nekad to izdarītu. Iemesls, kāpēc jūs nevajadzētu darīt, tas ir tas. Kad jūs piešķirt vektoru, to piešķir tai zināmu rieciens atmiņas. Ja jūs palielināt šo vektora lielumu, tas ir pārdalīt vektoru kaut kur citur. Un tā pārdale ir diezgan dārgi. Es negribu iedziļināties sīkāk par to, kā atmiņas sadalītāji tiek īstenoti uz operētājsistēmas līmenī, bet tas aizņem daudz laika atrast jaunu rieciens atmiņas. Un arī, ja esat pārdalīt partijām un partijām no pakāpeniski lielāks gabalos, jūs galu galā ar kaut ko sauc atmiņas fragmentācija, kur pieejamā atmiņa ir sadalīts daudz maz blokiem atmiņā sadalītāji viedokļa. Un tas kļūst grūtāk un grūtāk atrast atmiņas citām lietām. Tā vietā, ja jums ir nepieciešams, lai to izdarītu, ja Jums ir nepieciešams, lai augt vektoru no viena gala uz nākamo, tā vietā, pievienojot tam pastāvīgi, jums vajadzētu iepriekš piešķirt to. VEC bultiņa, vektora garums vienāds 1000, vai neatkarīgi. Un tad jūs varat vienkārši piešķirt uz slimības izraisītāja vērtībām vienā laiks, kad esat piešķirti to vienu reizi. Man uzbrauca tas, atkal, mans vasaras darbu kad es rakstīju VPI diferenciālis vienādojums solver. Ne simbolisks skaitliskais. Ideja ir tāda, ka pēc tam, kad esat vienu vērtību savu risinājumu, jūs izmantojat, ka, lai aprēķinātu nākamo. Tāpēc mans dabas naivs slīpums bija teikt OK, tāpēc es ņemšu sākt ar vektoru tas ir ievērojama vērtība. Aprēķināt no šīs nākamās vērtības kas iet uz manu risinājumu vektors, un pievienot to. Izveidot kaut kas cits, pievienot to. Tā gāja ļoti, ļoti lēni. Un, kad es sapratu, tas un es mainīja manu sistēmu no pievienojot šim vektoru tāpat kā 10,000 līdz 100,000 reizes, tikai iepriekš piešķirot vektoru un tikai darbojas ar to. Es saņēmu vairāk nekā 1000 reizes ātrumu augšu. Tātad tas ir ļoti bieži lamatas R programmēšanu. Ja jums ir nepieciešams, lai izveidotu vektoru gabalā gabals, iepriekš piešķirt to. Vēl viena kopīga ceļojums up-- šis ir mans pēdējais slide, nav worry-- ir kļūdu apstrādi. R, lai būtu atklāti, nav patiešām ļoti labi. Ir daudz problēmas, kas var rasties. Piemēram, ja jums masīvs vai vektors no funkciju ka jūs gaidījām viens vērtība nāk no, vai otrādi, un jūs iet, ka uz funkciju, kas jūs rakstījāt gaidījis vienu vērtību, kas var būt problēma. Dažas funkcijas atgriezties null tāpat kā, teiksim, lasot no neeksistējošā atslēga sarakstā. Bet null nav līdzīgs C kur, ja jūs mēģināt lasīt no vecās rādītājs, [nedzirdama] null rādītāju, tas tikai SEG kļūdas un ja tu esi savā atkļūdotājs tas stāsta jums, kur tieši jums ir. Tā vietā, null būs do-- funkcijas darīs neprognozējamas lietas ja viņi roku null. Tāpat, ja jūs pārņēma max null, tā došu jums negatīvu bezgalību. Un tā, jā. Un tā tas notika man vienreiz, kad man bija mainījies ķekars laukiem manā sarakstā struktūrā reiz nemainot tos citur kad es lasīju no tiem. Un tad es saņēmu visādas izlases Infinity rezultāti augkopība up un es ne jausmas, kur tie nāca no. Un diemžēl, tur ir nav reālu R stingrs režīms kur jūs varat pateikt, ja kaut kas Izskatās, ka tas varētu būt kļūda, vienkārši apstāties tur, lai es varētu būt disciplinēti un noteikt, ka. Tomēr ir kaut kas sauc stop ja ne. Tas ir līdzvērtīgs C s apgalvot, ja jūs esat runājuši par to. Es nedomāju, ka C apgalvot ir lekcija temats, bet jūsu daļas vadītāja varētu būt devusies pār to. Un pārtraukt, ja nav būtībā aizņem kādu predikatīvu, tāpēc jebkurš paziņojums, ka var būt patiess vai nepatiess. Un, ja tas ir nepatiesa, tas apstājas savu programmu. Tā stāsta jums tieši to, kas jums līnija bija un kādā stāvoklī neizdevās. Un šī ļoti noderīgs, piemēram, vesels saprāts pārbaudi, funkciju ieejas. Tātad, ja jums ir funkcija un jūs sagaida, teiksim, ja jums ir jāsniedz man datumu, es gribu datumi būt tikai vektors garums 1 un kaut kur starp 1 un 31. Un, ja ne, es zinu kaut kas ir nogājis greizi. Un es izvēlos, lai apturētu tur pirms tam ir izlases atsitiena efektu ar kodu ka tas ir grūtāk izsekot cauri. Tātad tas ir viens no iespējamiem izmantot pieturas, ja ne. Jebkurā gadījumā, OK. Tā ka ir beigas. Paldies jums tik daudz par ierašanos. Esmu rangs amatieru pie šī. Tik žēl, ja jūs esat garlaicīgi vai sajaukt vai ko jūs esat. Es esmu laimīgs, lai jautājumus pa e-pastu at connorharris@college.harvard.edu~~pobj. Tas attiecas arī uz visiem skatoties šo dzīvo vai vēlāk. Turklāt, lai gan es neesmu TF, es esmu arī ļoti gatavi kalpot kā neoficiāls padomdevējs ikvienam, kurš ir izmantojot R gala projektā. Ja jūs vēlaties, ka, tad tikai runāt ar savu TF un tad rakstiet man e-pastu, lai Es zinu, ko jūs strādājat un lai es varētu izveidot tikšanos reizes ar jums, ja jūs vēlaties. Tātad vēlreiz, liels paldies. Es ceru, ka jums patika. Mērķauditorija: [nedzirdama]. Conner HARRIS: Protams. Mērķauditorija: Kādu projektu būtu CS students izmanto R? Conner HARRIS: Tātad, ja jūs nevar darīt kaut kas ir tīri datu ieguves, piemēram, un tur Ir daudz lietas jūs varētu darīt ar to ar datiem ieguves rūpniecība un mašīna mācīšanās. Jūs varētu vēlēties izmantot R sastāvdaļa kaut ko. Es audzināja, Sākotnēji piemēru no tā, ja jūs esat rakstiski mājas lapā un jūs vēlaties, lai palaistu automatizētu statistiskā analīze servera logs noteiktā laikā katru dienu, kas varētu būt kaut kas ir ļoti viegli darīt tikai īss R skripts, ka jūs varat ieplānot palaist katru nakti, piemēram. Un es esmu pārliecināts, ja tur ir kāds iemesls, jūs vēlaties gribu statistiku vai grafikus iespējas un automātiski vietā ir šo skrējienu par pienākumu sadarboties ar lietām Excel, Piemēram, tas ir kaut kas jūs varētu vēlēties izmantot R. Tātad vairs jautāt pirms es atstāt? Nē? Labi, labi, atkal, paldies Jūs ļoti daudz nāk.