1 00:00:00,000 --> 00:00:05,691 2 00:00:05,691 --> 00:00:07,690 CONNOR HARRIS: Še vedno sem mislim nekaj zanimiv video 3 00:00:07,690 --> 00:00:12,570 proizvaja strokovno svetovanje ki uporablja R veliko v svojem delu. 4 00:00:12,570 --> 00:00:16,329 >> Pripovedovalec: Kaj se skriva za statistiko, Google Analytics, in vizualizacije 5 00:00:16,329 --> 00:00:19,770 da današnji najsvetlejši podatkov znanstveniki in poslovnimi voditelji zanašati na 6 00:00:19,770 --> 00:00:22,012 da bi močne odločitve? 7 00:00:22,012 --> 00:00:23,540 Vedno si ga ne sme videti. 8 00:00:23,540 --> 00:00:24,790 Ampak to je tam. 9 00:00:24,790 --> 00:00:29,460 To se imenuje R, open source r-- statistični programski jezik 10 00:00:29,460 --> 00:00:32,630 da so podatki, strokovnjaki svetovna nad uporabo za vse, 11 00:00:32,630 --> 00:00:35,350 od kartiranja širšem socialnem in tržne trende na spletu 12 00:00:35,350 --> 00:00:39,210 k razvoju finančnega in podnebje Modeli, ki pomagajo voziti naše gospodarstvo 13 00:00:39,210 --> 00:00:40,780 in skupnosti. 14 00:00:40,780 --> 00:00:44,910 >> Ampak kaj točno je R in kjer je R začeti? 15 00:00:44,910 --> 00:00:48,620 No prvotno, R začelo tukaj z dvema profesorji 16 00:00:48,620 --> 00:00:51,950 ki je želel boljši statistični Platforma za svoje učence. 17 00:00:51,950 --> 00:00:56,030 Tako so ustvarili eno vzoru Po statističnem jeziku S. 18 00:00:56,030 --> 00:01:00,480 Ti, skupaj s številnimi drugimi, hranijo delajo na in s pomočjo raziskav, 19 00:01:00,480 --> 00:01:05,489 ustvarjanje orodij za R in iskanju Nove aplikacije za R vsak dan. 20 00:01:05,489 --> 00:01:07,750 >> Zahvaljujoč temu je svetu napor skupnost, 21 00:01:07,750 --> 00:01:11,850 R hranijo raste s tisoči za uporabniško ustvarjenih knjižnic zgrajenih 22 00:01:11,850 --> 00:01:15,500 za povečanje R funkcionalnost in -množica nabavljal potrjevanje kakovosti 23 00:01:15,500 --> 00:01:19,740 in podpora najbolj priznanih industrija voditelji na vseh področjih, ki 24 00:01:19,740 --> 00:01:25,040 uporablja R. Kar je super, ker R je najboljši, kaj počne. 25 00:01:25,040 --> 00:01:28,540 Hitro nadobudne strokovnjake in enostavno razložiti, interakcijo z, 26 00:01:28,540 --> 00:01:33,790 in hitro vizualizacijo podatkov, ki prikazuje njihovo rastoča skupnost uporabnikov R po vsem svetu 27 00:01:33,790 --> 00:01:36,380 in videli, kako odprto kodo R še naprej oblikovati 28 00:01:36,380 --> 00:01:39,340 prihodnost statistični analiza in znanost podatkov. 29 00:01:39,340 --> 00:01:44,660 30 00:01:44,660 --> 00:01:47,710 >> CONNOR HARRIS: OK, super. 31 00:01:47,710 --> 00:01:50,360 Torej, moji predstavitvi bo malo bolj trezen. 32 00:01:50,360 --> 00:01:54,380 To ne vključuje, da je veliko razburljiva glasbe v ozadju. 33 00:01:54,380 --> 00:01:59,160 Ampak kot ste videli v videu, R je nekako splošnega programa namen jeziku. 34 00:01:59,160 --> 00:02:03,720 Vendar pa je bil ustvarjen predvsem za statistično delo. 35 00:02:03,720 --> 00:02:07,980 >> Torej, to je zasnovan za statistiko, za analizo podatkov, za rudarjenje podatkov. 36 00:02:07,980 --> 00:02:12,420 In tako boste lahko videli v veliko izbire projektiranja, da ustvarjalci R 37 00:02:12,420 --> 00:02:13,320 postavil. 38 00:02:13,320 --> 00:02:15,472 To je zasnovan za veliki meri, ljudje, ki niso 39 00:02:15,472 --> 00:02:17,930 strokovnjaki v programiranju, ki so samo pobral programiranje 40 00:02:17,930 --> 00:02:23,460 na strani, tako da lahko opravljajo svoje delo v družboslovno ali v statistiki 41 00:02:23,460 --> 00:02:25,440 ali karkoli. 42 00:02:25,440 --> 00:02:27,850 >> Ima veliko zelo pomembne razlike iz C. 43 00:02:27,850 --> 00:02:33,200 Ampak sintaksa in paradigme ki jih uporablja, so na splošno enaka. 44 00:02:33,200 --> 00:02:36,830 In bi se počutite precej veliko doma pravico off kij. 45 00:02:36,830 --> 00:02:38,520 To je nujno jezik. 46 00:02:38,520 --> 00:02:40,260 >> Ne skrbite preveč o tem Če ne poznate izraz. 47 00:02:40,260 --> 00:02:42,676 Ampak tam je razlikovanje med nujne, deklarativnih, 48 00:02:42,676 --> 00:02:43,810 in funkcionalno. 49 00:02:43,810 --> 00:02:47,600 Nujno samo pomeni, da bo izkazi, ki so v bistvu ukazi. 50 00:02:47,600 --> 00:02:52,340 In potem tolmač ali računalnik jim sledi, enega po enega. 51 00:02:52,340 --> 00:02:56,630 To je slabo natipkano, obstajajo nobene izjave tipa v R. 52 00:02:56,630 --> 00:02:59,130 >> In potem linije med različnimi vrstami 53 00:02:59,130 --> 00:03:03,920 so nekoliko bolj ohlapno kot so v ° C, npr. 54 00:03:03,920 --> 00:03:06,450 In kot sem rekel, da so Zelo obsežna ponudba 55 00:03:06,450 --> 00:03:15,610 za izrisovanje, za statistične analize, za podatkovno rudarjenje. 56 00:03:15,610 --> 00:03:19,540 To so tako, vgrajenega v jezik in, kot video je dejal, 57 00:03:19,540 --> 00:03:23,680 tisoče knjižnic tretjih oseb, ki si lahko prenesete in uporabite brezplačno 58 00:03:23,680 --> 00:03:25,340 z zelo ohlapnih pogojev za izdajo dovoljenja. 59 00:03:25,340 --> 00:03:28,800 60 00:03:28,800 --> 00:03:31,500 >> Torej na splošno, vam priporočam da pogledaš na teh dveh knjig 61 00:03:31,500 --> 00:03:34,610 če boš delati na R. One od njih je uradni R začetnik je 62 00:03:34,610 --> 00:03:35,110 vodič. 63 00:03:35,110 --> 00:03:38,660 To je vzdrževana z core razvijalci R. 64 00:03:38,660 --> 00:03:42,400 Lahko ga ponovno prenesete, brezplačno polnite in zakonito na tej povezavi tam. 65 00:03:42,400 --> 00:03:45,430 66 00:03:45,430 --> 00:03:49,869 Vsi ti diapozitivi so šli gor na internetu, na CS50 spletni strani 67 00:03:49,869 --> 00:03:50,660 potem se to naredi. 68 00:03:50,660 --> 00:03:53,690 Torej ni potrebe, da bi kopirali stvari navzdol besen. 69 00:03:53,690 --> 00:03:56,800 >> Drugi pa je učbenik s Cosma Shalizi, 70 00:03:56,800 --> 00:04:00,100 ki je statistika profesor na Carnegie Mellon, ki se imenuje Napredno podatkov 71 00:04:00,100 --> 00:04:02,160 Analiza mora iz Osnovna Point of View. 72 00:04:02,160 --> 00:04:04,010 To ni bil predvsem R knjiga. 73 00:04:04,010 --> 00:04:07,130 To je statistika knjiga in to je knjiga analiza podatkov. 74 00:04:07,130 --> 00:04:11,990 Ampak to je zelo dostopna za ljudi, ki imajo trohico statistike znanja. 75 00:04:11,990 --> 00:04:13,750 >> Nikoli nisem sprejela formalno seveda. 76 00:04:13,750 --> 00:04:17,269 Jaz samo vem, bitov in kosov iz različnih zavezniških predmetov 77 00:04:17,269 --> 00:04:18,579 da sem sprejela tečaje. 78 00:04:18,579 --> 00:04:21,839 In sem bil sposoben razumeti je zelo dobro. 79 00:04:21,839 --> 00:04:25,630 >> So podani vsi podatki v R. Izdelani so iz R 80 00:04:25,630 --> 00:04:30,280 imajo pa tudi oglasi kodne pod vsako sliko, da vam povem, 81 00:04:30,280 --> 00:04:33,270 kako vam bo vsak lik z R kode. 82 00:04:33,270 --> 00:04:37,400 In to je zelo koristno, če ste poskušali posnemati 83 00:04:37,400 --> 00:04:38,650 nekateri sliki vidite v knjigi. 84 00:04:38,650 --> 00:04:47,840 >> In spet free download stat.cmu.edu/cshalizi/ Oprostite, 85 00:04:47,840 --> 00:04:50,230 da bi bilo treba drastično tilda cshalizi. 86 00:04:50,230 --> 00:04:53,150 Poskrbel bom, da se popravi, da ko so uradne diapozitive gredo gor. 87 00:04:53,150 --> 00:04:57,000 / ADAfaEPoV ki je le akronim naslova knjige. 88 00:04:57,000 --> 00:04:59,850 89 00:04:59,850 --> 00:05:02,500 >> Tako splošna caveats-- R ima veliko zmogljivosti. 90 00:05:02,500 --> 00:05:05,331 Jaz sem samo še, da bi lahko pokrili površina veliko stvari. 91 00:05:05,331 --> 00:05:08,580 Tudi prvi del seminarja se bo nekaj podatkovnega smetišče. 92 00:05:08,580 --> 00:05:11,437 Jaz sem zelo žal zaradi tega. 93 00:05:11,437 --> 00:05:13,770 V bistvu, bom vam predstavil veliko stvari 94 00:05:13,770 --> 00:05:15,350 Pravica off kij, bo v najkrajšem možnem času. 95 00:05:15,350 --> 00:05:17,058 In potem pridemo do zabaven del, ki je 96 00:05:17,058 --> 00:05:20,570 demo, kjer ti lahko pokažem vse da smo govorili na zaslonu. 97 00:05:20,570 --> 00:05:23,321 In lahko igral na svoje. 98 00:05:23,321 --> 00:05:26,070 Tako da se dogaja, da je veliko tehnična stvar vrže gor na tukaj. 99 00:05:26,070 --> 00:05:28,060 Ne skrbite kopiranju vse to dol. 100 00:05:28,060 --> 00:05:31,740 Ker A, lahko dobite vse stvari na spletni strani CS50 kasneje. 101 00:05:31,740 --> 00:05:37,780 In B, to ni res, da je pomembno, da si zapomnimo to iz diapozitivov. 102 00:05:37,780 --> 00:05:40,462 To je bolj pomembno, da dobiš nekaj intuitivno objekt z njo 103 00:05:40,462 --> 00:05:44,220 in da prihaja iz samo igranje okrog. 104 00:05:44,220 --> 00:05:45,720 >> Torej, zakaj uporabljati R? 105 00:05:45,720 --> 00:05:49,440 V bistvu, če imate projekt, ki vključuje rudarstvo velikih količin podatkov, podatki 106 00:05:49,440 --> 00:05:52,664 vizualizacija, si morajo uporabljati R. Če ste 107 00:05:52,664 --> 00:05:55,830 početje komplicirana statistične analize, da bi bilo težko v Excelu, 108 00:05:55,830 --> 00:05:58,010 na primer, bi bilo se good-- prav tako 109 00:05:58,010 --> 00:06:00,506 če delaš statistično Analiza, ki je avtomatizirano. 110 00:06:00,506 --> 00:06:02,130 Recimo, da ste vzdrževanje spletne strani. 111 00:06:02,130 --> 00:06:06,320 In želite prebrati dnevnik strežnika vsak dan in zbrati nekaj seznam, 112 00:06:06,320 --> 00:06:10,320 kot top držav, ki vaši uporabniki prihajajo iz 113 00:06:10,320 --> 00:06:15,100 nekatere zbirne statistike o tem, kako dolgo preživijo na vaši spletni strani ali karkoli. 114 00:06:15,100 --> 00:06:16,910 In želite zagnati to vsak dan. 115 00:06:16,910 --> 00:06:20,280 >> Zdaj, če ste to počeli v Excelu, boš moral iti na svoj strežnik log, 116 00:06:20,280 --> 00:06:23,490 uvoziti, da v Excel podatkov preglednice, 117 00:06:23,490 --> 00:06:24,910 teči vse analize ročno. 118 00:06:24,910 --> 00:06:27,100 Z R, lahko samo napisati en scenarij. 119 00:06:27,100 --> 00:06:29,520 Načrtujete jo teči vsak dan iz vašega operacijskega sistema. 120 00:06:29,520 --> 00:06:33,657 In potem vsako noč ob 2:00 zjutraj, ali ko ga urnik za vožnjo, 121 00:06:33,657 --> 00:06:35,990 da bo pogledati skozi vaš internetnega prometa za ta dan. 122 00:06:35,990 --> 00:06:39,010 In potem ga je naslednji dan, boste imajo to sijoče, novo poročilo 123 00:06:39,010 --> 00:06:41,710 ali karkoli z vsemi informacije, ki jih prosil za. 124 00:06:41,710 --> 00:06:44,960 125 00:06:44,960 --> 00:06:50,217 >> Torej v bistvu R je za Cisco programiranje versus Cisco analizo. 126 00:06:50,217 --> 00:06:51,050 Predhodno je naredil. 127 00:06:51,050 --> 00:06:53,104 Pojdimo v resničnih stvari. 128 00:06:53,104 --> 00:06:55,020 Tako obstajajo tri realne vrste v jeziku. 129 00:06:55,020 --> 00:06:56,120 Tam je številska vrsta. 130 00:06:56,120 --> 00:07:01,250 Obstaja vrsta razlike med cela števila in plavajoče točke, 131 00:07:01,250 --> 00:07:02,769 ampak ni res. 132 00:07:02,769 --> 00:07:04,560 Tam je znak tip, ki je strune. 133 00:07:04,560 --> 00:07:07,100 In tam je logična tip, ki je Booleans. 134 00:07:07,100 --> 00:07:11,080 >> In lahko pretvorite med vrstami uporabo teh funkcij kot številčna, 135 00:07:11,080 --> 00:07:15,220 kot lik, kot je logično. 136 00:07:15,220 --> 00:07:17,510 Če pokličete, na primer, kot številčna na vrvico, 137 00:07:17,510 --> 00:07:20,030 bo skušala prebrati ta niz kot število, enako 138 00:07:20,030 --> 00:07:25,897 da a2i in scanf storiti, in C. Če pokličete tako številčna na true ali false 139 00:07:25,897 --> 00:07:26,980 to bo pretvoril na 1 ali 0. 140 00:07:26,980 --> 00:07:29,110 Če pokličete kot značaja na karkoli, da bom 141 00:07:29,110 --> 00:07:32,550 pretvorbo, da na A Niz predstavitev. 142 00:07:32,550 --> 00:07:34,990 >> In potem so vektorji in matrike. 143 00:07:34,990 --> 00:07:37,580 Torej vektorji so v bistvu 1 dimenzionalni nizi. 144 00:07:37,580 --> 00:07:40,600 So tisto, čemur pravimo nize v C. Matrice, 2 dimenzionalni nizi. 145 00:07:40,600 --> 00:07:42,350 In potem višje dimenzionalni nizi si lahko 146 00:07:42,350 --> 00:07:48,560 imajo 3, 4, 5 dimenzije ali karkoli iz številčne vrednosti, nizov, 147 00:07:48,560 --> 00:07:52,860 od logične vrednosti. 148 00:07:52,860 --> 00:07:55,380 >> Imate tudi sezname, ki so nekakšna asociativni array. 149 00:07:55,380 --> 00:07:57,390 Grem v to malo. 150 00:07:57,390 --> 00:07:59,390 Torej, ena pomembna stvar da je bil ljudem v R 151 00:07:59,390 --> 00:08:01,470 je, da ni resnični, čisti atomski vrste. 152 00:08:01,470 --> 00:08:05,870 Ni dejanska razlika med število, kot številčno vrednostjo, 153 00:08:05,870 --> 00:08:07,920 in seznam številčne vrednosti. 154 00:08:07,920 --> 00:08:12,370 Numerične vrednosti, ki so dejansko Enako kot vektorjev dolžine 1. 155 00:08:12,370 --> 00:08:14,959 Kar ima številne pomembne posledice. 156 00:08:14,959 --> 00:08:17,500 Ena, to pomeni, da lahko narediš stvari zelo enostavno, ki vključujejo 157 00:08:17,500 --> 00:08:21,037 kot dodajanje številko vektorja. 158 00:08:21,037 --> 00:08:23,120 R bo v bistvu slika ven, kaj misliš s tem. 159 00:08:23,120 --> 00:08:24,610 In jaz bom tisti, ki v sekundi. 160 00:08:24,610 --> 00:08:27,930 To tudi pomeni, da ne obstaja način za tip checker-- v obsegu 161 00:08:27,930 --> 00:08:30,530 da je nekaj takega obstaja v r-- povedati 162 00:08:30,530 --> 00:08:33,780 ko ste opravili v enotnem vrednosti ko se pričakuje, da matrično ali obratno. 163 00:08:33,780 --> 00:08:39,159 In da lahko povzročijo nekatere čudno težave, da sem tekel v ko 164 00:08:39,159 --> 00:08:42,252 Bil sem s pomočjo raziskave med moje poletno delo. 165 00:08:42,252 --> 00:08:43,710 In ni mešani tip nizi. 166 00:08:43,710 --> 00:08:46,543 Torej, ne morete imeti niz bili Prvi elementi se, ne vem, 167 00:08:46,543 --> 00:08:49,332 niz "Janez" in Drugi element je številka 42. 168 00:08:49,332 --> 00:08:52,540 Če boste poskušali to storiti, potem boste dobili Vse samo pretvori v niz. 169 00:08:52,540 --> 00:08:54,760 Torej imamo niz John, niz 42. 170 00:08:54,760 --> 00:08:58,250 171 00:08:58,250 --> 00:09:02,025 >> Tako nenavadno skladenjska features-- najbolj R je sintaksa zelo podobna C. 172 00:09:02,025 --> 00:09:04,690 Obstaja nekaj pomembnih razlik. 173 00:09:04,690 --> 00:09:05,620 Tipkanje je zelo šibka. 174 00:09:05,620 --> 00:09:07,360 Torej ni nobenih deklaracije spremenljivk. 175 00:09:07,360 --> 00:09:12,670 Odstop uporablja čudno Operator napak manj kot vezajem. 176 00:09:12,670 --> 00:09:15,340 Komentarji so z lojtra. 177 00:09:15,340 --> 00:09:19,230 Mislim, da zdaj dni, smo klic hashtag čeprav to ni res accurate-- ne 178 00:09:19,230 --> 00:09:21,810 dvojna poševnica. 179 00:09:21,810 --> 00:09:24,710 >> Modularne ostanki so s %% znaki. 180 00:09:24,710 --> 00:09:30,172 Delitev Integer je z% /%, kar je Zelo težko brati, ko je to predvideno 181 00:09:30,172 --> 00:09:30,880 na zaslonu. 182 00:09:30,880 --> 00:09:34,150 183 00:09:34,150 --> 00:09:37,200 Lahko dobite razpone števili z debelem črevesu. 184 00:09:37,200 --> 00:09:41,840 Torej 2,5 vam bo vektor za vse številke od 2 do 5. 185 00:09:41,840 --> 00:09:44,530 >> Nizi so one-indeksirane, ki vijaki veliko ljudi 186 00:09:44,530 --> 00:09:47,540 gor, če oni iz več tipičnih programskih jezikov, 187 00:09:47,540 --> 00:09:50,450 kot C, kjer je najbolj Stvari so nič indeksirane. 188 00:09:50,450 --> 00:09:54,420 Še enkrat, to je, če dediščina r je kot jezik, kot ne 189 00:09:54,420 --> 00:09:56,560 profesionalni programerji pride. 190 00:09:56,560 --> 00:09:59,680 Če ste sociologa ali ekonomist ali kaj podobnega 191 00:09:59,680 --> 00:10:01,980 in skušate uporabiti R v bistvu kot dodatek 192 00:10:01,980 --> 00:10:03,832 za vaše bolj pomembno strokovno delo, 193 00:10:03,832 --> 00:10:06,040 boste našli ena indeksiranje malo bolj naravno. 194 00:10:06,040 --> 00:10:09,890 Ker ste začeli štetje na 1 v vsakdanjem življenju, ne pa 0. 195 00:10:09,890 --> 00:10:13,260 >> Za-zank, to je podobno foreach konstrukt v PHP, 196 00:10:13,260 --> 00:10:17,090 ki jih boste dobili, da naučiti in-- kmalu. 197 00:10:17,090 --> 00:10:22,540 Ki je za vrednost v vektorju in potem lahko to storite z vrednostjo stvari. 198 00:10:22,540 --> 00:10:24,040 OBČINSTVO: To je prišel gor na predavanju. 199 00:10:24,040 --> 00:10:26,248 CONNOR HARRIS: Oh, to je prišli do predavanje, odlično. 200 00:10:26,248 --> 00:10:29,815 OBČINSTVO: Naloga, je naj bi točke od desne proti levi? 201 00:10:29,815 --> 00:10:31,440 CONNOR HARRIS: Od desne na levo, ja. 202 00:10:31,440 --> 00:10:34,720 Lahko si o njej mislijo kot vrednost na pravica porinil v spremenljivko 203 00:10:34,720 --> 00:10:36,240 na levi. 204 00:10:36,240 --> 00:10:36,781 OBČINSTVO: OK. 205 00:10:36,781 --> 00:10:39,770 206 00:10:39,770 --> 00:10:42,330 >> CONNOR HARRIS: In končno funkcija skladnja je malo čudno. 207 00:10:42,330 --> 00:10:48,460 Imate ime funkcije foo, dodeljeno na to funkcijo za ključne besede, ki mu sledi 208 00:10:48,460 --> 00:10:51,530 z vsemi argumenti in nato telesne funkcije po tem. 209 00:10:51,530 --> 00:10:53,280 Spet lahko te stvari zdi malo čudno. 210 00:10:53,280 --> 00:10:57,181 Ti bom postala druga narava po delate z jezikom za bit. 211 00:10:57,181 --> 00:10:58,930 Torej vektorjev, način si zgraditi vektor 212 00:10:58,930 --> 00:11:04,550 je, da tip C, kar je ključna beseda, potem vse številke, ki jih želite ali godala 213 00:11:04,550 --> 00:11:06,490 ali karkoli. 214 00:11:06,490 --> 00:11:07,995 Argumenti tudi vektorji. 215 00:11:07,995 --> 00:11:09,620 Ampak postane posledica matrika sploščena. 216 00:11:09,620 --> 00:11:14,385 Torej, ne morete imeti nizi kjer nekateri elementi so enoposteljne številke 217 00:11:14,385 --> 00:11:17,010 in nekateri elementi so nizi sami. 218 00:11:17,010 --> 00:11:20,010 >> Torej, če boste poskušali zgraditi Niz bili prvi element 4 219 00:11:20,010 --> 00:11:22,370 in drugi element je matrika 3,5 boste 220 00:11:22,370 --> 00:11:25,890 pravkar dobil tri elemente paleto, 4,3,5. 221 00:11:25,890 --> 00:11:27,760 Ne more biti mešanega tipa. 222 00:11:27,760 --> 00:11:32,290 Če poskušate brati ali pisati izven meja vektorja 223 00:11:32,290 --> 00:11:36,640 boste dobili to vrednost, imenovano NA ki stoji za manjkajočo vrednost. 224 00:11:36,640 --> 00:11:39,900 In to namenjeno kot statistikov, ki 225 00:11:39,900 --> 00:11:43,080 delajo z nepopolnimi podatkovnimi nizi. 226 00:11:43,080 --> 00:11:46,460 >> Če uporabite funkcijo, ki je domnevno vzeti le eno številko za array 227 00:11:46,460 --> 00:11:49,220 potem kaj boste dobili, tem funkcija preslika preko polja. 228 00:11:49,220 --> 00:11:52,130 Torej, če je vaša funkcija recimo traja število in vrne to kvadratnih. 229 00:11:52,130 --> 00:11:58,170 Si velja, da je za paleto 2,3,5 Kaj boste dobili je matrika 4,9,25. 230 00:11:58,170 --> 00:12:00,010 >> In to je zelo koristen ker to pomeni, da vam 231 00:12:00,010 --> 00:12:03,374 ne bi bilo treba pisati za zank gre zelo preproste stvari, kot je uporaba 232 00:12:03,374 --> 00:12:05,040 funkcija za vse člane niza podatkov. 233 00:12:05,040 --> 00:12:08,557 Ki bi, če delate z velikimi zbirk podatkov, kar morate storiti veliko. 234 00:12:08,557 --> 00:12:10,390 Binarne funkcije aplikativna vnos z vpisom. 235 00:12:10,390 --> 00:12:12,430 Grem v to. 236 00:12:12,430 --> 00:12:16,750 Lahko do njih dostopate z nizi ali vektorji z oglatimi oklepaji. 237 00:12:16,750 --> 00:12:22,300 Torej ime vektor oglati oklepaj 1 vam bo dal prvi element. 238 00:12:22,300 --> 00:12:25,510 Ime Vector oglati oklepaji 2 vam bo dal drugega elementa. 239 00:12:25,510 --> 00:12:27,530 >> Lahko prenese na vektorju indeksov in boste 240 00:12:27,530 --> 00:12:29,640 priti nazaj ven bistvu sub faktorjem. 241 00:12:29,640 --> 00:12:34,990 Torej lahko narediš vektorsko ime kotnika C, 2,4 in boste dobili ven vektor, ki vsebuje 242 00:12:34,990 --> 00:12:38,804 drugi in četrti elementi matrike. 243 00:12:38,804 --> 00:12:40,720 In če hočeš samo Hiter povzetek statistika 244 00:12:40,720 --> 00:12:47,529 vektorja podobnega interkvartilnimi Območje, mediana, največja, karkoli, 245 00:12:47,529 --> 00:12:49,820 lahko vpišete povzetek Ime vektor in dobil to ven. 246 00:12:49,820 --> 00:12:52,680 To ni res uporabno v programiranje, vendar če ste igranje 247 00:12:52,680 --> 00:12:55,990 okoli podatkovnih nizov, da je prav. 248 00:12:55,990 --> 00:12:58,650 >> Matrices-- bistvu višje dimenzionalni nizi. 249 00:12:58,650 --> 00:13:01,190 Imajo to posebno zapisu sintakso. 250 00:13:01,190 --> 00:13:07,620 Matrix s paleto, ki dobi napolnjena in-- Žal matriko s podatki, 251 00:13:07,620 --> 00:13:09,780 število vrstic, število stolpcev. 252 00:13:09,780 --> 00:13:13,180 Ko imate nekaj podatkov, da izpolni array bistvu gre od zgoraj navzdol 253 00:13:13,180 --> 00:13:13,380 prvi. 254 00:13:13,380 --> 00:13:14,190 Nato z leve proti desni. 255 00:13:14,190 --> 00:13:15,030 Torej, kot je ta. 256 00:13:15,030 --> 00:13:17,809 257 00:13:17,809 --> 00:13:19,600 In je R vgrajeno matrix množenja, 258 00:13:19,600 --> 00:13:24,310 spektralno razgradnja, diagonalizacije, veliko stvari. 259 00:13:24,310 --> 00:13:27,785 Če želite več dimenzionalno nizi, zato 3, 4, 5, 260 00:13:27,785 --> 00:13:29,410 ali karkoli dimenzije lahko to storite. 261 00:13:29,410 --> 00:13:34,400 Sintaksa je matrika dim enaka c, Nato seznam dimenzij. 262 00:13:34,400 --> 00:13:38,620 Torej, če hočeš 4 dimenzionalni array z dimenzijami, 4, 7, 8, 9, array, 263 00:13:38,620 --> 00:13:45,470 dim enaka c (4,7,8,9). 264 00:13:45,470 --> 00:13:51,180 >> Imate dostop do posamezne vrednosti z oklepaji prvi vstop vejica drugi vnos. 265 00:13:51,180 --> 00:13:54,870 Lahko dobite celotno rezine vrstic ali stolpcev. 266 00:13:54,870 --> 00:13:59,900 S tem nepopolno sintakso je samo vrstico številko vejico ali vejico stolpec 267 00:13:59,900 --> 00:14:00,400 številka. 268 00:14:00,400 --> 00:14:02,874 269 00:14:02,874 --> 00:14:04,540 Torej seznami so nekakšna povezano array. 270 00:14:04,540 --> 00:14:06,360 Imajo svojo sintakso tukaj. 271 00:14:06,360 --> 00:14:08,320 Spet ne besen kopirati vse to navzdol. 272 00:14:08,320 --> 00:14:11,370 To je samo zato, da ljudje skozi diapozitivov kasneje 273 00:14:11,370 --> 00:14:13,089 ima vse to v prijetni referenco. 274 00:14:13,089 --> 00:14:16,130 In to bo postalo zelo naravno enkrat Pravzaprav sem hodil skozi demosa. 275 00:14:16,130 --> 00:14:19,295 276 00:14:19,295 --> 00:14:20,920 Torej je navedenih v bistvu povezane nize. 277 00:14:20,920 --> 00:14:27,040 Lahko dostopate vrednote Ime seznama, znak za dolar, ključ. 278 00:14:27,040 --> 00:14:31,370 Torej, če je vaš seznam poimenovali foo, potem lahko dostopate tako. 279 00:14:31,370 --> 00:14:37,032 Lahko dobite celotno par ključ-vrednost s prehodom v indeksu oglati oklepaj. 280 00:14:37,032 --> 00:14:39,240 Če ste prebrali iz neobstoječega Ključ, boste dobili null. 281 00:14:39,240 --> 00:14:41,150 To ne bo napak. 282 00:14:41,150 --> 00:14:43,590 Stvar je v tem, R bo naredil, kot veliko z ničlo, kot je mogoče. 283 00:14:43,590 --> 00:14:46,580 In to lahko pomeni, da če ste ni pričakoval, da bi dobili null ven 284 00:14:46,580 --> 00:14:51,840 nekega seznama branje, boste dobili nekaj nepredvidljive napake še naprej navzdol 285 00:14:51,840 --> 00:14:52,620 linija. 286 00:14:52,620 --> 00:14:54,890 >> To se je zgodilo, da me je poletno delo, ko sem bil z uporabo R 287 00:14:54,890 --> 00:14:58,410 kjer sem se spremenila, kako neka Seznam je bil definiran v enem samem 288 00:14:58,410 --> 00:15:05,410 vendar pa pozneje ne spremeni na Koda, ki berejo vrednosti iz njega. 289 00:15:05,410 --> 00:15:10,190 In kaj se je zgodilo sem bil branje ničelne vrednosti iz tega seznama, 290 00:15:10,190 --> 00:15:13,090 jih poteka v funkcij in je zelo zmeden 291 00:15:13,090 --> 00:15:16,000 ko sem dobil vse vrste naključne neskončnost obrezovanje 292 00:15:16,000 --> 00:15:16,790 v to funkcijo. 293 00:15:16,790 --> 00:15:20,730 Ker če pride gotovo največja ali minimalne funkcije za ničlo, 294 00:15:20,730 --> 00:15:22,570 boste dobili neskončno vrednosti ven. 295 00:15:22,570 --> 00:15:26,400 296 00:15:26,400 --> 00:15:29,180 >> Podatkovni okvirji, oni podrazred seznama. 297 00:15:29,180 --> 00:15:31,170 Vsak vrednost je vektor enake dolžine. 298 00:15:31,170 --> 00:15:34,220 In oni se uporabljajo za predstavitev, v bistvu, podatkovne tabele. 299 00:15:34,220 --> 00:15:36,175 Tam je to inicializacija sintakso. 300 00:15:36,175 --> 00:15:38,800 To bo vse, še enkrat, da je veliko jasnejši, ko prideš na demo. 301 00:15:38,800 --> 00:15:42,240 302 00:15:42,240 --> 00:15:44,240 In lepo stvar o podatkovni okvirji je, da vas 303 00:15:44,240 --> 00:15:49,380 more dati imena za vse stolpce in imena v vseh vrstah. 304 00:15:49,380 --> 00:15:53,890 In tako, da omogoča dostop do jim malo prijaznejši. 305 00:15:53,890 --> 00:15:59,130 Tudi to je, kako večina funkcij, ki brati podatke iz preglednic Excel 306 00:15:59,130 --> 00:16:03,820 ali iz besedilne datoteke, na primer, bo prebral v njihovih podatkov. 307 00:16:03,820 --> 00:16:07,555 Ti bom dal v neke vrste podatkov okvirja. 308 00:16:07,555 --> 00:16:09,680 Torej functions-- funkcij skladnja je malo čudno. 309 00:16:09,680 --> 00:16:16,160 Spet je to ime funkcije, dodeliti, to funkcijo za ključne besede in nato 310 00:16:16,160 --> 00:16:17,900 seznam argumentov. 311 00:16:17,900 --> 00:16:24,080 Torej obstaja nekaj lepih stvari o tem, kako deluje delati tukaj. 312 00:16:24,080 --> 00:16:28,170 Za eno, lahko dejansko dodeliti Privzete vrednosti za nekatere argumente. 313 00:16:28,170 --> 00:16:32,910 Torej lahko rečemo, R1 equals-- lahko rečeš foo 314 00:16:32,910 --> 00:16:38,290 je funkcija, kjer je R1 enak nekaj privzeto če uporabnik določa 315 00:16:38,290 --> 00:16:39,090 nobenih argumentov. 316 00:16:39,090 --> 00:16:41,932 V nasprotnem primeru, to je vse, kar je dal v. 317 00:16:41,932 --> 00:16:44,140 In to je zelo priročno ker veliko naših funkcij 318 00:16:44,140 --> 00:16:47,910 imajo pogosto desetine ali stotine argumentov. 319 00:16:47,910 --> 00:16:51,210 Na primer tisti, ki za izris grafi ali ubral scatter parcel 320 00:16:51,210 --> 00:16:54,430 imajo argumente, ki nadzorujejo vse od naslova in osjo 321 00:16:54,430 --> 00:16:59,512 nalepke na barvo regresijskih linij. 322 00:16:59,512 --> 00:17:01,470 In tako, če ne želite, da bi ljudje določite 323 00:17:01,470 --> 00:17:04,050 vsak od teh stotine argumentov 324 00:17:04,050 --> 00:17:07,674 nadzor vsak vidik parcela ali regresija ali karkoli, 325 00:17:07,674 --> 00:17:09,299 to je lepo, da so te privzete vrednosti. 326 00:17:09,299 --> 00:17:12,700 327 00:17:12,700 --> 00:17:19,146 >> In potem lahko dejansko pisati, kot ste videli nazaj. 328 00:17:19,146 --> 00:17:22,869 Ali najti boljši primer. 329 00:17:22,869 --> 00:17:28,690 Ko pokličete funkcije, ki jih lahko dejansko jih pokličete z uporabo imena argumentov. 330 00:17:28,690 --> 00:17:33,919 Torej, tukaj je primer matrica gradbenik. 331 00:17:33,919 --> 00:17:34,960 Traja tri argumente. 332 00:17:34,960 --> 00:17:36,760 Ponavadi imate podatke, ki je vektor. 333 00:17:36,760 --> 00:17:38,920 Imate N vrstic, ki je število vrstic. 334 00:17:38,920 --> 00:17:41,160 Imate N cols-- število stolpcev. 335 00:17:41,160 --> 00:17:43,920 Stvar je, če ste tip N vrstica je enaka ne glede na 336 00:17:43,920 --> 00:17:46,520 in N col enak karkoli, kadar kličeš to funkcijo, 337 00:17:46,520 --> 00:17:47,770 jih lahko dejansko obrne. 338 00:17:47,770 --> 00:17:51,590 Tako da lahko dajo N col prvi in ​​N vrstica Drugi in to bo nobene razlike. 339 00:17:51,590 --> 00:17:54,660 Tako da je lepo lastnost. 340 00:17:54,660 --> 00:17:56,260 >> Ali uvoz in izvoz. 341 00:17:56,260 --> 00:18:00,010 To je mogoče storiti, v bistvu. 342 00:18:00,010 --> 00:18:03,816 Obstajajo tudi objekti izpišite samovoljno R nasprotuje binarno datoteko 343 00:18:03,816 --> 00:18:05,190 in jih nato berejo nazaj kasneje. 344 00:18:05,190 --> 00:18:08,030 Kar je priročno, če delaš velik interaktivni zasedanje R 345 00:18:08,030 --> 00:18:12,850 in morate shraniti stvari zelo hitro. 346 00:18:12,850 --> 00:18:16,460 Privzeto ima R delovni imenik da se datoteke izpisano v 347 00:18:16,460 --> 00:18:19,410 in brati nazaj od. 348 00:18:19,410 --> 00:18:22,350 Vidite lahko, da s getwg, ga spremenite z setdw. 349 00:18:22,350 --> 00:18:25,630 Nič posebej zanimivo tukaj 350 00:18:25,630 --> 00:18:28,270 >> Torej, zdaj dejanska statistika stuff-- multilinear regresije. 351 00:18:28,270 --> 00:18:30,960 352 00:18:30,960 --> 00:18:34,910 Tako običajni sintakse je malce zapleteno. 353 00:18:34,910 --> 00:18:37,260 Model je velik objekt v bistvu. 354 00:18:37,260 --> 00:18:39,910 To gets dodeljena lm, ki je funkcija klic. 355 00:18:39,910 --> 00:18:43,840 Prvi element, y Tilda x1 plus karkoli. 356 00:18:43,840 --> 00:18:46,574 357 00:18:46,574 --> 00:18:47,990 Moj sintaksa tukaj je malo zmedeno. 358 00:18:47,990 --> 00:18:49,490 Jaz sem zelo žal, to je standardni način 359 00:18:49,490 --> 00:18:50,990 da računalništvo knjige to storiti. 360 00:18:50,990 --> 00:18:54,890 Ampak to je malo čudno. 361 00:18:54,890 --> 00:18:58,200 >> Torej v bistvu, to je lm oklepaje, prva točka 362 00:18:58,200 --> 00:19:06,730 je variable-- žal, odvisna od spremenljivka Tilda x1 plus x2 plus 363 00:19:06,730 --> 00:19:10,910 Vendar pa mnogi neodvisni spremenljivke, ki jih imate. 364 00:19:10,910 --> 00:19:14,240 In potem ti lahko bodisi vektorji, vsi enake dolžine. 365 00:19:14,240 --> 00:19:16,220 Ali pa je lahko kolona razdelilniki v podatkovnem okviru 366 00:19:16,220 --> 00:19:18,553 ki ste jo pravkar določite v Drugi argument podatki okvir. 367 00:19:18,553 --> 00:19:23,270 368 00:19:23,270 --> 00:19:26,380 >> Lahko tudi določite bolj kompleksno formulo 369 00:19:26,380 --> 00:19:31,990 tako da ne boste imeli, da linearno nazadovanje na eno odvisno spremenljivko, 370 00:19:31,990 --> 00:19:34,440 ali en vektor na že obstoječem vektor. 371 00:19:34,440 --> 00:19:38,070 To lahko storite, na primer, vektorska komponenta y kvadrat plus 1 372 00:19:38,070 --> 00:19:42,100 in nazadovati, da proti log nekega drugega vektorja. 373 00:19:42,100 --> 00:19:45,200 Lahko natisnete povzetki model, s tem ukazom, imenovano 374 00:19:45,200 --> 00:19:48,607 summary-- samo povzetek parens modela. 375 00:19:48,607 --> 00:19:50,190 Spet nekaj, kar bi moral pojasniti. 376 00:19:50,190 --> 00:19:55,407 377 00:19:55,407 --> 00:19:58,615 Nekaj ​​drugega, da bodo dobili popravljeno ko diapozitivi šel na internetu. 378 00:19:58,615 --> 00:20:01,127 379 00:20:01,127 --> 00:20:03,210 Če si želite izračunati enostavna korelacija 380 00:20:03,210 --> 00:20:09,170 lahko uporabite primerjalno vektor 1 vektor 2 funkcija jedro. 381 00:20:09,170 --> 00:20:11,856 Metoda je privzeto Pearson korelacije. 382 00:20:11,856 --> 00:20:13,480 Tisti, ki so standardne tiste, ki jih lahko storite. 383 00:20:13,480 --> 00:20:15,990 Obstajajo tudi Spearman in Kendell korelacije 384 00:20:15,990 --> 00:20:19,530 ki so na različnih čin red korelacija. 385 00:20:19,530 --> 00:20:23,600 No, ne izračunati izdelek trenutki med vektorji samih, 386 00:20:23,600 --> 00:20:28,511 ampak čin naročil prenašalca. 387 00:20:28,511 --> 00:20:29,510 Bom razložil kasneje. 388 00:20:29,510 --> 00:20:30,120 >> OBČINSTVO: Hitro vprašanje 389 00:20:30,120 --> 00:20:30,360 >> CONNER HARRIS: Seveda. 390 00:20:30,360 --> 00:20:33,151 >> OBČINSTVO: Torej, če ste izračunu za enostavne korelacije storiti 391 00:20:33,151 --> 00:20:37,655 si domnevati, da obstaja statistično Pomen na korelacijo? 392 00:20:37,655 --> 00:20:39,030 CONNER HARRIS: Nimate za. 393 00:20:39,030 --> 00:20:41,840 394 00:20:41,840 --> 00:20:43,960 Lm je v bistvu samo stroj. 395 00:20:43,960 --> 00:20:47,690 To bo v dveh stvareh in bo izpljuni 396 00:20:47,690 --> 00:20:49,770 koeficienti za najustreznejša linije. 397 00:20:49,770 --> 00:20:52,310 Prav tako poroča standardna Napake na teh koeficientov. 398 00:20:52,310 --> 00:20:55,865 In to vam bo povedal, tako kot je prestrezanje statistično pomembna 399 00:20:55,865 --> 00:20:56,740 ali razliko od 0. 400 00:20:56,740 --> 00:20:59,400 Je naklon od najboljših fit linijo statistično 401 00:20:59,400 --> 00:21:01,510 različna od nič, et cetera. 402 00:21:01,510 --> 00:21:06,260 Torej predpostavlja nič, mislim, je najboljši odgovor na vaše vprašanje. 403 00:21:06,260 --> 00:21:07,410 V REDU. 404 00:21:07,410 --> 00:21:14,650 >> Plotting-- tako da je glavni razlog, da bi morala Uporaba R, kot multilinear regresije. 405 00:21:14,650 --> 00:21:17,320 V bistvu vsak jezik ima neko napravo za to. 406 00:21:17,320 --> 00:21:21,365 In skladnjo pošteno R za regresija je malo Skrivnosten. 407 00:21:21,365 --> 00:21:22,990 Ampak risanja je, če to res sije. 408 00:21:22,990 --> 00:21:28,090 >> Funkcija gonilna sila je parcela in sta potrebna dva vektorjev, X in Y. 409 00:21:28,090 --> 00:21:33,010 In potem elipse stoji za zelo Veliko število izbirnih argumentov, ki 410 00:21:33,010 --> 00:21:39,190 nadzoruje vse od naslovov v barvah različnih linij ali različnih točkah, 411 00:21:39,190 --> 00:21:40,200 na vrsto ploskvi. 412 00:21:40,200 --> 00:21:42,250 Lahko imaš odbojev parcele ali liniji parcele. 413 00:21:42,250 --> 00:21:47,900 414 00:21:47,900 --> 00:21:49,710 >> [Neslišno] 2 vektorji enake dolžine. 415 00:21:49,710 --> 00:21:53,780 Lahko pred tem z priložiti Podatki okvir v vašem scenariju. 416 00:21:53,780 --> 00:22:01,220 In to vam bo šele raba stolpec Glave namesto ločenih vektorjev. 417 00:22:01,220 --> 00:22:05,410 Dodate lahko najustreznejše premice in lokalna regresijski krivulji do vašega grafu. 418 00:22:05,410 --> 00:22:09,390 >> Ti ukazi so navedene tukaj, ab linije in linije, 419 00:22:09,390 --> 00:22:11,640 privzeto ti dobili napisana v pop up oken 420 00:22:11,640 --> 00:22:15,560 ker je predvideno, da ste z uporabo R interaktivno. 421 00:22:15,560 --> 00:22:17,310 Če niste si lahko napisati dve datoteki, ki 422 00:22:17,310 --> 00:22:21,600 so res kakršni koli obliki, ki jo želite. 423 00:22:21,600 --> 00:22:25,410 Žal mi je, da imam slovnične napake sem spoznala. 424 00:22:25,410 --> 00:22:30,887 425 00:22:30,887 --> 00:22:32,720 Če želite odpreti drugo grafično napravo 426 00:22:32,720 --> 00:22:39,200 lahko uporabite to funkcijo imenovano PNG ali JPEG ali veliko drugih slikovnih formatov. 427 00:22:39,200 --> 00:22:42,319 In lahko pišete grafe do ne glede na ime datoteke ki jo določite. 428 00:22:42,319 --> 00:22:45,110 Za preklic da moraš use-- Nisem napisati to v slide-- 429 00:22:45,110 --> 00:22:49,650 vendar pa je funkcija imenuje dev dot off, da ne potrebuje argumentov. 430 00:22:49,650 --> 00:22:51,517 >> Potem so tu še objekti za 3D risanje 431 00:22:51,517 --> 00:22:53,350 in konture ubral Če želite 432 00:22:53,350 --> 00:22:55,700 grafi dveh neodvisnih spremenljivk. 433 00:22:55,700 --> 00:22:57,150 Ne bom dobil v to zdaj. 434 00:22:57,150 --> 00:22:59,130 >> Obstaja tudi nekaj objekti za animacijo 435 00:22:59,130 --> 00:23:01,300 to so ponavadi vzdrževana s strani tretjih oseb. 436 00:23:01,300 --> 00:23:06,330 Sem naredil animacije z R grafov, sem pa ne uporablja te tretji osebi 437 00:23:06,330 --> 00:23:06,940 knjižnice. 438 00:23:06,940 --> 00:23:09,929 Tako da ne morem potrditi, kako dobri so. 439 00:23:09,929 --> 00:23:12,220 Kaj jaz priporočam, če želite, narediti animacije z uporabo R 440 00:23:12,220 --> 00:23:16,480 se lahko napisali vse okvirji za animacije 441 00:23:16,480 --> 00:23:18,470 in potem lahko uporabite program-- tretja stranka 442 00:23:18,470 --> 00:23:23,630 tipične tisti imenujemo FFmpeg ali ImageMagick-- lepljenje 443 00:23:23,630 --> 00:23:26,540 vse svoje okvirje v eno animacijo. 444 00:23:26,540 --> 00:23:28,380 >> Torej čas za demo. 445 00:23:28,380 --> 00:23:31,030 446 00:23:31,030 --> 00:23:37,189 Torej, če ste z uporabo katere koli Unix, kot so sistem ki je Linux BSD a kdo uporablja BSD. 447 00:23:37,189 --> 00:23:39,730 OS X odpre terminalsko okno in Tip R v ukazno vrstico. 448 00:23:39,730 --> 00:23:42,820 Če imate R studio ali podobno, ki deluje tudi. 449 00:23:42,820 --> 00:23:46,270 Za uporabnike operacijskega sistema Windows, morate biti sposobni najti R v vašem meniju Start. 450 00:23:46,270 --> 00:23:50,390 Treba imenuje nekaj kot R x64 3 točka karkoli. 451 00:23:50,390 --> 00:23:53,110 Odprite da tam gor. 452 00:23:53,110 --> 00:23:58,850 >> Torej me zdaj pa samo odpre terminalsko okno. 453 00:23:58,850 --> 00:24:02,562 Vse je v redu, iskanje. 454 00:24:02,562 --> 00:24:03,520 OBČINSTVO: Command-Space 455 00:24:03,520 --> 00:24:06,675 CONNER HARRIS: Command-Space, hvala. 456 00:24:06,675 --> 00:24:10,030 Jaz navadno ne uporabljajo Mace. 457 00:24:10,030 --> 00:24:13,310 Terminal, kažejo novo okno. 458 00:24:13,310 --> 00:24:18,120 Novo okno je nastavitev osnovno, R. Torej bi morali dobiti 459 00:24:18,120 --> 00:24:22,230 pozdravno sporočilo, nekaj takega. 460 00:24:22,230 --> 00:24:31,060 >> Torej, jaz sem z uporabo R interaktivno. 461 00:24:31,060 --> 00:24:32,719 Napišete lahko tudi R skripte seveda. 462 00:24:32,719 --> 00:24:34,510 V bistvu zaženete skripte točno enak način kot 463 00:24:34,510 --> 00:24:40,250 če bi sedel na računalniku vnesete v vsako vrstico enega naenkrat. 464 00:24:40,250 --> 00:24:42,660 Torej začnimo s tem vektor. 465 00:24:42,660 --> 00:24:46,230 Puščica C 1, 2. 466 00:24:46,230 --> 00:24:49,400 1, 2, 4. 467 00:24:49,400 --> 00:24:50,050 OK, seveda. 468 00:24:50,050 --> 00:24:51,630 Jaz lahko velikost pisave večji. 469 00:24:51,630 --> 00:24:53,030 >> OBČINSTVO: Command-Plus 470 00:24:53,030 --> 00:24:53,650 >> CONNER HARRIS: Command-Plus. 471 00:24:53,650 --> 00:24:54,191 Command-Plus. 472 00:24:54,191 --> 00:24:57,610 473 00:24:57,610 --> 00:25:00,370 Vse je v redu, kaj pa je to? 474 00:25:00,370 --> 00:25:00,870 Dobra? 475 00:25:00,870 --> 00:25:01,551 V REDU. 476 00:25:01,551 --> 00:25:03,300 Torej začnimo s razglasitvi seznam vektor. 477 00:25:03,300 --> 00:25:08,710 Ali, puščico, C 1,2,4. 478 00:25:08,710 --> 00:25:11,181 Vidimo lahko, a. 479 00:25:11,181 --> 00:25:12,680 Ne skrbite nosilec tam. 480 00:25:12,680 --> 00:25:18,590 Nosilci so tako, če natisnete zelo dolgi nizi, smo lahko to, kje ste. 481 00:25:18,590 --> 00:25:26,987 En primer bi bil, če bi samo želim razpon od 2 do 200. 482 00:25:26,987 --> 00:25:28,820 Če sem natisnjena zelo dolgo matrika, oklepaji 483 00:25:28,820 --> 00:25:31,060 so samo zato, da sem lahko vodijo od katerih je indeks progi 484 00:25:31,060 --> 00:25:33,250 smo na, če iščem skozi to vizualno. 485 00:25:33,250 --> 00:25:36,570 486 00:25:36,570 --> 00:25:38,280 Torej, v vsakem primeru, imamo. 487 00:25:38,280 --> 00:25:43,326 >> Torej sem že prej povedal, da so nizi interakcijo zelo lepo z, na primer, 488 00:25:43,326 --> 00:25:44,450 Unarni operacije, kot je ta. 489 00:25:44,450 --> 00:25:46,500 Torej, kaj misliš, da bom dobili, če sem tip plus 1? 490 00:25:46,500 --> 00:25:49,630 491 00:25:49,630 --> 00:25:51,140 Ja. 492 00:25:51,140 --> 00:25:54,250 Dobro, zdaj bom, da ta drugačen niz. 493 00:25:54,250 --> 00:26:01,650 Recimo b c 20,40, 80. 494 00:26:01,650 --> 00:26:03,400 Torej, kaj mislite Ta ukaz bo naredil? 495 00:26:03,400 --> 00:26:09,962 496 00:26:09,962 --> 00:26:10,670 Dodajte elemente. 497 00:26:10,670 --> 00:26:14,950 In tako v bistvu, da je tisto, kar počne. 498 00:26:14,950 --> 00:26:16,740 Torej, to je zelo priročno. 499 00:26:16,740 --> 00:26:23,800 Torej sem, kako pa naredim to. c je, recimo, 6-krat od 1 do 10. 500 00:26:23,800 --> 00:26:26,789 501 00:26:26,789 --> 00:26:28,830 Torej, kaj bi rad videl vseboval, pa ti misliš? 502 00:26:28,830 --> 00:26:37,110 503 00:26:37,110 --> 00:26:38,110 Torej, vse večkratnike šest. 504 00:26:38,110 --> 00:26:42,170 Zdaj, kaj misliš se bo zgodilo, če bom to naredil? 505 00:26:42,170 --> 00:26:48,090 Jaz bom, da to malo bolj jasno, c, c. 506 00:26:48,090 --> 00:26:50,365 Torej, kaj se zgodi, kajne mislim, če bi to naredil? 507 00:26:50,365 --> 00:26:51,488 plus c. 508 00:26:51,488 --> 00:26:55,550 509 00:26:55,550 --> 00:26:56,050 [Neslišno] 510 00:26:56,050 --> 00:26:58,552 511 00:26:58,552 --> 00:27:02,350 >> OBČINSTVO: Bodisi napaka ali pa samo dodaja prve tri elemente. 512 00:27:02,350 --> 00:27:04,510 >> CONNER HARRIS: Ne čisto. 513 00:27:04,510 --> 00:27:05,522 To je tisto, kar smo dobili. 514 00:27:05,522 --> 00:27:08,910 Kaj se zgodi, je krajši matrika a, dobil preklapljajo. 515 00:27:08,910 --> 00:27:13,990 Tako smo dobili 124, 124, 124. 516 00:27:13,990 --> 00:27:15,710 Ja. 517 00:27:15,710 --> 00:27:18,940 In v bistvu, si lahko ogledate To vedenje pred, plus 1, 518 00:27:18,940 --> 00:27:22,190 kot podrazreda tega obnašanja, kadar najkrajša array je samo številka 519 00:27:22,190 --> 00:27:25,410 1, ki je matrika en element. 520 00:27:25,410 --> 00:27:27,740 Pravkar sem se pravim vektor vse čas namesto matrike, 521 00:27:27,740 --> 00:27:30,290 ker to je tisto, kar r dokumentacija običajno počne. 522 00:27:30,290 --> 00:27:33,070 To je ukoreninjen c navada. 523 00:27:33,070 --> 00:27:37,590 >> OK, in zdaj imamo to vrsto. 524 00:27:37,590 --> 00:27:38,830 Torej imamo to niz, c. 525 00:27:38,830 --> 00:27:41,380 Mi lahko dobite povzetek statistični podatki o c, povzetek c. 526 00:27:41,380 --> 00:27:46,920 527 00:27:46,920 --> 00:27:48,280 In to je lepo. 528 00:27:48,280 --> 00:27:51,070 529 00:27:51,070 --> 00:27:52,670 Tako da zdaj naredimo nekaj matrične stvari. 530 00:27:52,670 --> 00:27:56,160 Recimo m je matrica. 531 00:27:56,160 --> 00:27:57,780 Naj bo to tri trije eno. 532 00:27:57,780 --> 00:28:01,630 Torej nrows enak 3 in ncols enak 3. 533 00:28:01,630 --> 00:28:04,190 534 00:28:04,190 --> 00:28:10,710 In za podatke dajmo do-- kaj misliš, da bo to naredil? 535 00:28:10,710 --> 00:28:15,310 536 00:28:15,310 --> 00:28:16,580 >> Dobro, da je naslednja. 537 00:28:16,580 --> 00:28:17,970 To je nrow in ncolumn. 538 00:28:17,970 --> 00:28:22,164 539 00:28:22,164 --> 00:28:24,580 Torej, kaj sem naredil je, da sem imel razglasila tri s tremi matrico 540 00:28:24,580 --> 00:28:26,950 in sem opravil v niz devetih elementov. 541 00:28:26,950 --> 00:28:30,530 Torej logaritmom vse Elementi ena skozi devet. 542 00:28:30,530 --> 00:28:33,400 543 00:28:33,400 --> 00:28:37,285 In vse te vrednosti, izpolnite up array-- žal? 544 00:28:37,285 --> 00:28:38,660 OBČINSTVO: To so navadne 10 dnevniki? 545 00:28:38,660 --> 00:28:41,284 CONNER HARRIS: Ne, dnevnik naravni logaritmi, tako bazo e. 546 00:28:41,284 --> 00:28:44,886 547 00:28:44,886 --> 00:28:47,010 Ja, če si hotel baza 10 Dnevnik, mislim, da bi morali 548 00:28:47,010 --> 00:28:51,620 da se prijavite karkoli, deljeno s log 10. 549 00:28:51,620 --> 00:28:56,750 In tako se podatki [neslišno] samo napolni matriko, tako od zgoraj navzdol, 550 00:28:56,750 --> 00:28:59,490 nato z leve proti desni. 551 00:28:59,490 --> 00:29:06,890 In če si hotel narediti nekaj drugega matrika, recimo n matrika. 552 00:29:06,890 --> 00:29:10,317 Naredimo, ne vem, od 2 do 13. 553 00:29:10,317 --> 00:29:11,900 Ali bom naredil nekaj bolj zanimivega. 554 00:29:11,900 --> 00:29:13,770 Jaz bom po 2 do 4. 555 00:29:13,770 --> 00:29:15,780 nrow je enak, recimo, 3. 556 00:29:15,780 --> 00:29:18,992 ncol enaka 4. 557 00:29:18,992 --> 00:29:20,360 n. 558 00:29:20,360 --> 00:29:22,090 Torej smo to dobili. 559 00:29:22,090 --> 00:29:26,130 >> In zdaj, če želimo, da se množijo teh, mi bi naredil n odstotka-krat odstotkov, 560 00:29:26,130 --> 00:29:27,680 ker to je n. 561 00:29:27,680 --> 00:29:30,234 562 00:29:30,234 --> 00:29:31,400 In imamo matrične izdelke. 563 00:29:31,400 --> 00:29:33,970 564 00:29:33,970 --> 00:29:37,810 Z oni način, ste videli, kako ko sem izjavil n je od 2 do 4 565 00:29:37,810 --> 00:29:43,570 Vektor dobil preklapljajo do je napolnila vse n? 566 00:29:43,570 --> 00:29:45,710 Če boste želeli, da bi lastnih vrednosti razpade, 567 00:29:45,710 --> 00:29:46,960 To je nekaj, kar lahko naredimo zelo enostavno. 568 00:29:46,960 --> 00:29:47,709 Mi lahko naredimo Eigen n. 569 00:29:47,709 --> 00:29:52,290 570 00:29:52,290 --> 00:29:54,600 In tako je to naša prva srečati s seznama. 571 00:29:54,600 --> 00:29:57,000 >> Torej Eigen n je seznam z dvema ključema. 572 00:29:57,000 --> 00:29:58,430 Vrednote, ki jih je ta niz tukaj. 573 00:29:58,430 --> 00:30:01,030 In vektorji, ki je ta niz tukaj. 574 00:30:01,030 --> 00:30:08,240 Torej, če boste želeli izvleči, recimo, ta tretji stolpec 575 00:30:08,240 --> 00:30:13,080 Iz vektorji matrike, ker so lastni vektorji so vektorji stolpcev. 576 00:30:13,080 --> 00:30:24,400 Torej ne moremo storiti Vec Eigen n znak za dolar vektorji, comma 3, dne [neslišno]. 577 00:30:24,400 --> 00:30:29,800 578 00:30:29,800 --> 00:30:30,900 Vec. 579 00:30:30,900 --> 00:30:34,100 Je, kot bi lahko pričakovali. 580 00:30:34,100 --> 00:30:39,210 >> Potem pa pravijo, n-krat odstotkov krat Vec. 581 00:30:39,210 --> 00:30:42,610 582 00:30:42,610 --> 00:30:48,320 Zato je rezultat tu zagotovo izgleda če smo tretjo lastnih vrednosti tukaj, 583 00:30:48,320 --> 00:30:50,390 ki ustreza tretji lastni vektor. 584 00:30:50,390 --> 00:30:53,190 Samo pomnožiti vse v ta lastni vektor, sestavnega dela pametno, 585 00:30:53,190 --> 00:30:53,990 ki ga je lastna vrednost. 586 00:30:53,990 --> 00:30:57,760 In to je tisto, kar bi pričakovali, ker to je tisto, kar lastne vrednosti so. 587 00:30:57,760 --> 00:31:00,890 Ima kdo tukaj ne sprejeti linearno algebro? 588 00:31:00,890 --> 00:31:02,530 Nekaj ​​ljudi, OK. 589 00:31:02,530 --> 00:31:04,030 Samo vklopite možgane off za malo. 590 00:31:04,030 --> 00:31:07,490 591 00:31:07,490 --> 00:31:20,720 In res, če vzamemo Eigen n znak za dolar vrednosti 3-krat VEČ, 592 00:31:20,720 --> 00:31:21,810 tudi dobili isto stvar. 593 00:31:21,810 --> 00:31:24,726 To je oblikovano drugače kot zapored Vektor namesto vektorja stolpca 594 00:31:24,726 --> 00:31:25,640 ampak big deal. 595 00:31:25,640 --> 00:31:29,430 596 00:31:29,430 --> 00:31:35,170 In tako so to v bistvu lepo stvari, ki jih lahko storite z matrikami, 597 00:31:35,170 --> 00:31:36,489 dokazane seznami. 598 00:31:36,489 --> 00:31:39,030 Moral bi prikazali lepo stvari o funkcijah, kot tudi. 599 00:31:39,030 --> 00:31:41,750 >> Torej, kaj je say-- [neslišno] funkcija, poziv Oglejmo 600 00:31:41,750 --> 00:31:51,960 je funkcijska pred funkcijo n n squared-- pravzaprav, da to ni res najboljši. 601 00:31:51,960 --> 00:31:55,632 a, b, A kvadrat plus b. 602 00:31:55,632 --> 00:31:58,547 603 00:31:58,547 --> 00:32:00,380 Torej, ena stvar funkcije, še enkrat, je pa 604 00:32:00,380 --> 00:32:01,963 Ne potrebujemo izrecnih izjav o vrnitvi. 605 00:32:01,963 --> 00:32:04,250 Torej lahko just-- zadnja izjava oceniti 606 00:32:04,250 --> 00:32:07,502 bo izjavo vrne, ali vrniti vrednost. 607 00:32:07,502 --> 00:32:10,460 Torej, v tem primeru smo samo ocenjevanje eno Izjava, ki je kvadrat plus b. 608 00:32:10,460 --> 00:32:12,043 To bo privzeta vrednost povratka. 609 00:32:12,043 --> 00:32:14,530 Nikoli ne boli, da dajo v vrniti vrednote izrecno, 610 00:32:14,530 --> 00:32:16,880 še posebej, če imate opravka z Funkcija zelo zapleten logike 611 00:32:16,880 --> 00:32:17,380 tok. 612 00:32:17,380 --> 00:32:18,450 Vendar jih ne potrebujete. 613 00:32:18,450 --> 00:32:24,890 Torej sedaj lahko storimo Funkcij 5, 1, in to je v bistvu tisto, kar ste pričakovali. 614 00:32:24,890 --> 00:32:29,146 615 00:32:29,146 --> 00:32:31,270 Nekaj ​​drugega, kar lahko naredimo, bomo lahko dejansko narediti funkcionalnem b 616 00:32:31,270 --> 00:32:33,260 enaka 1, je enaka 5. 617 00:32:33,260 --> 00:32:36,870 618 00:32:36,870 --> 00:32:40,770 Torej, če želimo opredeliti, katero številko tukaj, kateri argument gre v kateri argument 619 00:32:40,770 --> 00:32:44,680 v funkciji, lahko flip okoli te vrednote, kjerkoli želimo. 620 00:32:44,680 --> 00:32:48,405 >> OBČINSTVO: Ali obstaja razlog da ga napišete z b 621 00:32:48,405 --> 00:32:52,404 enaka v nasprotju s samo uporabo številke in vejica? 622 00:32:52,404 --> 00:32:54,820 CONNER HARRIS: Ja, običajno To storite tako, če imate funkcije 623 00:32:54,820 --> 00:32:58,540 z veliko argumentov. 624 00:32:58,540 --> 00:33:00,690 Da lahko pogosto izkaže kot Zastave, ki ste jo le 625 00:33:00,690 --> 00:33:03,130 želite uporabiti v redkih primerih. 626 00:33:03,130 --> 00:33:06,740 In na ta način boste lahko only-- Lahko se nanašajo na posebne argumente 627 00:33:06,740 --> 00:33:09,110 ki jo želite uporabiti ne-privzete vrednosti za, 628 00:33:09,110 --> 00:33:14,470 in vam ne bi bilo treba pisati ven kup zastav enaka false po njih. 629 00:33:14,470 --> 00:33:19,710 Ali mi lahko to še enkrat pisati z privzeta vrednost kot b enaka 2. 630 00:33:19,710 --> 00:33:26,289 In potem bi jaz f funkcionalnem, Jaz bom naredil 4, 1 tokrat. 631 00:33:26,289 --> 00:33:28,580 In 17, ki je 4 kvadrati plus 1, kot bi lahko pričakovali. 632 00:33:28,580 --> 00:33:34,290 >> Ampak jaz bi tudi samo to imenujemo z funkcionalnem 4, 633 00:33:34,290 --> 00:33:36,970 in bom dobil 18, ker Jaz ne določajo b. 634 00:33:36,970 --> 00:33:38,550 Torej b dobi privzeto vrednost 2. 635 00:33:38,550 --> 00:33:41,700 636 00:33:41,700 --> 00:33:47,200 >> OK, tako da zdaj, če ste naslednja skupaj z demo, 637 00:33:47,200 --> 00:33:51,010 vnesite to vrstico na vaš ukaz spodbuditi in glej, kaj prihaja gor. 638 00:33:51,010 --> 00:33:52,090 Pravzaprav, ne delaj tega. 639 00:33:52,090 --> 00:33:52,590 Ta tip. 640 00:33:52,590 --> 00:33:57,780 641 00:33:57,780 --> 00:34:01,000 Moral bi dobiti nekaj takega. 642 00:34:01,000 --> 00:34:04,780 Torej mtcars je vgrajeno v podatkih nastavljena za to demonstracijo 643 00:34:04,780 --> 00:34:13,550 namene, ki prihaja with--, ki prihaja v privzeto z vašo distribucijo r. 644 00:34:13,550 --> 00:34:19,211 To je zbirka statističnih podatkov iz 1974 izdaji revije Motor Trend je 645 00:34:19,211 --> 00:34:20,710 na več različnih modelov avtomobilov. 646 00:34:20,710 --> 00:34:28,270 >> Torej je milj na galono, cylinders-- Sem pozabil, kaj disp is-- konjskih moči. 647 00:34:28,270 --> 00:34:31,610 648 00:34:31,610 --> 00:34:32,420 Verjetno. 649 00:34:32,420 --> 00:34:36,920 Če ste pravkar Google MT avtomobilov, nato eden prvih rezultatov 650 00:34:36,920 --> 00:34:38,730 bo med Uradna r dokumentacija 651 00:34:38,730 --> 00:34:41,080 in bo razložil vsi ti podatkovna polja. 652 00:34:41,080 --> 00:34:47,020 Torej teža is-- mas je masa avtomobila v ton. 653 00:34:47,020 --> 00:34:48,880 Q sec je čas, četrt milje. 654 00:34:48,880 --> 00:34:52,409 655 00:34:52,409 --> 00:34:55,850 Torej sedaj lahko storimo nekaj zabavnih stvari o MT avtomobilih je podatkovno polje. 656 00:34:55,850 --> 00:35:01,640 >> Tako da lahko naredimo stvari kot so imena vrstic, MT avtomobilov. 657 00:35:01,640 --> 00:35:05,490 In to je seznam vseh vrstic Podatki iz katerih so imena avtomobilov. 658 00:35:05,490 --> 00:35:10,780 Mi lahko naredimo colnames, MT avtomobile s tem. 659 00:35:10,780 --> 00:35:15,500 Če boste to storili mt avtomobili, sub-numerični indeks, kot 2. 660 00:35:15,500 --> 00:35:18,177 dobimo druge kolone iz to, kar bi bilo jeklenke. 661 00:35:18,177 --> 00:35:19,370 >> OBČINSTVO: Kaj ste naredili? 662 00:35:19,370 --> 00:35:21,570 >> CONNER HARRIS: sem tipkal mt avtomobili, nosilci e, 663 00:35:21,570 --> 00:35:24,180 ki mi je dal drugo stolpec iz mt avtomobilov. 664 00:35:24,180 --> 00:35:34,501 665 00:35:34,501 --> 00:35:38,110 Ali pa, če želimo vrstico, sem lahko tip mtcars vejico 2, npr. 666 00:35:38,110 --> 00:35:41,850 667 00:35:41,850 --> 00:35:46,390 Drugi krog 2 vejica, kot je ta. 668 00:35:46,390 --> 00:35:48,880 In da gre v vašem zapored. 669 00:35:48,880 --> 00:35:54,680 To vam tukaj samo daje stolpec, vendar kolona kot vektor. 670 00:35:54,680 --> 00:36:04,634 671 00:36:04,634 --> 00:36:06,425 Pravkar sem spoznal, zdaj sem Pozabil dokazati 672 00:36:06,425 --> 00:36:09,150 nekaj kul stvari o vektorjev da lahko to storite z indeksi. 673 00:36:09,150 --> 00:36:10,480 Torej, kaj naj storim, da je prav zdaj. 674 00:36:10,480 --> 00:36:17,130 Torej, kaj je naredil c gets-- dajanje to na pause-- 2-krat 1 do 10. 675 00:36:17,130 --> 00:36:21,360 Torej c je šele bo vektor 2 do 20. 676 00:36:21,360 --> 00:36:24,640 Lahko vzamem elemente, kot je ta, c2. 677 00:36:24,640 --> 00:36:30,942 I lahko preide v vektorju kot je ta, C- mi dovolite, 678 00:36:30,942 --> 00:36:34,470 uporabite drugo ime kot c, kot VEČ c. 679 00:36:34,470 --> 00:36:37,591 680 00:36:37,591 --> 00:36:39,340 V bistvu, delam to, da ne boste dobili 681 00:36:39,340 --> 00:36:45,010 zmeden med C kot Gradnja funkcija vektor, 682 00:36:45,010 --> 00:36:48,800 nato c kot ime spremenljivke. 683 00:36:48,800 --> 00:36:53,120 Več nosilci c 4, 5, 7. 684 00:36:53,120 --> 00:36:56,540 To me bo ven četrta, peta, in sedem elementi matrike. 685 00:36:56,540 --> 00:37:01,740 Jaz lahko naredim Vec, dal v negativno indeks, kot negativnega 4. 686 00:37:01,740 --> 00:37:06,500 Da me bo ven to z četrti element odstranjen. 687 00:37:06,500 --> 00:37:10,140 Potem, če sem hotel storiti rezine, Jaz lahko naredim Vec 2 do 6. 688 00:37:10,140 --> 00:37:15,480 2 colon 6 je samo še en Vektor, ki je 2, 3, 4, 5, 6. 689 00:37:15,480 --> 00:37:18,230 Izpljune da. 690 00:37:18,230 --> 00:37:20,770 >> Torej, v vsakem primeru, nazaj k mt avtomobilov. 691 00:37:20,770 --> 00:37:26,650 692 00:37:26,650 --> 00:37:28,450 Torej, kaj je narediti nekaj regresije. 693 00:37:28,450 --> 00:37:34,240 Recimo model, gets-- dovolimo linearno regress-- ne vem. 694 00:37:34,240 --> 00:37:41,780 Najprej si ne pripisujejo mtcars, seveda. 695 00:37:41,780 --> 00:37:44,870 696 00:37:44,870 --> 00:38:00,010 Torej [neslišno] Model lm, dajmo nazadovati milj na galono na tilde teže. 697 00:38:00,010 --> 00:38:03,300 In potem podatkovni niz mtcars. 698 00:38:03,300 --> 00:38:06,830 Torej povzetek modela. 699 00:38:06,830 --> 00:38:12,900 700 00:38:12,900 --> 00:38:15,595 >> OK, tako da to izgleda malce zapleteno. 701 00:38:15,595 --> 00:38:19,380 Ampak v bistvu, ko vidim, če bomo poskušali izraziti milj na galono 702 00:38:19,380 --> 00:38:23,970 kot linearna funkcija mas potem imamo to vrstico tukaj, 703 00:38:23,970 --> 00:38:28,730 ki prestreže ob 37.28. 704 00:38:28,730 --> 00:38:33,830 37.28 bi teoretične milj na galono avtomobila, ki tehta nič. 705 00:38:33,830 --> 00:38:41,210 In potem za vsako dodatno tono, ste knock približno pet milj na galono 706 00:38:41,210 --> 00:38:42,440 off da. 707 00:38:42,440 --> 00:38:45,120 Oba koeficientov si vidim, standardne napake tam. 708 00:38:45,120 --> 00:38:47,870 In so zelo statistično pomembna. 709 00:38:47,870 --> 00:38:55,740 >> Tako smo lahko zelo gotovo, da 1 e 10 k negativnemu 10. 710 00:38:55,740 --> 00:38:59,510 Torej 1 krat nekaj za negativni 10, da če bo težji avto, 711 00:38:59,510 --> 00:39:01,440 da bodo imeli slabše milj na galono. 712 00:39:01,440 --> 00:39:04,940 713 00:39:04,940 --> 00:39:07,250 Ali bomo lahko preizkusili nekaj drugega modela. 714 00:39:07,250 --> 00:39:09,230 Kot namesto nazaduje to na teži, 715 00:39:09,230 --> 00:39:12,600 dajmo nazadovati na dnevniku teže, saj morda dejansko utežjo 716 00:39:12,600 --> 00:39:15,690 na število prevoženih kilometrov je nekako ni linearna. 717 00:39:15,690 --> 00:39:18,540 >> To nam je dal r kvadrat od 0.7528. 718 00:39:18,540 --> 00:39:19,610 Torej, poskusimo to. 719 00:39:19,610 --> 00:39:21,485 Tokrat Naredimo drugačna spremenljivka, preveč. 720 00:39:21,485 --> 00:39:22,500 Model2. 721 00:39:22,500 --> 00:39:24,800 Torej povzetek, model2. 722 00:39:24,800 --> 00:39:28,200 723 00:39:28,200 --> 00:39:31,390 Vse je v redu, tako da še enkrat, bomo dobili naše najboljše prilega tukaj. 724 00:39:31,390 --> 00:39:36,160 In to time-- to je rekel, v bistvu, da vsakič, ko 725 00:39:36,160 --> 00:39:38,090 težja avtomobil s faktorjem e 726 00:39:38,090 --> 00:39:40,580 ste izgubili to veliko milj na galono. 727 00:39:40,580 --> 00:39:43,210 728 00:39:43,210 --> 00:39:50,326 >> In tako ta čas naša preostala standardni napake it--, da ni važno, res. 729 00:39:50,326 --> 00:39:53,540 Preostala standardna napaka bistvu samo standardna napaka 730 00:39:53,540 --> 00:39:57,760 da ste zapustili po vas odvzela trendno linijo. 731 00:39:57,760 --> 00:40:02,805 In naša r tu kvadrat je 0,81, ki je nekoliko boljše od tistega 732 00:40:02,805 --> 00:40:07,640 smo imeli prej, 0.52. 733 00:40:07,640 --> 00:40:09,750 >> In tako zdaj pa dodajte Izraz te regresije. 734 00:40:09,750 --> 00:40:13,020 Torej, kaj je nazadovati milj na galono tako na dnevniku uteži 735 00:40:13,020 --> 00:40:21,130 in, kaj je storiti, q milj, Četrtina časa milje. 736 00:40:21,130 --> 00:40:26,190 OK, mora imeti the-- v redu, qsec. 737 00:40:26,190 --> 00:40:26,690 Qsec. 738 00:40:26,690 --> 00:40:30,630 739 00:40:30,630 --> 00:40:35,000 Actually-- Oprosti, kaj? 740 00:40:35,000 --> 00:40:37,000 Naj to imenujemo nekaj drug poleg model2. 741 00:40:37,000 --> 00:40:38,000 Naj to imenujemo model3. 742 00:40:38,000 --> 00:40:40,860 743 00:40:40,860 --> 00:40:42,900 In tako zdaj lahko naredimo povzetek model3. 744 00:40:42,900 --> 00:40:46,850 745 00:40:46,850 --> 00:40:49,100 In tako še enkrat, to je v bistvu kaj bi lahko pričakovali. 746 00:40:49,100 --> 00:40:51,750 Imate pozitiven prestrezanje. 747 00:40:51,750 --> 00:40:54,550 Učinkovito povečanje teža je negativen. 748 00:40:54,550 --> 00:40:58,490 In učinkovito povečanje četrtletje čas milje 749 00:40:58,490 --> 00:41:02,420 je pozitivna, vendar čeprav manj kot težo. 750 00:41:02,420 --> 00:41:06,010 Zdaj intuitivno, lahko osmisliti to z besedami, razmišljati o športnih avtomobilov. 751 00:41:06,010 --> 00:41:08,950 Tam je zelo hiter pospešek, Zelo kratek četrt milje krat. 752 00:41:08,950 --> 00:41:13,729 Oni tudi dogaja, da porabijo več plina, ker je bolj smiselno avtomobili gredo 753 00:41:13,729 --> 00:41:16,020 da so počasnejši pospešek, Višje četrt milje krat, 754 00:41:16,020 --> 00:41:20,890 in porabijo manj plina ,, tako višje milj na galono. 755 00:41:20,890 --> 00:41:21,390 Great. 756 00:41:21,390 --> 00:41:23,431 In zdaj je čas, da zapiše kaj takega. 757 00:41:23,431 --> 00:41:27,810 Torej, kaj je do-- tako bare kosti ne moremo storiti plots-- 758 00:41:27,810 --> 00:41:35,280 ker sem pritrjena teh podatkov okvirja before-- moremo pač zemljišče WT mpg. 759 00:41:35,280 --> 00:41:38,762 760 00:41:38,762 --> 00:41:39,720 Naredite to malo večji. 761 00:41:39,720 --> 00:41:55,050 762 00:41:55,050 --> 00:41:57,350 Tam smo v bistvu imajo scatter plot, vendar točke 763 00:41:57,350 --> 00:41:58,690 so nekako težko videti na tem. 764 00:41:58,690 --> 00:42:04,860 765 00:42:04,860 --> 00:42:10,900 >> Ne spomnim Nepripravan kaj sintaksa je za spreminjanje parcelo. 766 00:42:10,900 --> 00:42:14,100 Tako da mislim, da bo to dober čas za bruhati, 767 00:42:14,100 --> 00:42:18,000 tam je zelo lepo Builtin pomoč funkcija, quotes pomoč deloval ime. 768 00:42:18,000 --> 00:42:21,690 Bomo bruhati bistvu kaj si želite. 769 00:42:21,690 --> 00:42:28,010 770 00:42:28,010 --> 00:42:32,730 Mislim, da bom dejansko to narediti Tip je enaka p za točke parcel. 771 00:42:32,730 --> 00:42:34,369 Ali da ničesar spremeniti? 772 00:42:34,369 --> 00:42:35,160 In ne, ni res. 773 00:42:35,160 --> 00:42:39,160 774 00:42:39,160 --> 00:42:39,660 V redu. 775 00:42:39,660 --> 00:42:46,760 776 00:42:46,760 --> 00:42:49,580 >> Iz neznanega razloga, ko sem to naredil na svojem računalniku že pred časom, 777 00:42:49,580 --> 00:42:52,080 vsi raztreseni točke, je bilo veliko bolj jasno. 778 00:42:52,080 --> 00:43:06,390 779 00:43:06,390 --> 00:43:13,970 Kakorkoli že, so raztreseni vrsta vidna? 780 00:43:13,970 --> 00:43:15,124 Tam je ena tam. 781 00:43:15,124 --> 00:43:16,165 Nekaj ​​je, nekaj tam. 782 00:43:16,165 --> 00:43:18,860 783 00:43:18,860 --> 00:43:21,185 Lahko jih nekako videli, kajne? 784 00:43:21,185 --> 00:43:24,310 Torej, če želimo dodati najbolje prilega k tej ploskvi tukaj, ki je nekoliko golo 785 00:43:24,310 --> 00:43:29,290 bones-- dovolite mi, da to malo lepše. 786 00:43:29,290 --> 00:43:38,075 Glavna enaka primerjavi mas. 787 00:43:38,075 --> 00:43:46,322 788 00:43:46,322 --> 00:43:49,740 Milj na galono. 789 00:43:49,740 --> 00:43:53,570 Again, lahko vidite, kako koristno neobvezno argumenti so tukaj s tako 790 00:43:53,570 --> 00:43:58,090 ne da bi dal stvari v določenem vrstnem redu z argumenti na tipkovnici 791 00:43:58,090 --> 00:44:01,600 če imate parcel, saj ti bo veliko argumentov. 792 00:44:01,600 --> 00:44:07,490 >> Xlab enako težo, težo, ton. 793 00:44:07,490 --> 00:44:10,091 794 00:44:10,091 --> 00:44:10,590 V redu. 795 00:44:10,590 --> 00:44:17,340 796 00:44:17,340 --> 00:44:21,480 OK, ja, ta naprava je pa malo nadležno. 797 00:44:21,480 --> 00:44:30,160 Pa si lahko ogledate nekako tam, tam je Naslovno graf na strani. 798 00:44:30,160 --> 00:44:35,260 Tukaj there's-- na dnu tukaj obstajajo os nalepke. 799 00:44:35,260 --> 00:44:37,700 Ne spomnim Nepripravan kaj ukazi ars-- 800 00:44:37,700 --> 00:44:41,000 kaj so funkcije za povečanje velikost teh nalepk in nazivov, 801 00:44:41,000 --> 00:44:43,110 ampak oni so tam. 802 00:44:43,110 --> 00:44:46,625 >> In zato, če želimo dodajte najboljše prilega, 803 00:44:46,625 --> 00:44:49,250 kar lahko storimo nekaj like-- I imajo sintaksa napisal tukaj. 804 00:44:49,250 --> 00:44:52,280 805 00:44:52,280 --> 00:45:11,130 Torej, ne pozabite, smo pravkar dodali modela je mpg, teža, mtcars. 806 00:45:11,130 --> 00:45:16,470 In zato, če sem hotel dodati najboljše prileganje linija, sem lahko naredil, model b postavo. 807 00:45:16,470 --> 00:45:18,556 In bum, imamo najboljše prilega. 808 00:45:18,556 --> 00:45:19,970 To je nekako težko spet videti. 809 00:45:19,970 --> 00:45:22,178 Jaz sem zelo žal približno tehnološke težave. 810 00:45:22,178 --> 00:45:25,230 Ampak to deluje v bistvu zgoraj levo do spodaj desno. 811 00:45:25,230 --> 00:45:27,550 >> In če bi bila lestvica večji, lahko vidite 812 00:45:27,550 --> 00:45:31,260 da je nanj kaj lahko ugotovite iz statističnih povzetkov 813 00:45:31,260 --> 00:45:34,790 če vtipkate povzetek modela. 814 00:45:34,790 --> 00:45:40,130 OK, tako da upam, da vsakdo dobi nekaj občutka kaj 815 00:45:40,130 --> 00:45:42,030 R je, kaj je dobro za. 816 00:45:42,030 --> 00:45:45,520 Lahko bi veliko lepše parcel kot to na svoj čas, če vam je všeč. 817 00:45:45,520 --> 00:45:50,100 818 00:45:50,100 --> 00:45:53,950 >> Torej vmesnika tujih funkcij. 819 00:45:53,950 --> 00:46:00,330 To je nekaj, kar ni običajno zajeta v uvodnih predavanjih 820 00:46:00,330 --> 00:46:03,560 ali uvodni kaj za r. 821 00:46:03,560 --> 00:46:05,584 To je verjetno ne boste potrebovali. 822 00:46:05,584 --> 00:46:08,000 Vendar pa sem ugotovil, da je uporabna v moji projekti v preteklosti. 823 00:46:08,000 --> 00:46:10,984 In tam ni dobro tutorial za to na spletu. 824 00:46:10,984 --> 00:46:12,900 Tako da sem le, da bo Vse vas hitenja skozi to 825 00:46:12,900 --> 00:46:16,606 in potem ste prost zapustiti. 826 00:46:16,606 --> 00:46:18,480 In tako je tuji funkcija vmesnik je kaj 827 00:46:18,480 --> 00:46:23,130 lahko uporabite za klic, da vidim funkcij s R. interno, 828 00:46:23,130 --> 00:46:29,850 R je zgrajena na je aritmetična C. r je pravkar 64-bitno plavajočo vejico aritmetično C je, 829 00:46:29,850 --> 00:46:32,852 ki je tipa double [neslišno]. 830 00:46:32,852 --> 00:46:35,060 In boste morda želeli narediti to za kup razlogov. 831 00:46:35,060 --> 00:46:39,250 Za eno, ki je R razlaga, da je ne zbirajo do strojni kodi. 832 00:46:39,250 --> 00:46:42,170 Torej lahko znova vaš notranje zanke v ° C in potem dobili 833 00:46:42,170 --> 00:46:45,920 prednost uporabe R. Like to je malo bolj priročen kot C. 834 00:46:45,920 --> 00:46:48,899 Ima boljše izrisovanje objektov in drugih malenkosti. 835 00:46:48,899 --> 00:46:51,690 In medtem ko še vedno lahko dobili največja hitrost od notranjih zank, 836 00:46:51,690 --> 00:46:53,650 ki je, če jo zares potrebujete. 837 00:46:53,650 --> 00:46:56,330 >> Ponovna uporaba obstoječe knjižnice C, ki je prav tako pomembna. 838 00:46:56,330 --> 00:47:00,320 Če imate nekaj C knjižnico podobno, Ne vem, Fourier preoblikuje, 839 00:47:00,320 --> 00:47:05,190 ali nekaj zelo arhaik uporabljeni statistični postopek 840 00:47:05,190 --> 00:47:09,470 v visoko energetsko astrofizike ali nekaj takega, ne vem. 841 00:47:09,470 --> 00:47:13,058 Visoka energetska astrofizika ni niti pomislim, se mi zdi. 842 00:47:13,058 --> 00:47:16,480 Ampak lahko storite, da namesto ob napisati native pristanišče R njih. 843 00:47:16,480 --> 00:47:22,725 In na the-- in spet, kot če vas poglej v večini privzetih knjižnic R je, 844 00:47:22,725 --> 00:47:25,600 na notranji deli, notranji deli so nameravate uporabljati tuje funkcijo 845 00:47:25,600 --> 00:47:26,724 vmesnik je zelo obširno. 846 00:47:26,724 --> 00:47:31,630 Oni imajo stvari, kot Fourier preoblikuje ali računanje korelacije 847 00:47:31,630 --> 00:47:34,890 koeficienti napisana v C, in jih bomo samo še R zavijanje okoli njih. 848 00:47:34,890 --> 00:47:38,230 Vmesnik je malo težko. mislim 849 00:47:38,230 --> 00:47:43,750 njegova težava je pretiran Veliko navodilih boste našli. 850 00:47:43,750 --> 00:47:46,200 Ampak kljub temu, da je malo zmedeno. 851 00:47:46,200 --> 00:47:48,650 In nisem mogla najti dober tutorial za to, 852 00:47:48,650 --> 00:47:51,980 tako da to je to zdaj. 853 00:47:51,980 --> 00:47:55,360 Tudi to cel odsek je bolj za poznejšo uporabo. 854 00:47:55,360 --> 00:47:57,687 Ne skrbite za kopiranje vse dol zdaj. 855 00:47:57,687 --> 00:48:00,020 Torej naslednjimi navodili so za Unix sistemov, 856 00:48:00,020 --> 00:48:05,150 Linux, BSD, OS X. Ne vem kako to deluje na Windows, 857 00:48:05,150 --> 00:48:08,280 ampak prosim, ne delaj si Končni projekt na Windows. 858 00:48:08,280 --> 00:48:10,790 859 00:48:10,790 --> 00:48:12,460 Ti pa res ne želim. 860 00:48:12,460 --> 00:48:14,770 Unix je veliko bolje set up za priložnostne programiranja. 861 00:48:14,770 --> 00:48:19,320 862 00:48:19,320 --> 00:48:21,390 Torej, v bistvu tuja Funkcija vmesnika. 863 00:48:21,390 --> 00:48:24,420 Če želite napisati C Funkcija za uporabo z R, 864 00:48:24,420 --> 00:48:27,250 mora sprejeti vse Argumenti so kazalci. 865 00:48:27,250 --> 00:48:30,666 >> Torej, za posamezne vrednosti ta pomeni, da je opozoril na vrednost. 866 00:48:30,666 --> 00:48:33,040 Za zaporedja, to je kazalec na prvem elementu, ki je 867 00:48:33,040 --> 00:48:36,750 je tisto, kar imena zaporedji pravzaprav pomeni. 868 00:48:36,750 --> 00:48:40,140 Tudi to je nekaj, kar bi morali imeti zal popolnoma navzdol po p nastavite pet. 869 00:48:40,140 --> 00:48:43,334 Imena Array so le kazalci na prvi element, 870 00:48:43,334 --> 00:48:44,750 Za tip s plavajočo vejico, je dvojna. 871 00:48:44,750 --> 00:48:47,310 In vaša naloga je, da se vrnete neveljavne. 872 00:48:47,310 --> 00:48:50,810 Edini način, da lahko dejansko povedati, R kaj se je zgodilo 873 00:48:50,810 --> 00:48:54,410 je s spreminjanjem pomnilnik, ki sta dala nanjo skozi zunanjo funkcijo 874 00:48:54,410 --> 00:48:54,910 vmesnik. 875 00:48:54,910 --> 00:48:58,180 876 00:48:58,180 --> 00:49:00,127 >> Tako sem to napisal Primer tukaj, to je 877 00:49:00,127 --> 00:49:02,460 funkcija, ki izračuna uporabo skalarni produkt dveh vektorjev. 878 00:49:02,460 --> 00:49:05,060 To traja dva argumenta, vec1, vec2, ki so vektorji same, 879 00:49:05,060 --> 00:49:06,934 in potem je n, ki je Dolžina, ker spet 880 00:49:06,934 --> 00:49:12,630 R je zgrajena v [neslišno], da ugotovite dolžina vektorjev, vendar C ne. 881 00:49:12,630 --> 00:49:16,182 V C, vektorji je poljubna razmeji kos pomnilnika. 882 00:49:16,182 --> 00:49:17,890 Torej, kako si lahko izračun izdelke dot 883 00:49:17,890 --> 00:49:23,470 je le ta določen parameter na nič in potem ponovitev prek 884 00:49:23,470 --> 00:49:28,760 od 1 do zvezdasto n, ker n je kazalec na dolžino, 885 00:49:28,760 --> 00:49:32,929 samo nekaj dodati tole parameter. 886 00:49:32,929 --> 00:49:34,970 In to lahko dobra praksa če boš naredil 887 00:49:34,970 --> 00:49:37,270 to napisati dve ločeni funkcije C. 888 00:49:37,270 --> 00:49:41,970 Eden od njih has-- eden izmed njih samo ima argumente in vrste 889 00:49:41,970 --> 00:49:43,970 da bodo običajno v C. 890 00:49:43,970 --> 00:49:47,780 >> Torej je potrebno matriko Argumenti so kazalci. 891 00:49:47,780 --> 00:49:57,090 Ampak argumenti single-vrednosti, kot n, to traja le kot vrednot, ki jih kopija, 892 00:49:57,090 --> 00:49:57,917 brez kazalcev. 893 00:49:57,917 --> 00:49:59,750 In potem se ne [Neslišno] ven kazalec. 894 00:49:59,750 --> 00:50:01,290 In potem imate lahko drugačen, v bistvu, 895 00:50:01,290 --> 00:50:03,623 Funkcija ovoj, ki v bistvu ročaji zahteve 896 00:50:03,623 --> 00:50:07,740 tujega funkcije vmesnik za vas. 897 00:50:07,740 --> 00:50:11,840 >> Način pokličete to v raziskave je, enkrat imate vaše funkcija napisana v C, 898 00:50:11,840 --> 00:50:17,770 tipkanjem R cmd shlib, R Ukaz skupna knjižnica, 899 00:50:17,770 --> 00:50:20,110 foo dot c, ali karkoli Vaše ime datoteke, 900 00:50:20,110 --> 00:50:23,020 in OS ne lupine v R terminalu. 901 00:50:23,020 --> 00:50:25,200 In to bo ustvariti Knjižnica imenovano foo dot tako. 902 00:50:25,200 --> 00:50:28,180 In potem ga lahko naložite v naš skript ali interaktivno 903 00:50:28,180 --> 00:50:32,310 z ukazno dyn dot obremenitvi. 904 00:50:32,310 --> 00:50:35,720 Potem je funkcija R imenujemo dot c. 905 00:50:35,720 --> 00:50:39,310 >> To traja argumente, ki so Prvo ime funkcijo C 906 00:50:39,310 --> 00:50:40,970 ki jo želite poklicati. 907 00:50:40,970 --> 00:50:43,920 In potem vsi parametri za to funkcijo, 908 00:50:43,920 --> 00:50:45,420 morajo biti v pravilnem zaporedju. 909 00:50:45,420 --> 00:50:48,580 Boste morali uporabiti te vrste prisila deluje kot celo število, kot je 910 00:50:48,580 --> 00:50:52,050 dvojna, kot značaja in kot logična. 911 00:50:52,050 --> 00:50:54,710 In potem, ko se vrne Seznam, ki je spet samo 912 00:50:54,710 --> 00:50:57,550 povezano matriko parametrov imena in vrednosti 913 00:50:57,550 --> 00:51:00,950 potem, ko je funkcija teči. 914 00:51:00,950 --> 00:51:08,520 >> Torej, v tem primeru, ker je pika prod argumenti vec1, vec2 in int n, n ven. 915 00:51:08,520 --> 00:51:11,980 Dot, c imamo dot prod, ime funkcije 916 00:51:11,980 --> 00:51:16,250 smo kličeš, vec1, vec2, tip prisiliti. 917 00:51:16,250 --> 00:51:20,060 Dolžina obeh vektorja, Pravkar sem se odločil vec1 samovoljno. 918 00:51:20,060 --> 00:51:25,479 To bi bilo bolj robusten reči ov celo min dolžina vec1, dolžina vec2. 919 00:51:25,479 --> 00:51:27,520 Potem samo kot dvojna ničla, ker smo v resnici ne 920 00:51:27,520 --> 00:51:29,644 zanima me, kaj gre v ven parameter, ker smo 921 00:51:29,644 --> 00:51:32,270 to nastavitev, da itak nič. 922 00:51:32,270 --> 00:51:37,560 >> In potem rezultati se dogaja, da se big povezana array bistvu 923 00:51:37,560 --> 00:51:42,090 vec1 je karkoli, vec2 je karkoli. 924 00:51:42,090 --> 00:51:44,330 Vendar smo zainteresirani ven, tako da bomo lahko dobili, da se ven. 925 00:51:44,330 --> 00:51:47,780 To je spet zelo primer igrača vmesnika tujega funkcijo. 926 00:51:47,780 --> 00:51:54,160 Toda, če imate za izračun dot izdelki iz masivnih vektorjev v zanke, 927 00:51:54,160 --> 00:51:56,960 ali če morate storiti nekaj drugega v zanko, 928 00:51:56,960 --> 00:51:59,850 in ne želite, da se zanesejo na raziskave, ki ima malo režijske 929 00:51:59,850 --> 00:52:02,830 vgrajen vanjo, je to lahko koristno. 930 00:52:02,830 --> 00:52:05,870 >> Tudi to ni običajno uvodni tema, R. 931 00:52:05,870 --> 00:52:08,571 To ni dobro dokumentirana. 932 00:52:08,571 --> 00:52:11,070 Jaz sem samo zato, ker vključuje Sem ugotovil, da je koristno v preteklosti. 933 00:52:11,070 --> 00:52:13,654 Torej, slabe prakse. 934 00:52:13,654 --> 00:52:15,820 Omenil sem, da obstaja za zanko v funkciji. 935 00:52:15,820 --> 00:52:21,150 Na splošno ne bi smeli, v jezik, ne uporabljajte. 936 00:52:21,150 --> 00:52:26,100 Temelji na tem, kako R izvaja ponovitev interno, je lahko počasno. 937 00:52:26,100 --> 00:52:28,540 Pravkar so tudi videti grda. 938 00:52:28,540 --> 00:52:32,410 >> R ročaji vektorji zelo lepo, tako da velikokrat vam ni treba, da ga uporabljate. 939 00:52:32,410 --> 00:52:35,050 940 00:52:35,050 --> 00:52:38,900 Potem lahko običajno nadomestiti vektor pogosto 941 00:52:38,900 --> 00:52:42,490 s temi funkcijami imenovanih high naročilo funkcije, Map, Reduce, 942 00:52:42,490 --> 00:52:44,404 Najdi, ali Filter. 943 00:52:44,404 --> 00:52:46,320 Jaz bom samo dal nekaj primeri, kaj je to naredil. 944 00:52:46,320 --> 00:52:49,957 Karta je višja funkcija Da, ker je potrebno funkcijo kot argument. 945 00:52:49,957 --> 00:52:52,290 Torej lahko daš to funkcijo, lahko izročiti to matriko, 946 00:52:52,290 --> 00:52:54,640 in bo uporabila funkcijo za vsak element matrike 947 00:52:54,640 --> 00:52:55,681 in vrne nov niz. 948 00:52:55,681 --> 00:52:58,035 949 00:52:58,035 --> 00:53:00,160 Zmanjša, v bistvu daš je niz, ga dal 950 00:53:00,160 --> 00:53:02,930 funkcija, ki traja dva argumenta. 951 00:53:02,930 --> 00:53:07,100 Veljal bo funkcijo prvič, Prvi argument z nekaj starter vrednosti. 952 00:53:07,100 --> 00:53:09,440 Nato do takšnega rezultata na sekundo. 953 00:53:09,440 --> 00:53:12,590 Potem s tem rezultatom v tretjem, nato na tej podlagi v četrti. 954 00:53:12,590 --> 00:53:14,870 In se nato vrnite, ko pride do konca. 955 00:53:14,870 --> 00:53:17,620 Tako na primer, če želite izračunamo vsoto vseh elementov 956 00:53:17,620 --> 00:53:23,240 v polju, kot si morda pokličete zmanjšanje z [neslišno] zmanjšati dodatek 957 00:53:23,240 --> 00:53:26,620 funkcija, kot funkcionalnem a, b, vrne plus b. 958 00:53:26,620 --> 00:53:28,960 In potem začnejo vrednost 0. 959 00:53:28,960 --> 00:53:32,950 >> In vse to, jih lahko najdete opisano v dokumentaciji R, 960 00:53:32,950 --> 00:53:35,720 v vsakem učbeniku na funkcionalno programiranje. 961 00:53:35,720 --> 00:53:38,330 Tam je tudi ta razred funkcije imenovani uporabljajo funkcije, 962 00:53:38,330 --> 00:53:42,807 ki sem don't-- oni malce težko razložiti, 963 00:53:42,807 --> 00:53:45,640 ampak če pogledaš v [neslišno] rezervirana da sem naveden na začetku, 964 00:53:45,640 --> 00:53:48,615 on jih pojasnjuje precej dobro njegova priloga o R programiranja. 965 00:53:48,615 --> 00:53:51,599 966 00:53:51,599 --> 00:53:53,390 Več o praksah, dodajo z vektorji. 967 00:53:53,390 --> 00:53:57,570 968 00:53:57,570 --> 00:53:58,070 Ja? 969 00:53:58,070 --> 00:54:01,651 970 00:54:01,651 --> 00:54:02,900 Mislim, da bi morali popraviti da. 971 00:54:02,900 --> 00:54:07,450 V tej prvi vrstici, Vec puščica, da puščica ne bi smelo biti. 972 00:54:07,450 --> 00:54:10,920 Lahko dodelite vektor, še enkrat, jo sprejme svojo dolžino plus 1 973 00:54:10,920 --> 00:54:13,220 in dodeljevanje neko vrednost, ki. 974 00:54:13,220 --> 00:54:18,970 Da bo razširila vektor, ali ste lahko storite Več enaka c, VEČ newvalue. 975 00:54:18,970 --> 00:54:21,540 Še enkrat, če uporabljate C z en argument kot vektor, 976 00:54:21,540 --> 00:54:23,300 dobljeno hierarhija dobi sploščen. 977 00:54:23,300 --> 00:54:27,160 Torej boste le dobili vektor ki je podaljšan do 1.. 978 00:54:27,160 --> 00:54:30,410 Nikoli to storite. 979 00:54:30,410 --> 00:54:33,330 >> Razlog, zakaj vas ne bi smeli storiti, to je to. 980 00:54:33,330 --> 00:54:37,430 Ko se dodelijo vektor, ga ji daje določeno kos pomnilnika. 981 00:54:37,430 --> 00:54:40,680 Če povečate to velikost vektorja, ima prerazporediti vektor 982 00:54:40,680 --> 00:54:43,820 nekje drugje. 983 00:54:43,820 --> 00:54:46,980 In tako prerazporeditev je precej drag. 984 00:54:46,980 --> 00:54:50,530 Ne bom se spuščal v podrobnosti o tem, kako Pomnilniške delilniki se izvajajo 985 00:54:50,530 --> 00:54:57,280 na ravni operacijskega sistema, vendar pa je potrebno veliko časa 986 00:54:57,280 --> 00:54:58,962 najti nov kos pomnilnika. 987 00:54:58,962 --> 00:55:00,920 In tudi, če ste prerazporeditev serij in veliko 988 00:55:00,920 --> 00:55:03,500 postopne večje koščkih, boste na koncu 989 00:55:03,500 --> 00:55:06,420 z nečim, kar se imenuje razdrobljenost spomin, 990 00:55:06,420 --> 00:55:09,390 če je na voljo pomnilnik razdeljen na veliko majhnih blokov 991 00:55:09,390 --> 00:55:11,500 v spomin delilnikov vidika. 992 00:55:11,500 --> 00:55:15,340 In to postane težje in težje najti pomnilnika za druge stvari. 993 00:55:15,340 --> 00:55:19,455 Torej, namesto, če boste morali to storiti, če morate rastejo vektor iz enega konca 994 00:55:19,455 --> 00:55:24,240 na drugo, namesto da dodajo k njej ves čas, jo pre-dodeliti. 995 00:55:24,240 --> 00:55:29,310 Vec puščica, vector dolžina znaša 1,000, ali karkoli. 996 00:55:29,310 --> 00:55:33,200 >> In potem si lahko samo določite do vrednosti enega prenašalca 997 00:55:33,200 --> 00:55:36,000 čas, ko ste ga dodeli enkrat. 998 00:55:36,000 --> 00:55:40,140 Stekel sem v to, še enkrat, moje poletno delo ko sem pisal NRA diferencial 999 00:55:40,140 --> 00:55:42,120 enačba reševalec. 1000 00:55:42,120 --> 00:55:43,180 Ni simbolična numerično. 1001 00:55:43,180 --> 00:55:49,290 Ideja je, da ko imate ena vrednost za vašo rešitev, 1002 00:55:49,290 --> 00:55:51,240 ste uporabili, da je za izračun naslednjega. 1003 00:55:51,240 --> 00:55:53,700 Torej, moja naravna naiven Naklon je reči, OK, 1004 00:55:53,700 --> 00:55:56,930 tako da bom začela z vektorjem da je znatna dodana vrednost. 1005 00:55:56,930 --> 00:56:01,260 Izračunati od tega naslednje vrednosti da gre na mojo rešitev vektorja, 1006 00:56:01,260 --> 00:56:02,630 in priložite to. 1007 00:56:02,630 --> 00:56:05,290 >> Ustvarite nekaj drugega, dodajte to. 1008 00:56:05,290 --> 00:56:08,120 To je šlo zelo, zelo počasi. 1009 00:56:08,120 --> 00:56:11,540 In ko sem to spoznal in sem spremenil svoj sistem 1010 00:56:11,540 --> 00:56:16,020 s tem da se doda k temu vektorju kot 10.000 do 100.000-krat, 1011 00:56:16,020 --> 00:56:18,910 tik pred dodelitvijo vektor in samo vožnjo s tem. 1012 00:56:18,910 --> 00:56:22,100 Imam več kot 1.000 krat pospešijo. 1013 00:56:22,100 --> 00:56:26,280 Torej, to je zelo pogost past za R programiranja. 1014 00:56:26,280 --> 00:56:31,560 Če morate zgraditi vektor kos za kosom, ga pre-dodeliti. 1015 00:56:31,560 --> 00:56:35,360 1016 00:56:35,360 --> 00:56:40,240 >> Druga pogosta izlet up-- to je moja zadnja slide, ne worry-- je obravnavanje napak. 1017 00:56:40,240 --> 00:56:42,890 R, da se odkrito, ne res je to zelo dobro. 1018 00:56:42,890 --> 00:56:45,010 Obstaja veliko Težave, ki se lahko Izbijati. 1019 00:56:45,010 --> 00:56:48,360 Na primer, če boste dobili niz ali vektor iz funkcije 1020 00:56:48,360 --> 00:56:52,377 da si pričakoval enoten vrednost izvira, ali obratno, 1021 00:56:52,377 --> 00:56:55,460 in se boste peljali, da v funkciji, ki si napisal pričakoval eno vrednost, 1022 00:56:55,460 --> 00:56:57,270 da lahko problem. 1023 00:56:57,270 --> 00:57:01,440 >> Nekatere funkcije vrne null tako kot, recimo, 1024 00:57:01,440 --> 00:57:05,560 branju iz neobstoječ ključ na seznamu. 1025 00:57:05,560 --> 00:57:08,527 Vendar se null ni všeč C Če jo boste poskušali prebrati 1026 00:57:08,527 --> 00:57:11,360 iz starega kazalca, [neslišno] NULL kazalec, je samo SEG napake 1027 00:57:11,360 --> 00:57:14,109 in če ste v vašem razhroščevalniku je vam pove, kje ste. 1028 00:57:14,109 --> 00:57:17,080 1029 00:57:17,080 --> 00:57:20,772 Namesto, null bo do-- funkcije bo naredil nepredvidljive stvari 1030 00:57:20,772 --> 00:57:21,730 če si roko null. 1031 00:57:21,730 --> 00:57:24,575 Like, če ste predali max null, to vam bom dal negativno neskončnost. 1032 00:57:24,575 --> 00:57:27,230 1033 00:57:27,230 --> 00:57:28,190 In tako, ja. 1034 00:57:28,190 --> 00:57:30,880 1035 00:57:30,880 --> 00:57:32,630 In tako se je to zgodilo se mi enkrat, ko sem imel 1036 00:57:32,630 --> 00:57:34,771 spremenila kup polj v moj seznam strukturi 1037 00:57:34,771 --> 00:57:37,520 enkrat brez njihovega spreminjanja drugje ko sem bral od njih. 1038 00:57:37,520 --> 00:57:40,670 In potem sem dobil vse vrste random Rezultati INFINITY obrezovanje 1039 00:57:40,670 --> 00:57:43,080 in jaz ne vem, od kod so prišli. 1040 00:57:43,080 --> 00:57:45,310 In na žalost, tam je nobene prave R strog način 1041 00:57:45,310 --> 00:57:48,940 kjer lahko rečete, če kaj Izgleda da je morda prišlo do napake, 1042 00:57:48,940 --> 00:57:51,960 samo ustaviti tam, tako da sem lahko discipliniran in popraviti. 1043 00:57:51,960 --> 00:57:55,282 1044 00:57:55,282 --> 00:57:57,240 Vendar pa je nekaj imenuje stop, če ni. 1045 00:57:57,240 --> 00:58:00,480 To je enakovredno uveljavljati C je, če ste se pogovarjali o tem. 1046 00:58:00,480 --> 00:58:02,690 Ne verjamem, C uveljavljati je tema, predavanje, 1047 00:58:02,690 --> 00:58:06,370 vendar vaš vodja oddelek Morda so šli preko njega. 1048 00:58:06,370 --> 00:58:10,393 In ne, če ni v bistvu ima vsaka predikat, da vsaka izjava, ki 1049 00:58:10,393 --> 00:58:11,824 je lahko resnična ali neresnična. 1050 00:58:11,824 --> 00:58:13,490 In če je napačna, se ne ustavi svoj program. 1051 00:58:13,490 --> 00:58:18,260 To vam pove točno to, kar vam linijo so bili in kaj stanje ni uspelo. 1052 00:58:18,260 --> 00:58:21,910 >> In to zelo uporaben, na primer, sanity preverjanje, funkcijski vhodi. 1053 00:58:21,910 --> 00:58:25,110 Torej, če imate funkcija in vi pričakujete, recimo, 1054 00:58:25,110 --> 00:58:29,640 če naj bi mi dali datum, hočem datumi so samo vektor dolžine 1 1055 00:58:29,640 --> 00:58:31,735 in nekje med 1 in 31. 1056 00:58:31,735 --> 00:58:34,420 1057 00:58:34,420 --> 00:58:36,170 In če ne, vem, kaj je šlo narobe. 1058 00:58:36,170 --> 00:58:40,280 In sem se odločil, da bi se ustavili pred tem ima naključno potrkal na učinke z oznako 1059 00:58:40,280 --> 00:58:44,190 da je težje izslediti skozi. 1060 00:58:44,190 --> 00:58:47,170 Tako da je ena od možnih uporabite za zaustavitev, če ne. 1061 00:58:47,170 --> 00:58:48,660 >> Kakorkoli že, OK. 1062 00:58:48,660 --> 00:58:49,690 Tako da je konec. 1063 00:58:49,690 --> 00:58:51,290 Najlepša hvala za prihod. 1064 00:58:51,290 --> 00:58:53,710 Sem čin amater pri tem. 1065 00:58:53,710 --> 00:58:57,270 Tako mi je žal, če ste dolgčas ali zmedeni, ali tisto, kar imate. 1066 00:58:57,270 --> 00:59:01,670 Vesel sem, da sprejmejo vprašanja po e-pošti na connorharris@college.harvard.edu~~pobj. 1067 00:59:01,670 --> 00:59:07,230 To velja tudi za vsakogar gledal to v živo ali kasneje. 1068 00:59:07,230 --> 00:59:10,190 Prav tako, čeprav nisem TF, sem tudi zelo 1069 00:59:10,190 --> 00:59:13,900 pripravljeni služiti kot neuradno svetovalec za vsakogar, ki je 1070 00:59:13,900 --> 00:59:15,460 pomočjo raziskav v končni projekt. 1071 00:59:15,460 --> 00:59:19,900 >> Če bi radi, da potem pa se pogovorite s svojim TF 1072 00:59:19,900 --> 00:59:23,750 in nato napišite mi email, tako Vem, kaj delate 1073 00:59:23,750 --> 00:59:26,680 in da bom lahko ustanovi sestanek krat z vami, če želite. 1074 00:59:26,680 --> 00:59:27,990 Torej še enkrat, najlepša hvala. 1075 00:59:27,990 --> 00:59:28,960 Upam, da si užival. 1076 00:59:28,960 --> 00:59:29,450 >> OBČINSTVO: [neslišno]. 1077 00:59:29,450 --> 00:59:30,617 >> CONNER HARRIS: Seveda. 1078 00:59:30,617 --> 00:59:34,910 >> OBČINSTVO: Kakšno projekta bi CS študent uporabiti R za? 1079 00:59:34,910 --> 00:59:37,427 1080 00:59:37,427 --> 00:59:40,510 CONNER HARRIS: Torej, če niste storili nekaj, kar je povsem v rudarjenje podatkov, 1081 00:59:40,510 --> 00:59:43,790 na primer, in tam veliko stvari 1082 00:59:43,790 --> 00:59:46,692 lahko narediš s tem s podatki rudarstvo in strojno učenje. 1083 00:59:46,692 --> 00:59:48,900 Morda boste želeli uporabiti R za sestavni del nečesa. 1084 00:59:48,900 --> 00:59:52,022 Prinesel sem gor, prvotno zgledu o če pišete spletno stran 1085 00:59:52,022 --> 00:59:54,730 in želite teči avtomatizirano statistična analiza vašega strežnika 1086 00:59:54,730 --> 00:59:57,990 dnevniki v določenem času vsak dan, da bi bilo nekaj, kar je 1087 00:59:57,990 --> 01:00:01,260 zelo enostavno narediti v samo kratko R skript, ki lahko načrtujete 1088 01:00:01,260 --> 01:00:04,200 teči vsak večer, na primer. 1089 01:00:04,200 --> 01:00:06,550 >> In prepričan sem, če obstaja kakršen koli razlog, da bi 1090 01:00:06,550 --> 01:00:11,520 želim statistiko ali grafov zmogljivosti in imajo to samodejno zažene namesto 1091 01:00:11,520 --> 01:00:13,790 imajo za interakcijo s stvarmi v Excelu, 1092 01:00:13,790 --> 01:00:16,750 na primer, da je nekaj boste morda želeli uporabiti R za. 1093 01:00:16,750 --> 01:00:21,190 Torej, vse več vprašanj, preden grem? 1094 01:00:21,190 --> 01:00:21,690 Ne? 1095 01:00:21,690 --> 01:00:24,960 Dobro, dobro, še enkrat, hvala hvala za prihod. 1096 01:00:24,960 --> 01:00:29,417