1 00:00:00,000 --> 00:00:05,691 2 00:00:05,691 --> 00:00:07,690 CONNOR HARRIS: Još uvijek sam mislim neke uzbudljive videa 3 00:00:07,690 --> 00:00:12,570 proizveden od strane profesionalnog savjetovanja koji koristi R puno u svom radu. 4 00:00:12,570 --> 00:00:16,329 >> Narator: Što se krije iza statistike, Google Analytics, i vizualizacije 5 00:00:16,329 --> 00:00:19,770 da današnja najsvjetlije znanstvenici podataka i poslovni lideri osloniti na 6 00:00:19,770 --> 00:00:22,012 da snažne odluke? 7 00:00:22,012 --> 00:00:23,540 Ne može se uvijek vidjeti. 8 00:00:23,540 --> 00:00:24,790 Ali, to je tamo. 9 00:00:24,790 --> 00:00:29,460 To se zove R, open source R- statistički programski jezik 10 00:00:29,460 --> 00:00:32,630 da su podaci stručnjaci Svijet tijekom korištenja za sve 11 00:00:32,630 --> 00:00:35,350 od mapiranje širokom društvenom i marketinške trendove online 12 00:00:35,350 --> 00:00:39,210 razvoju financijskog i klimu Modeli koji pomažu pogon naše ekonomije 13 00:00:39,210 --> 00:00:40,780 i zajednice. 14 00:00:40,780 --> 00:00:44,910 >> Ali što je točno R i odakle početi R? 15 00:00:44,910 --> 00:00:48,620 Pa izvorno, R je počeo ovdje s dva profesora 16 00:00:48,620 --> 00:00:51,950 koji je želio bolju statističku platforma za svoje učenike. 17 00:00:51,950 --> 00:00:56,030 Tako su stvoreni jedno po uzoru nakon statističke jeziku S. 18 00:00:56,030 --> 00:01:00,480 Oni su, zajedno s mnogim drugima, Stalno radimo na i pomoću R, 19 00:01:00,480 --> 00:01:05,489 stvaranjem alata za istraživanje i pronalaženje novi zahtjevi za istraživanje svaki dan. 20 00:01:05,489 --> 00:01:07,750 >> Zahvaljujući tome je svijetu trud u zajednici, 21 00:01:07,750 --> 00:01:11,850 R rasla s tisućama korisnički stvorio knjižnica izgrađena 22 00:01:11,850 --> 00:01:15,500 kako bi se poboljšala funkcionalnost i R Publika porijekla kvaliteta valjanosti 23 00:01:15,500 --> 00:01:19,740 i podrška od najpriznatiji industrija lideri u svakom polju koje 24 00:01:19,740 --> 00:01:25,040 koristi R. Što je super, jer je R je najbolji na ono što čini. 25 00:01:25,040 --> 00:01:28,540 Pupi stručnjaci brzo i lako interpretirati, u interakciji s, 26 00:01:28,540 --> 00:01:33,790 i vizualizaciju podataka pokazuje svoje ubrzano rastuća zajednica R korisnika u svijetu 27 00:01:33,790 --> 00:01:36,380 i vidjeti kako open source R nastavlja oblikovati 28 00:01:36,380 --> 00:01:39,340 budućnost statistički Analiza i znanost podataka. 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 Dakle moje vlastite prezentacije će biti malo više trijezni. 32 00:01:50,360 --> 00:01:54,380 To neće uključivati ​​toliko uzbudljivo pozadinsku glazbu. 33 00:01:54,380 --> 00:01:59,160 Ali, kao što ste vidjeli u videu, R je vrsta općeg jezika Svrha programa. 34 00:01:59,160 --> 00:02:03,720 Ali, to je stvoren uglavnom za statističku rad. 35 00:02:03,720 --> 00:02:07,980 >> Dakle, to je dizajniran za statistiku, za analizu podataka, za rudarenje podataka. 36 00:02:07,980 --> 00:02:12,420 I tako da možete vidjeti u puno Dizajn izbor da kreatori R 37 00:02:12,420 --> 00:02:13,320 napravio. 38 00:02:13,320 --> 00:02:15,472 To je dizajniran za uglavnom, ljudi koji nisu 39 00:02:15,472 --> 00:02:17,930 stručnjaci u programiranju, koji samo branje gore programiranje 40 00:02:17,930 --> 00:02:23,460 na strani tako da oni mogu napraviti svoj posao u društvenim znanostima ili u statistici 41 00:02:23,460 --> 00:02:25,440 ili što god. 42 00:02:25,440 --> 00:02:27,850 >> Ima mnogo vrlo važne razlike od C. 43 00:02:27,850 --> 00:02:33,200 No, sintaksa i paradigme da koristi su uglavnom isti. 44 00:02:33,200 --> 00:02:36,830 A ti bi trebao osjećati lijepo koliko kod kuće pravo od šišmiš. 45 00:02:36,830 --> 00:02:38,520 To je imperativ jezik. 46 00:02:38,520 --> 00:02:40,260 >> Ne brinite previše o tome Ako ne znate pojam. 47 00:02:40,260 --> 00:02:42,676 No, tu je razlika između imperativ, deklarativnu, 48 00:02:42,676 --> 00:02:43,810 i funkcionalan. 49 00:02:43,810 --> 00:02:47,600 Imperativ samo znači da bi izjave koje su u osnovi naredbe. 50 00:02:47,600 --> 00:02:52,340 A onda je tumač ili Računalo slijedi ih jednog po jednog. 51 00:02:52,340 --> 00:02:56,630 To je slabo upisali, postoje nema izjava tipa u R. 52 00:02:56,630 --> 00:02:59,130 >> A onda su linije između različitih vrsta 53 00:02:59,130 --> 00:03:03,920 su malo više nego što izgubiti su u C, na primjer. 54 00:03:03,920 --> 00:03:06,450 I kao što sam rekao postoje vrlo opsežna objekti 55 00:03:06,450 --> 00:03:15,610 za grafičkim, za statističku Analiza za rudarenje podataka. 56 00:03:15,610 --> 00:03:19,540 To su i ugrađeni u jezik i, kao što je video, rekao je, 57 00:03:19,540 --> 00:03:23,680 tisuće treće strane knjižnica koje možete preuzeti i koristiti besplatno 58 00:03:23,680 --> 00:03:25,340 s vrlo labave uvjete licence. 59 00:03:25,340 --> 00:03:28,800 60 00:03:28,800 --> 00:03:31,500 >> Dakle, općenito, ja bih preporučiti da pogledate ove dvije knjige 61 00:03:31,500 --> 00:03:34,610 ako ćeš raditi na R. One od njih je službeni R početnike 62 00:03:34,610 --> 00:03:35,110 vodič. 63 00:03:35,110 --> 00:03:38,660 To održava temeljne programeri R. 64 00:03:38,660 --> 00:03:42,400 Možete ga skinuti opet, besplatno naknade i pravno na taj link tamo. 65 00:03:42,400 --> 00:03:45,430 66 00:03:45,430 --> 00:03:49,869 Svi ovi slajdovi su ići na internetu, na web stranici CS50 67 00:03:49,869 --> 00:03:50,660 Nakon što je to učinio. 68 00:03:50,660 --> 00:03:53,690 Dakle, nema potrebe za kopiranje stvari dolje grčevito. 69 00:03:53,690 --> 00:03:56,800 >> Drugi je udžbenik po Cosma Shalizi, 70 00:03:56,800 --> 00:04:00,100 koji je statistika profesor na Carnegie Mellon, pod nazivom Advanced Data 71 00:04:00,100 --> 00:04:02,160 Analiza iz Osnovna gledišta. 72 00:04:02,160 --> 00:04:04,010 Ovo nije prvenstveno Ra knjiga. 73 00:04:04,010 --> 00:04:07,130 To je statistika knjiga i to je analiza podataka knjiga. 74 00:04:07,130 --> 00:04:11,990 No, to je vrlo pristupačna ljudima koji imate minimum znanja statistike. 75 00:04:11,990 --> 00:04:13,750 >> Nikada nisam uzeo službeni tečaj. 76 00:04:13,750 --> 00:04:17,269 Ja samo znam djeliće iz različitih srodnih predmeta 77 00:04:17,269 --> 00:04:18,579 koje sam uzeti tečajeve. 78 00:04:18,579 --> 00:04:21,839 I ja sam bio u stanju razumjeti to savršeno dobro. 79 00:04:21,839 --> 00:04:25,630 >> Sve brojke su dane u R. Oni su u R 80 00:04:25,630 --> 00:04:30,280 i oni također imaju kod oglasi ispod svakog lika koji ti reći 81 00:04:30,280 --> 00:04:33,270 Kako napraviti svaki lik s R koda. 82 00:04:33,270 --> 00:04:37,400 A to je vrlo korisno ako pokušavate oponašati 83 00:04:37,400 --> 00:04:38,650 neki lik vidite u knjizi. 84 00:04:38,650 --> 00:04:47,840 >> I opet free download stat.cmu.edu/cshalizi/ Žao nam je, 85 00:04:47,840 --> 00:04:50,230 da treba srezati tilde cshalizi. 86 00:04:50,230 --> 00:04:53,150 Pobrinut ću se da to ispraviti kada su službeni slajdovi ići gore. 87 00:04:53,150 --> 00:04:57,000 / ADAfaEPoV što je samo skraćenica naslova knjiga. 88 00:04:57,000 --> 00:04:59,850 89 00:04:59,850 --> 00:05:02,500 >> Dakle, općenito caveats-- R ima puno mogućnosti. 90 00:05:02,500 --> 00:05:05,331 Ja sam samo će biti u mogućnosti pokriti površina puno stvari. 91 00:05:05,331 --> 00:05:08,580 I prvi dio seminara će biti nešto od odlagališta podataka. 92 00:05:08,580 --> 00:05:11,437 Ja sam vrlo žao zbog toga. 93 00:05:11,437 --> 00:05:13,770 Uglavnom, idem vas upoznati s puno stvari 94 00:05:13,770 --> 00:05:15,350 pravo isključiti šišmiš, ide što brže moguće. 95 00:05:15,350 --> 00:05:17,058 A onda smo dobili zabavan dio, što je 96 00:05:17,058 --> 00:05:20,570 Demo gdje mogu vam pokazati sve da smo razgovarali o tome na zaslonu. 97 00:05:20,570 --> 00:05:23,321 A možete poigrati na svoju vlastitu. 98 00:05:23,321 --> 00:05:26,070 Tako će biti puno tehničke stvari povratiti se ovdje. 99 00:05:26,070 --> 00:05:28,060 Ne brinite o kopiranju svega što se razbije. 100 00:05:28,060 --> 00:05:31,740 Jer možete dobiti sve stvari na web stranici CS50 kasnije. 101 00:05:31,740 --> 00:05:37,780 I B, to zapravo nije toliko važno zapamtiti ovaj iz slajdova. 102 00:05:37,780 --> 00:05:40,462 To je važnije da ste dobili neke intuitivne objekt s njim 103 00:05:40,462 --> 00:05:44,220 i da dolazi iz samo igranje okolo. 104 00:05:44,220 --> 00:05:45,720 >> Pa zašto koristiti R? 105 00:05:45,720 --> 00:05:49,440 Uglavnom, ako imate projekt koji uključuje rudarstvo velikih skupova podataka, podaci 106 00:05:49,440 --> 00:05:52,664 vizualizacija, što treba koristiti R. Ako ste 107 00:05:52,664 --> 00:05:55,830 radi komplicirane statističke analize, to će biti teško u Excelu, 108 00:05:55,830 --> 00:05:58,010 Na primjer, to bi Također se good-- također 109 00:05:58,010 --> 00:06:00,506 ako radite statistička Analiza koja je automatiziran. 110 00:06:00,506 --> 00:06:02,130 Recimo da ste održavanje web stranica. 111 00:06:02,130 --> 00:06:06,320 A želite pročitati poslužitelja log svaki dan i sastaviti neki popis, 112 00:06:06,320 --> 00:06:10,320 poput najboljih zemalja korisnici dolaze iz, 113 00:06:10,320 --> 00:06:15,100 neki sažetak statistike o tome koliko dugo oni troše na svoje web stranice ili bilo što drugo. 114 00:06:15,100 --> 00:06:16,910 A želite pokrenuti svaki dan. 115 00:06:16,910 --> 00:06:20,280 >> Sada, ako ste to radili u Excel, ćeš morati ići na svoj server log, 116 00:06:20,280 --> 00:06:23,490 uvesti da u Excel proračunske tablice podataka, 117 00:06:23,490 --> 00:06:24,910 izvoditi sve analize ručno. 118 00:06:24,910 --> 00:06:27,100 S R, možete samo napisati jednu skriptu. 119 00:06:27,100 --> 00:06:29,520 Raspored je pokrenuti svaki dan iz operacijskog sustava. 120 00:06:29,520 --> 00:06:33,657 I onda svake noći u 2:00 ujutro, ili kad god vi to raspored za pokretanje, 121 00:06:33,657 --> 00:06:35,990 to će izgledati kroz svoje internet prometa za taj dan. 122 00:06:35,990 --> 00:06:39,010 A onda sljedeći dan, vi ćete su ovu sjajnu, novo izvješće 123 00:06:39,010 --> 00:06:41,710 ili bilo što sa svim Informacije koje si tražio. 124 00:06:41,710 --> 00:06:44,960 125 00:06:44,960 --> 00:06:50,217 >> Tako je u osnovi R za Cisco programiranje u odnosu na Cisco analize. 126 00:06:50,217 --> 00:06:51,050 Prethodno je učinio. 127 00:06:51,050 --> 00:06:53,104 Idemo u stvarnim stvarima. 128 00:06:53,104 --> 00:06:55,020 Dakle, postoje tri stvarna vrste u jeziku. 129 00:06:55,020 --> 00:06:56,120 Postoji numerički tip. 130 00:06:56,120 --> 00:07:01,250 Postoji vrsta razlika između cijeli brojevi i plutajuće točke, 131 00:07:01,250 --> 00:07:02,769 ali zapravo nije. 132 00:07:02,769 --> 00:07:04,560 Postoji znak tip koji je žice. 133 00:07:04,560 --> 00:07:07,100 A tu je logičan tip koji je logičke izraze. 134 00:07:07,100 --> 00:07:11,080 >> A možete pretvoriti između vrsta pomoću ove funkcije kao numerički, 135 00:07:11,080 --> 00:07:15,220 kao lik, kao i logično. 136 00:07:15,220 --> 00:07:17,510 Ako nazovete, primjerice, kao brojčani na žici, 137 00:07:17,510 --> 00:07:20,030 to će pokušati pročitati taj string kao broj, na isti način 138 00:07:20,030 --> 00:07:25,897 da a2i i scanf učiniti, i C. Ako nazovete kao brojčani na točno ili netočno 139 00:07:25,897 --> 00:07:26,980 to će se pretvoriti u 1 ili 0. 140 00:07:26,980 --> 00:07:29,110 Ako poziv kao znak na bilo što to će 141 00:07:29,110 --> 00:07:32,550 pretvoriti da u string. 142 00:07:32,550 --> 00:07:34,990 >> A onda postoje vektori i matrice. 143 00:07:34,990 --> 00:07:37,580 Dakle, vektori su u osnovi 1 dimenzionalni polja. 144 00:07:37,580 --> 00:07:40,600 Oni su ono što mi zovemo polja u C. Matrice, 2 dimenzionalni polja. 145 00:07:40,600 --> 00:07:42,350 A onda više dimenzionalni polja možete 146 00:07:42,350 --> 00:07:48,560 imaju 3, 4, 5 dimenzije ili što god od numeričkih vrijednosti, žice, 147 00:07:48,560 --> 00:07:52,860 logičkih vrijednosti. 148 00:07:52,860 --> 00:07:55,380 >> Također imate popise koje su vrsta asocijativni niz. 149 00:07:55,380 --> 00:07:57,390 Ja ću doći u tu malo. 150 00:07:57,390 --> 00:07:59,390 Dakle, jedna važna stvar da putovanja ljude u istraživanje 151 00:07:59,390 --> 00:08:01,470 da nema Pravi, čisti atomske vrste. 152 00:08:01,470 --> 00:08:05,870 Nema stvarna razlika između broj, kao numerička vrijednost, 153 00:08:05,870 --> 00:08:07,920 i popis numeričkih vrijednosti. 154 00:08:07,920 --> 00:08:12,370 Brojčane vrijednosti su zapravo isto kao i vektori duljine 1. 155 00:08:12,370 --> 00:08:14,959 A to je broj važne implikacije. 156 00:08:14,959 --> 00:08:17,500 Jedan, to znači da možete učiniti stvari vrlo lako koje uključuju 157 00:08:17,500 --> 00:08:21,037 kao što je dodavanje broja na vektor. 158 00:08:21,037 --> 00:08:23,120 R će zapravo lik što misliš pod time. 159 00:08:23,120 --> 00:08:24,610 A ja ću na to u sekundi. 160 00:08:24,610 --> 00:08:27,930 To također znači da ne postoji način za tip checker-- u opsegu 161 00:08:27,930 --> 00:08:30,530 da se nešto slično postoji u R- reći 162 00:08:30,530 --> 00:08:33,780 kada ste prošli u jednoj vrijednosti kada je očekuje polje ili obratno. 163 00:08:33,780 --> 00:08:39,159 A to može uzrokovati neke čudno nevolje koje sam naletio kada 164 00:08:39,159 --> 00:08:42,252 Sam bio koristeći R tijekom moje ljetni posao. 165 00:08:42,252 --> 00:08:43,710 I ne postoje mješoviti tip polja. 166 00:08:43,710 --> 00:08:46,543 Dakle, ne možete imati niz bile Prvi elementi se, ne znam, 167 00:08:46,543 --> 00:08:49,332 string "Ivan", a Drugi element je broj 42. 168 00:08:49,332 --> 00:08:52,540 Ako pokušate to učiniti, onda ćete dobiti sve samo pretvoriti u niz. 169 00:08:52,540 --> 00:08:54,760 Dakle, imamo niz Ivan, niz 42. 170 00:08:54,760 --> 00:08:58,250 171 00:08:58,250 --> 00:09:02,025 >> Tako neobično sintaktička features-- najviše R sintaksa je vrlo sličan C. 172 00:09:02,025 --> 00:09:04,690 Postoji nekoliko važnih razlika. 173 00:09:04,690 --> 00:09:05,620 Tipkanje je vrlo slaba. 174 00:09:05,620 --> 00:09:07,360 Dakle, nema varijabilni deklaracije. 175 00:09:07,360 --> 00:09:12,670 Dodjela koristi čudno Operator pogreška manja od crticom. 176 00:09:12,670 --> 00:09:15,340 Komentari su s oznakom hash. 177 00:09:15,340 --> 00:09:19,230 Mislim da sada dana mi to zovemo hashtag iako to zapravo nije accurate-- ne 178 00:09:19,230 --> 00:09:21,810 dvostruki udarac. 179 00:09:21,810 --> 00:09:24,710 >> Modularni ostaci su s %% znakovima. 180 00:09:24,710 --> 00:09:30,172 Cijeli broj podjela je s% /%, što je vrlo teško čitati kad je usmjeren 181 00:09:30,172 --> 00:09:30,880 se na zaslonu. 182 00:09:30,880 --> 00:09:34,150 183 00:09:34,150 --> 00:09:37,200 Možete dobiti raspone integers s debelog crijeva. 184 00:09:37,200 --> 00:09:41,840 Tako 2,5 će vam dati vektor svih brojeva 2. do 5.. 185 00:09:41,840 --> 00:09:44,530 >> Nizovi su jedna indeksirane, što vijci puno ljudi 186 00:09:44,530 --> 00:09:47,540 gore ako su od više tipični programski jezici, 187 00:09:47,540 --> 00:09:50,450 kao što su C, gdje je većina stvari su nula-indeksiraju. 188 00:09:50,450 --> 00:09:54,420 Opet, ovo je mjesto gdje nasljeđe R-a kao jezik za slično ne 189 00:09:54,420 --> 00:09:56,560 profesionalni programeri dolazi u. 190 00:09:56,560 --> 00:09:59,680 Ako ste sociolog ili ekonomist ili nešto 191 00:09:59,680 --> 00:10:01,980 a vi pokušavate koristiti R osnovi kao dodatak 192 00:10:01,980 --> 00:10:03,832 na svoj važniji stručni rad, 193 00:10:03,832 --> 00:10:06,040 ti si idući u nađi jedna indeksiranje malo prirodnije. 194 00:10:06,040 --> 00:10:09,890 Budući da počnete brojati na 1 u svakodnevnom životu, a ne 0. 195 00:10:09,890 --> 00:10:13,260 >> Za-petlje, to je sličan foreach izgraditi u PHP, 196 00:10:13,260 --> 00:10:17,090 koji ćete doći do saznajte in-- uskoro. 197 00:10:17,090 --> 00:10:22,540 Što je za vrijednosti u vektoru i onda možete učiniti stvari s vrijednošću. 198 00:10:22,540 --> 00:10:24,040 PUBLIKA: To je iskrsnulo u predavanju. 199 00:10:24,040 --> 00:10:26,248 CONNOR HARRIS: Oh, to je doći do predavanje, izvrsno. 200 00:10:26,248 --> 00:10:29,815 PUBLIKA: Zadatak je da trebalo ukazati s desna na lijevo? 201 00:10:29,815 --> 00:10:31,440 CONNOR HARRIS: Od desna na lijevo, da. 202 00:10:31,440 --> 00:10:34,720 Možete misliti o njemu kao vrijednost na pravo gurnuo u varijablu 203 00:10:34,720 --> 00:10:36,240 na lijevo. 204 00:10:36,240 --> 00:10:36,781 PUBLIKA: U redu. 205 00:10:36,781 --> 00:10:39,770 206 00:10:39,770 --> 00:10:42,330 >> CONNOR HARRIS: I na kraju Funkcija sintaksa je malo čudno. 207 00:10:42,330 --> 00:10:48,460 Imate Naziv Funkcija foo, dodijeljen ovoj funkciji ključne riječi, nakon čega slijedi 208 00:10:48,460 --> 00:10:51,530 svih argumenata, a zatim i Tijelo funkcije nakon toga. 209 00:10:51,530 --> 00:10:53,280 Opet te stvari mogu čini malo čudno. 210 00:10:53,280 --> 00:10:57,181 Oni će postati druga priroda poslije Ako se radi s jezikom za malo. 211 00:10:57,181 --> 00:10:58,930 Dakle vektora, način ste izgraditi vektor 212 00:10:58,930 --> 00:11:04,550 je upišete C, što je ključna riječ, a zatim svi brojevi koje želite ili žice 213 00:11:04,550 --> 00:11:06,490 ili što god. 214 00:11:06,490 --> 00:11:07,995 Argumenti također biti vektori. 215 00:11:07,995 --> 00:11:09,620 No, što je rezultiralo niz dobiva spljošteno. 216 00:11:09,620 --> 00:11:14,385 Dakle, ne možete imati polja gdje je to neki elementi su pojedinačni brojevi 217 00:11:14,385 --> 00:11:17,010 a neki elementi su sami polja. 218 00:11:17,010 --> 00:11:20,010 >> Dakle, ako pokušate izgraditi Niz bili prvi element 4 219 00:11:20,010 --> 00:11:22,370 a drugi element je niz 3,5 ćete 220 00:11:22,370 --> 00:11:25,890 samo dobiti tri niz elemenata, 4,3,5. 221 00:11:25,890 --> 00:11:27,760 Oni ne mogu biti mješovitog tipa. 222 00:11:27,760 --> 00:11:32,290 Ako pokušate čitati ili pisati izvan granica vektora 223 00:11:32,290 --> 00:11:36,640 ćete dobiti tu vrijednost pod nazivom NA koja se zalaže za nestalom vrijednosti. 224 00:11:36,640 --> 00:11:39,900 I to je namijenjen kao statističari, koji 225 00:11:39,900 --> 00:11:43,080 rade s nepotpunim skupova podataka. 226 00:11:43,080 --> 00:11:46,460 >> Ako se prijavite funkciju koja je trebala uzeti samo jedan broj na niz 227 00:11:46,460 --> 00:11:49,220 onda ono što ćete dobiti jest, Funkcija će kartu preko polja. 228 00:11:49,220 --> 00:11:52,130 Dakle, ako je vaša funkcija recimo traje broj i vraća ga četvornih. 229 00:11:52,130 --> 00:11:58,170 Možete podnijeti zahtjev da se na niz 2,3,5 Ono što ćete dobiti je niz 4,9,25. 230 00:11:58,170 --> 00:12:00,010 >> A to je vrlo korisno jer to vam znači 231 00:12:00,010 --> 00:12:03,374 ne moraju pisati za petlje za radi vrlo jednostavne stvari kao što je nanošenje 232 00:12:03,374 --> 00:12:05,040 funkcija za sve članove skupa podataka. 233 00:12:05,040 --> 00:12:08,557 Koji ako radite s velikim setovi podataka, što morate učiniti mnogo. 234 00:12:08,557 --> 00:12:10,390 Binarni funkcije Primijenjena ulazak upisom. 235 00:12:10,390 --> 00:12:12,430 Ja ću doći u to. 236 00:12:12,430 --> 00:12:16,750 Možete im pristupiti sa polja ili vektori s uglatim zagradama. 237 00:12:16,750 --> 00:12:22,300 Dakle, naziv vektor četvornih zagrade 1 će vam dati prvi element. 238 00:12:22,300 --> 00:12:25,510 Ime Vector četvornih zagrade 2 će vam dati drugi element. 239 00:12:25,510 --> 00:12:27,530 >> Možete proći na vektor indeksa i vi ćete 240 00:12:27,530 --> 00:12:29,640 vratiti se u osnovi pod faktor. 241 00:12:29,640 --> 00:12:34,990 Dakle, što možete učiniti vektor naziv zagrade C, 2,4 a vi ćete izaći vektor koji sadrži 242 00:12:34,990 --> 00:12:38,804 drugog i četvrtog elementi polja. 243 00:12:38,804 --> 00:12:40,720 A ako želiš samo Kratki sažetak statistika 244 00:12:40,720 --> 00:12:47,529 vektora kao interkvartilni raspon, medijan, maksimalno, bez obzira, 245 00:12:47,529 --> 00:12:49,820 možete samo upisati sažetak Naziv vektor i dobiti to van. 246 00:12:49,820 --> 00:12:52,680 To zapravo i nije korisno u programiranje, ali ako igrate 247 00:12:52,680 --> 00:12:55,990 oko skupova podataka, to je zgodan. 248 00:12:55,990 --> 00:12:58,650 >> Matrices-- osnovi viših dimenzionalnih polja. 249 00:12:58,650 --> 00:13:01,190 Oni su ovu posebnu zapis sintaksu. 250 00:13:01,190 --> 00:13:07,620 Matrica s nizom koje dobiva ispunjen in-- Žao nam je, matrice s podacima, 251 00:13:07,620 --> 00:13:09,780 Broj redaka, broj stupaca. 252 00:13:09,780 --> 00:13:13,180 Kad imate neke podatke, što ispunjava Niz osnovi ide od vrha do dna 253 00:13:13,180 --> 00:13:13,380 prvi. 254 00:13:13,380 --> 00:13:14,190 Zatim lijeva na desno. 255 00:13:14,190 --> 00:13:15,030 Dakle, kao što je to. 256 00:13:15,030 --> 00:13:17,809 257 00:13:17,809 --> 00:13:19,600 I R je izgrađen u matrix multipliciranju, 258 00:13:19,600 --> 00:13:24,310 spektra rastvara, dijagonalizacija, puno stvari. 259 00:13:24,310 --> 00:13:27,785 Ako želite veći dimenzionalni polja, tako da 3, 4, 5, 260 00:13:27,785 --> 00:13:29,410 ili što god dimenzije možete to učiniti. 261 00:13:29,410 --> 00:13:34,400 Sintaksa je niz prigušeno jednak c, onda popis dimenzija. 262 00:13:34,400 --> 00:13:38,620 Dakle, ako želite 4 dimenzionalni niz dimenzija 4, 7, 8, 9, polje, 263 00:13:38,620 --> 00:13:45,470 Dim jednak c (4,7,8,9). 264 00:13:45,470 --> 00:13:51,180 >> Možete pristupiti pojedinačne vrijednosti sa zagradama Prvi zapis zarez drugi ulaz. 265 00:13:51,180 --> 00:13:54,870 Možete dobiti cijeli kriške redaka ili stupaca. 266 00:13:54,870 --> 00:13:59,900 S ovim nepotpunim sintaksa je Samo red broj zarez ili zarez stupac 267 00:13:59,900 --> 00:14:00,400 broj. 268 00:14:00,400 --> 00:14:02,874 269 00:14:02,874 --> 00:14:04,540 Dakle, popisi su vrsta povezanih polja. 270 00:14:04,540 --> 00:14:06,360 Oni imaju svoje sintaksu ovdje. 271 00:14:06,360 --> 00:14:08,320 Opet ne grčevito kopirati sve ovo dolje. 272 00:14:08,320 --> 00:14:11,370 To je samo tako da ljudi prolazi kroz slajdove kasnije 273 00:14:11,370 --> 00:14:13,089 ima sve to u lijepoj referencu. 274 00:14:13,089 --> 00:14:16,130 A to će postati vrlo prirodno jednom Zapravo sam prošetati kroz demo. 275 00:14:16,130 --> 00:14:19,295 276 00:14:19,295 --> 00:14:20,920 Tako navodi osnovi povezane polja. 277 00:14:20,920 --> 00:14:27,040 Možete pristupiti vrijednosti s Naziv popisa, dolar znak, ključ. 278 00:14:27,040 --> 00:14:31,370 Dakle, ako se vaš popis je nazvana foo, onda možete pristupiti tako. 279 00:14:31,370 --> 00:14:37,032 Možete dobiti cijeli ključ-vrijednost par prolaskom u kvadratnom indeksa nosača. 280 00:14:37,032 --> 00:14:39,240 Ako ste pročitali iz nepostojećeg Ključ, dobit ćete null. 281 00:14:39,240 --> 00:14:41,150 Neće pogreške. 282 00:14:41,150 --> 00:14:43,590 Stvar je, R će učiniti što je koliko s null kao što se može. 283 00:14:43,590 --> 00:14:46,580 A to može značiti da, ako ste ne očekujući da se nulta iz 284 00:14:46,580 --> 00:14:51,840 nekog popisa za čitanje, da ćete dobiti neki nepredvidljive pogreške Dalje 285 00:14:51,840 --> 00:14:52,620 crta. 286 00:14:52,620 --> 00:14:54,890 >> To mi se dogodilo mom ljetni posao, kada sam bio koristeći R 287 00:14:54,890 --> 00:14:58,410 gdje sam promijenio kako neki Popis definiran na jednom mjestu 288 00:14:58,410 --> 00:15:05,410 ali nije promijenio kasnije na kod koji čita vrijednosti od njega. 289 00:15:05,410 --> 00:15:10,190 I tako ono što se dogodilo da sam bio čitanje null vrijednosti iz ovog popisa, 290 00:15:10,190 --> 00:15:13,090 ih prolazi na funkcijama, i biti vrlo zbunjeni 291 00:15:13,090 --> 00:15:16,000 kad sam dobio sve vrste slučajni beskonačnosti pomalja 292 00:15:16,000 --> 00:15:16,790 u ovu funkciju. 293 00:15:16,790 --> 00:15:20,730 Jer ako se primjenjuju određeni maksimalni ili minimalni funkcije na nulu, 294 00:15:20,730 --> 00:15:22,570 ćete dobiti beskonačan vrijednosti van. 295 00:15:22,570 --> 00:15:26,400 296 00:15:26,400 --> 00:15:29,180 >> Podatkovni, oni podrazred popisa. 297 00:15:29,180 --> 00:15:31,170 Svaka vrijednost je vektor od iste dužine. 298 00:15:31,170 --> 00:15:34,220 I oni koriste za predstavljanje, osnovi, podataka tablice. 299 00:15:34,220 --> 00:15:36,175 Tu je ovo inicijalizacije sintakse. 300 00:15:36,175 --> 00:15:38,800 To će sve, opet, biti puno jasnije kada se na demo. 301 00:15:38,800 --> 00:15:42,240 302 00:15:42,240 --> 00:15:44,240 I lijepa stvar o Okviri podataka je da ti 303 00:15:44,240 --> 00:15:49,380 mogu dati imena na sva stupcima i imena svim redovima. 304 00:15:49,380 --> 00:15:53,890 I tako to čini pristupa ih malo ugodnija. 305 00:15:53,890 --> 00:15:59,130 Također ovo je kako većina funkcije koje čitati podatke iz Excel tablice 306 00:15:59,130 --> 00:16:03,820 ili iz tekstualnih datoteka, na primjer, će pročitati u svojim podacima. 307 00:16:03,820 --> 00:16:07,555 Oni će ga staviti u neka vrsta okvira podataka. 308 00:16:07,555 --> 00:16:09,680 Dakle functions-- funkcija sintaksa je malo čudno. 309 00:16:09,680 --> 00:16:16,160 Opet to je naziv funkcije, dodijeliti, ovu funkciju ključnih riječi i potom 310 00:16:16,160 --> 00:16:17,900 popis argumenata. 311 00:16:17,900 --> 00:16:24,080 Dakle, postoje neke lijepe stvari o tome kako funkcionira raditi ovdje. 312 00:16:24,080 --> 00:16:28,170 Za jednu, zapravo možete dodijeliti Zadane vrijednosti za određene argumente. 313 00:16:28,170 --> 00:16:32,910 Tako da mogu reći R1 equals-- možete reći foo 314 00:16:32,910 --> 00:16:38,290 je funkcija gdje su R1 jednako nešto po defaultu ako korisnik specificira 315 00:16:38,290 --> 00:16:39,090 nema argumenata. 316 00:16:39,090 --> 00:16:41,932 Inače, to je ono što je stavio u. 317 00:16:41,932 --> 00:16:44,140 A to je vrlo zgodan jer puno naših funkcija 318 00:16:44,140 --> 00:16:47,910 često imaju na desetke ili stotine argumenata. 319 00:16:47,910 --> 00:16:51,210 Primjerice one za crtanje grafovi ili plotanje raspršeni zemljišta 320 00:16:51,210 --> 00:16:54,430 imaju argumente koji kontroliraju sve iz naslova i os 321 00:16:54,430 --> 00:16:59,512 Oznake na boju linije regresije. 322 00:16:59,512 --> 00:17:01,470 I tako, ako ne želite da se ljudi naveli 323 00:17:01,470 --> 00:17:04,050 svaki jedan od tih stotine argumenata 324 00:17:04,050 --> 00:17:07,674 kontrolira svaki aspekt zemljište ili regresija ili što god, 325 00:17:07,674 --> 00:17:09,299 to je lijepo imati ove zadane vrijednosti. 326 00:17:09,299 --> 00:17:12,700 327 00:17:12,700 --> 00:17:19,146 >> A onda možete zapravo napišite što ste vidjeli ovdje. 328 00:17:19,146 --> 00:17:22,869 Ili naći bolji primjer. 329 00:17:22,869 --> 00:17:28,690 Kad nazovete funkcije možete zapravo nazovite ih koristite nazive argumenata. 330 00:17:28,690 --> 00:17:33,919 Dakle ovdje je primjer matrica konstruktora. 331 00:17:33,919 --> 00:17:34,960 Potrebno je tri argumente. 332 00:17:34,960 --> 00:17:36,760 Obično imate podatke, što je vektor. 333 00:17:36,760 --> 00:17:38,920 Imate N red, koji je broj redova. 334 00:17:38,920 --> 00:17:41,160 Imate N cols-- broj stupaca. 335 00:17:41,160 --> 00:17:43,920 Stvar je ako upišete N red jednak god 336 00:17:43,920 --> 00:17:46,520 i N Col jednak god kada vi zovete tu funkciju, 337 00:17:46,520 --> 00:17:47,770 zapravo možete ih preokrenuti. 338 00:17:47,770 --> 00:17:51,590 Dakle, možete staviti N col prvi i N red drugi i to će učiniti nikakvu razliku. 339 00:17:51,590 --> 00:17:54,660 Dakle, to je lijepo malo osobina. 340 00:17:54,660 --> 00:17:56,260 >> Jeste uvoz i izvoz. 341 00:17:56,260 --> 00:18:00,010 To se može učiniti, u osnovi. 342 00:18:00,010 --> 00:18:03,816 Tu su i sadržaji za napisati proizvoljna R protivi binarna datoteka 343 00:18:03,816 --> 00:18:05,190 a zatim ih pročitati ponovno kasnije. 344 00:18:05,190 --> 00:18:08,030 Koji je zgodan ako radite veliki interaktivnim sjednici R 345 00:18:08,030 --> 00:18:12,850 i morate spasiti stvari vrlo brzo. 346 00:18:12,850 --> 00:18:16,460 Po defaultu R ima radni imenik da se datoteka napisana u 347 00:18:16,460 --> 00:18:19,410 i pročitati natrag iz. 348 00:18:19,410 --> 00:18:22,350 Možete vidjeti da je s getwg, promijenite ga setdw. 349 00:18:22,350 --> 00:18:25,630 Ništa posebno zanimljivo ovdje 350 00:18:25,630 --> 00:18:28,270 >> Tako sada stvarni statistika stuff-- multilinear regresiju. 351 00:18:28,270 --> 00:18:30,960 352 00:18:30,960 --> 00:18:34,910 Tako uobičajene sintaksi je malo komplicirano. 353 00:18:34,910 --> 00:18:37,260 Model je veliki objekt osnovi. 354 00:18:37,260 --> 00:18:39,910 Ona dobiva dodijeljen LM, što je funkcija poziva. 355 00:18:39,910 --> 00:18:43,840 Prvi element, Y tilda x1 plus god. 356 00:18:43,840 --> 00:18:46,574 357 00:18:46,574 --> 00:18:47,990 Moj sintaksa ovdje je malo zbunjujuće. 358 00:18:47,990 --> 00:18:49,490 Ja sam jako žao, to je standardni način 359 00:18:49,490 --> 00:18:50,990 to računalo znanstvene knjige to. 360 00:18:50,990 --> 00:18:54,890 Ali, to je malo čudno. 361 00:18:54,890 --> 00:18:58,200 >> Tako je u osnovi, to je LM zagrade, prva točka 362 00:18:58,200 --> 00:19:06,730 je variable-- žao, ovisi varijabla tilda x1 x2 plus plus 363 00:19:06,730 --> 00:19:10,910 Međutim, mnogi nezavisni varijable imate. 364 00:19:10,910 --> 00:19:14,240 I onda to može biti ili vektori, svi iste duljine. 365 00:19:14,240 --> 00:19:16,220 Ili mogu biti stupac zaglavlja u okviru podataka 366 00:19:16,220 --> 00:19:18,553 da li samo navesti u Drugi okvir Podaci argument. 367 00:19:18,553 --> 00:19:23,270 368 00:19:23,270 --> 00:19:26,380 >> Također možete odrediti složeniji formulu 369 00:19:26,380 --> 00:19:31,990 tako da ne morate linearno regres za jednu zavisnu varijablu, 370 00:19:31,990 --> 00:19:34,440 ili jedan vektor u prethodno postojećih vektora. 371 00:19:34,440 --> 00:19:38,070 To možete učiniti, primjerice, vektor y komponenta kvadrat plus 1 372 00:19:38,070 --> 00:19:42,100 i regres da protiv prijavite neke druge vektora. 373 00:19:42,100 --> 00:19:45,200 Možete ispisati sažetke Model s ovom naredbom zove 374 00:19:45,200 --> 00:19:48,607 summary-- samo sažetak navodnik model. 375 00:19:48,607 --> 00:19:50,190 Opet nešto drugo trebam pojasniti. 376 00:19:50,190 --> 00:19:55,407 377 00:19:55,407 --> 00:19:58,615 Nešto drugo što će se ispravio kad su slajdovi poći na internetu. 378 00:19:58,615 --> 00:20:01,127 379 00:20:01,127 --> 00:20:03,210 Ako samo želite izračunati jednostavna korelacija 380 00:20:03,210 --> 00:20:09,170 možete koristiti korelacija vektor 1 vektor 2 funkcija jezgre. 381 00:20:09,170 --> 00:20:11,856 Metoda je po defaultu Pearson korelacije. 382 00:20:11,856 --> 00:20:13,480 To su oni standardne možete učiniti. 383 00:20:13,480 --> 00:20:15,990 Tu je također i Kopljanik Kendell korelacije 384 00:20:15,990 --> 00:20:19,530 koje su neke razne rang poredak korelacija. 385 00:20:19,530 --> 00:20:23,600 Pa oni ne izračunali proizvod trenutke između samih vektora, 386 00:20:23,600 --> 00:20:28,511 ali vektora rang narudžbi. 387 00:20:28,511 --> 00:20:29,510 Ja ću objasniti kasnije. 388 00:20:29,510 --> 00:20:30,120 >> PUBLIKA: Brzo pitanje 389 00:20:30,120 --> 00:20:30,360 >> CONNER HARRIS: Naravno. 390 00:20:30,360 --> 00:20:33,151 >> PUBLIKA: pa kad ste izračuna za jednostavne korelacije napraviti 391 00:20:33,151 --> 00:20:37,655 pretpostavimo da postoji statistički Značaj na korelaciju? 392 00:20:37,655 --> 00:20:39,030 CONNER HARRIS: Vi ne morate. 393 00:20:39,030 --> 00:20:41,840 394 00:20:41,840 --> 00:20:43,960 LM je u osnovi samo stroj. 395 00:20:43,960 --> 00:20:47,690 To će se u dvije stvari i to će ispljunuti 396 00:20:47,690 --> 00:20:49,770 Koeficijenti za najbolje odgovara liniji. 397 00:20:49,770 --> 00:20:52,310 Također se javlja standardni pogreške na tim koeficijentima. 398 00:20:52,310 --> 00:20:55,865 I to će ti reći, kao što je presresti statistički značajna 399 00:20:55,865 --> 00:20:56,740 ili razlika od 0. 400 00:20:56,740 --> 00:20:59,400 Je li nagib od najboljih fit linije statistički 401 00:20:59,400 --> 00:21:01,510 različit od nule, i tako dalje. 402 00:21:01,510 --> 00:21:06,260 Dakle, to pretpostavlja ništa, mislim je najbolji odgovor na Vaše pitanje. 403 00:21:06,260 --> 00:21:07,410 U REDU. 404 00:21:07,410 --> 00:21:14,650 >> Plotting-- pa glavni razlog što ste trebali koristiti R, kao multilinear regresije. 405 00:21:14,650 --> 00:21:17,320 U osnovi svaki jezik ima mogućnost za to. 406 00:21:17,320 --> 00:21:21,365 I iskreno R je sintaksa za regresija je malo Arcane. 407 00:21:21,365 --> 00:21:22,990 Ali ucrtavanje je gdje se stvarno sja. 408 00:21:22,990 --> 00:21:28,090 >> Funkcija radni stroj je zemljište i to traje dva vektora, X i Y. 409 00:21:28,090 --> 00:21:33,010 A onda su elipse predstavlja vrlo Veliki broj izbornih argumenata koji 410 00:21:33,010 --> 00:21:39,190 kontrolirati sve, od naslova do bojama raznih linije ili različitim mjestima, 411 00:21:39,190 --> 00:21:40,200 vrsti zemljišta. 412 00:21:40,200 --> 00:21:42,250 Možete imati raspršiti parcela ili linija parcele. 413 00:21:42,250 --> 00:21:47,900 414 00:21:47,900 --> 00:21:49,710 >> [Nečujan] 2 vektori od iste dužine. 415 00:21:49,710 --> 00:21:53,780 Možete prethoditi ovaj sa priložite Okvir Podaci u svom pismu. 416 00:21:53,780 --> 00:22:01,220 A to će vam samo koristiti stupac zaglavlja umjesto zasebnih vektora. 417 00:22:01,220 --> 00:22:05,410 Možete dodati najbolje odgovara linije i lokalne regresijske krivulje na svoj graf. 418 00:22:05,410 --> 00:22:09,390 >> Te naredbe na popisu Ovdje, ab linije i linije, 419 00:22:09,390 --> 00:22:11,640 po defaultu to dobiti zapisano u pop up prozora 420 00:22:11,640 --> 00:22:15,560 jer pretpostavlja da koristite li R interaktivno. 421 00:22:15,560 --> 00:22:17,310 Ako niste možeš napisati dvije datoteke 422 00:22:17,310 --> 00:22:21,600 u stvarno bilo kojem obliku želite. 423 00:22:21,600 --> 00:22:25,410 Nažalost, imam pravopisnu pogrešku Upravo sam shvatio. 424 00:22:25,410 --> 00:22:30,887 425 00:22:30,887 --> 00:22:32,720 Ako želite otvoriti još jedan grafički uređaj 426 00:22:32,720 --> 00:22:39,200 možete koristiti ovu funkciju pod nazivom PNG ili JPEG ili puno drugih slikovnih formata. 427 00:22:39,200 --> 00:22:42,319 A možete pisati grafove na god naziv datoteke koju ste naveli. 428 00:22:42,319 --> 00:22:45,110 Za poništavanje da morate use-- Nisam ovo napisati u slide-- 429 00:22:45,110 --> 00:22:49,650 ali postoji funkcija zove dev točka s koje traje bez argumenata. 430 00:22:49,650 --> 00:22:51,517 >> Zatim tu su sadržaji za 3D iscrtavanje 431 00:22:51,517 --> 00:22:53,350 a za crtanje konture Ako želite napraviti 432 00:22:53,350 --> 00:22:55,700 grafovi dviju nezavisnih varijabli. 433 00:22:55,700 --> 00:22:57,150 Neću ući u to upravo sada. 434 00:22:57,150 --> 00:22:59,130 >> Tu su i neke objekti za animaciju 435 00:22:59,130 --> 00:23:01,300 oni su obično održava od strane trećih osoba. 436 00:23:01,300 --> 00:23:06,330 Učinio sam animacije s R grafova, ali nisam koristio trećih strana 437 00:23:06,330 --> 00:23:06,940 knjižnice. 438 00:23:06,940 --> 00:23:09,929 Pa ja stvarno ne mogu posvjedočiti kako su oni dobri. 439 00:23:09,929 --> 00:23:12,220 Ono što ja preporučam ako želite napraviti animacije pomoću R 440 00:23:12,220 --> 00:23:16,480 se možete napisati sve okviri za animacije 441 00:23:16,480 --> 00:23:18,470 a zatim možete koristiti treća strana program-- 442 00:23:18,470 --> 00:23:23,630 tipični oni nazivaju FFmpeg ili ImageMagick-- bodom 443 00:23:23,630 --> 00:23:26,540 sve svoje okvire u jednoj animacije. 444 00:23:26,540 --> 00:23:28,380 >> Dakle, vrijeme za demo. 445 00:23:28,380 --> 00:23:31,030 446 00:23:31,030 --> 00:23:37,189 Dakle, ako ste koristeći bilo Unix kao sustav što je Linux BSD ali tko koristi BSD. 447 00:23:37,189 --> 00:23:39,730 OS X otvoriti prozor terminala i Type R u naredbeni redak. 448 00:23:39,730 --> 00:23:42,820 Ako imate R studio ili slično, koji također radi. 449 00:23:42,820 --> 00:23:46,270 Za korisnike Windowsa da bi trebao biti mogućnosti pronaći R u izborniku Start. 450 00:23:46,270 --> 00:23:50,390 To bi trebao biti pozvan nešto kao R x64 3 točka god. 451 00:23:50,390 --> 00:23:53,110 Otvorite koje se tamo. 452 00:23:53,110 --> 00:23:58,850 >> Pa me sada neka samo otvorite prozor terminala. 453 00:23:58,850 --> 00:24:02,562 U redu, traži. 454 00:24:02,562 --> 00:24:03,520 PUBLIKA: Command-prostor 455 00:24:03,520 --> 00:24:06,675 CONNER HARRIS: Command-Space, hvala. 456 00:24:06,675 --> 00:24:10,030 Ne obično koriste Macove. 457 00:24:10,030 --> 00:24:13,310 Terminal, pokazuju novi prozor. 458 00:24:13,310 --> 00:24:18,120 Novi prozor Postavke Osnovna R. Dakle trebali dobiti 459 00:24:18,120 --> 00:24:22,230 poruku dobrodošlice, nešto poput ovoga. 460 00:24:22,230 --> 00:24:31,060 >> Dakle, ja sam koristeći R interaktivno. 461 00:24:31,060 --> 00:24:32,719 Također možete pisati R skripte naravno. 462 00:24:32,719 --> 00:24:34,510 Uglavnom skripte trčanje na isti način kao i 463 00:24:34,510 --> 00:24:40,250 ako ste bili sjedi na računalu upisivati ​​u svakom retku jedan po jedan. 464 00:24:40,250 --> 00:24:42,660 Tako ćemo početi zarađivati ​​vektor. 465 00:24:42,660 --> 00:24:46,230 Strelica 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, sigurno. 468 00:24:50,050 --> 00:24:51,630 Ja mogu napraviti veličinu fonta veći. 469 00:24:51,630 --> 00:24:53,030 >> PUBLIKA: Command-Plus 470 00:24:53,030 --> 00:24:53,650 >> CONNER HARRIS: Command-Plus. 471 00:24:53,650 --> 00:24:54,191 Naredba-Plus. 472 00:24:54,191 --> 00:24:57,610 473 00:24:57,610 --> 00:25:00,370 U redu, kako je to? 474 00:25:00,370 --> 00:25:00,870 Dobro? 475 00:25:00,870 --> 00:25:01,551 U REDU. 476 00:25:01,551 --> 00:25:03,300 Pa krenimo od progla popis vektor. 477 00:25:03,300 --> 00:25:08,710 Da li, strelica, C 1,2,4. 478 00:25:08,710 --> 00:25:11,181 Možemo vidjeti. 479 00:25:11,181 --> 00:25:12,680 Ne brinite o nosača tamo. 480 00:25:12,680 --> 00:25:18,590 Nosači su tako ako ispisati vrlo dugo polja, možemo gdje ste. 481 00:25:18,590 --> 00:25:26,987 Jedan primjer bi bio da sam Samo želim rasponu od 2 do 200. 482 00:25:26,987 --> 00:25:28,820 Ako sam tiskane vrlo dugo niz, zagrade 483 00:25:28,820 --> 00:25:31,060 samo tako da mogu zadržati od kojih je indeks pjesma 484 00:25:31,060 --> 00:25:33,250 smo na ako tražim kroz to vizualno. 485 00:25:33,250 --> 00:25:36,570 486 00:25:36,570 --> 00:25:38,280 Dakle u svakom slučaju, imamo. 487 00:25:38,280 --> 00:25:43,326 >> Zato sam rekao prije da nizovi interakciju jako lijepo s, na primjer, 488 00:25:43,326 --> 00:25:44,450 unarnu operacija kao što je ovaj. 489 00:25:44,450 --> 00:25:46,500 Dakle, što mislite ću dobiti ako upišete plus 1? 490 00:25:46,500 --> 00:25:49,630 491 00:25:49,630 --> 00:25:51,140 Da. 492 00:25:51,140 --> 00:25:54,250 Dobro, sad ću napraviti ovo razlikuje 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 Pa što ti misliš ova naredba će učiniti? 495 00:26:03,400 --> 00:26:09,962 496 00:26:09,962 --> 00:26:10,670 Dodaj elemente. 497 00:26:10,670 --> 00:26:14,950 I tako u osnovi to je ono što čini. 498 00:26:14,950 --> 00:26:16,740 Dakle, to je prilično zgodan. 499 00:26:16,740 --> 00:26:23,800 Tako sam o tome kako sam to učiniti. c je, recimo, 6 puta 1 do 10. 500 00:26:23,800 --> 00:26:26,789 501 00:26:26,789 --> 00:26:28,830 Dakle, ono što želim vidjeti sadržane, što mislite? 502 00:26:28,830 --> 00:26:37,110 503 00:26:37,110 --> 00:26:38,110 Tako svi višekratnici od šest. 504 00:26:38,110 --> 00:26:42,170 Sad, što vi mislite će se dogoditi ako ja to učiniti? 505 00:26:42,170 --> 00:26:48,090 Učinit ću to malo jasnije, C, C. 506 00:26:48,090 --> 00:26:50,365 Pa što se događa, zar ne mislim, ako sam to učiniti? 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 [NEČUJAN] 510 00:26:56,050 --> 00:26:58,552 511 00:26:58,552 --> 00:27:02,350 >> PUBLIKA: Ili pogreška ili samo dodaje prva tri elementa. 512 00:27:02,350 --> 00:27:04,510 >> CONNER HARRIS: Ne baš. 513 00:27:04,510 --> 00:27:05,522 To je ono što smo dobili. 514 00:27:05,522 --> 00:27:08,910 Što se događa je kraći polje, a, dobio biciklom. 515 00:27:08,910 --> 00:27:13,990 Tako smo dobili 124, 124, 124. 516 00:27:13,990 --> 00:27:15,710 Da. 517 00:27:15,710 --> 00:27:18,940 A u osnovi, možete pogledati ovo ponašanje prije, plus 1, 518 00:27:18,940 --> 00:27:22,190 kao potklasi ove ponašanja, gdje najkraći niz je samo broj 519 00:27:22,190 --> 00:27:25,410 1, što je jedan element niz. 520 00:27:25,410 --> 00:27:27,740 Upravo sam se govoreći vektor sve vrijeme umjesto polja, 521 00:27:27,740 --> 00:27:30,290 jer to je ono što je r Dokumentacija obično radi. 522 00:27:30,290 --> 00:27:33,070 To je ukorijenjen c navika. 523 00:27:33,070 --> 00:27:37,590 >> U redu, pa sada imamo tu lepezu. 524 00:27:37,590 --> 00:27:38,830 Dakle, imamo niz, c. 525 00:27:38,830 --> 00:27:41,380 Možemo dobiti sažetak statistike o c, c. sažetak 526 00:27:41,380 --> 00:27:46,920 527 00:27:46,920 --> 00:27:48,280 I to je lijepo. 528 00:27:48,280 --> 00:27:51,070 529 00:27:51,070 --> 00:27:52,670 Dakle, sada ćemo napraviti neke matrice stvari. 530 00:27:52,670 --> 00:27:56,160 Recimo m je matrica. 531 00:27:56,160 --> 00:27:57,780 Učinimo ga tri do tri jedan. 532 00:27:57,780 --> 00:28:01,630 Dakle nrows jednako 3, a ncols jednak 3. 533 00:28:01,630 --> 00:28:04,190 534 00:28:04,190 --> 00:28:10,710 A za podatke ćemo do-- pa što Što misliš da će ovo učiniti? 535 00:28:10,710 --> 00:28:15,310 536 00:28:15,310 --> 00:28:16,580 >> Točno, to je sljedeći. 537 00:28:16,580 --> 00:28:17,970 To je nrow i ncolumn. 538 00:28:17,970 --> 00:28:22,164 539 00:28:22,164 --> 00:28:24,580 Dakle, ono što sam učinio je da sam proglasio tri tri matrice 540 00:28:24,580 --> 00:28:26,950 a ja sam prošao u devet elemenata niza u. 541 00:28:26,950 --> 00:28:30,530 Dakle logaritma sve Elementi jedan do devet. 542 00:28:30,530 --> 00:28:33,400 543 00:28:33,400 --> 00:28:37,285 I sve te vrijednosti popuniti up array-- žao? 544 00:28:37,285 --> 00:28:38,660 PUBLIKA: To su bazične 10 dnevnici? 545 00:28:38,660 --> 00:28:41,284 CONNER HARRIS: Ne, zapisnik je prirodni logaritmi, tako da baza e. 546 00:28:41,284 --> 00:28:44,886 547 00:28:44,886 --> 00:28:47,010 Da, ako ste htjeli baze 10 zapisnik, mislim da bih 548 00:28:47,010 --> 00:28:51,620 prijaviti god, podijeljena log 10. 549 00:28:51,620 --> 00:28:56,750 I tako podacima [nečujan] samo ispunjava polje, tako da od vrha do dna, 550 00:28:56,750 --> 00:28:59,490 zatim s lijeva na desno. 551 00:28:59,490 --> 00:29:06,890 A ako ste htjeli napraviti neki drugi niz, recimo n matrica. 552 00:29:06,890 --> 00:29:10,317 Idemo napraviti, ne znam, 2 do 13. 553 00:29:10,317 --> 00:29:11,900 Ili ću napraviti nešto zanimljivije. 554 00:29:11,900 --> 00:29:13,770 Učinit ću 2 do 4. 555 00:29:13,770 --> 00:29:15,780 nrow jednaka, recimo, 3. 556 00:29:15,780 --> 00:29:18,992 Ncol jednak 4. 557 00:29:18,992 --> 00:29:20,360 n. 558 00:29:20,360 --> 00:29:22,090 Dakle, imamo ovo. 559 00:29:22,090 --> 00:29:26,130 >> I sada, ako želimo umnožiti njih, ćemo učiniti n posto puta posto, 560 00:29:26,130 --> 00:29:27,680 zato što je to n. 561 00:29:27,680 --> 00:29:30,234 562 00:29:30,234 --> 00:29:31,400 I imamo matrice proizvoda. 563 00:29:31,400 --> 00:29:33,970 564 00:29:33,970 --> 00:29:37,810 Do su način, jeste li vidjeli kako kad sam proglasio n je 2 do 4 565 00:29:37,810 --> 00:29:43,570 Vektor dobio biciklom do Ispuni sve od n? 566 00:29:43,570 --> 00:29:45,710 Ako ste htjeli uzeti svojstvena vrijednost razgradnje, 567 00:29:45,710 --> 00:29:46,960 to je nešto što možete učiniti vrlo jednostavno. 568 00:29:46,960 --> 00:29:47,709 Mi možemo učiniti svojstvenih n. 569 00:29:47,709 --> 00:29:52,290 570 00:29:52,290 --> 00:29:54,600 I tako je to naš prvi susresti s popisa. 571 00:29:54,600 --> 00:29:57,000 >> Dakle svojstveni nje je popis s dvije tipke. 572 00:29:57,000 --> 00:29:58,430 Vrijednosti, što je ovaj niz ovdje. 573 00:29:58,430 --> 00:30:01,030 A vektori, koji je to niz ovdje. 574 00:30:01,030 --> 00:30:08,240 Dakle, ako ste htjeli izvaditi, recimo, ovaj treći stupac 575 00:30:08,240 --> 00:30:13,080 iz matrice svojstvenih vektora, jer su vektori su stupac vektori. 576 00:30:13,080 --> 00:30:24,400 Dakle, što možemo učiniti VEC svojstvenih nje znak za dolar vektori, zarez 3, od [nečujan]. 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 li to, kao što ste mogli očekivati. 580 00:30:34,100 --> 00:30:39,210 >> Onda kažu n puta posto puta VEC. 581 00:30:39,210 --> 00:30:42,610 582 00:30:42,610 --> 00:30:48,320 Tako je rezultat ovdje sigurno izgleda kao ako mi je uzeo treću svojstvene vrijednosti ovdje, 583 00:30:48,320 --> 00:30:50,390 koji odgovara treći svojstveni vektor. 584 00:30:50,390 --> 00:30:53,190 To samo množe sve što je u ovo svojstveni vektor, komponenta-mudar, 585 00:30:53,190 --> 00:30:53,990 po svojstvenoj vrijednosti. 586 00:30:53,990 --> 00:30:57,760 I to je ono što smo očekivali, jer to je ono što su karakteristične vrijednosti. 587 00:30:57,760 --> 00:31:00,890 Je li netko ovdje nije uzeti linearnu algebru? 588 00:31:00,890 --> 00:31:02,530 Nekoliko ljudi, u redu. 589 00:31:02,530 --> 00:31:04,030 Samo uključite mozak off za malo. 590 00:31:04,030 --> 00:31:07,490 591 00:31:07,490 --> 00:31:20,720 I doista, ako uzmemo svojstvenih n znak za dolar vrijednosti 3 puta VEC, 592 00:31:20,720 --> 00:31:21,810 i dobiti istu stvar. 593 00:31:21,810 --> 00:31:24,726 To je različit format kao zaredom vektor umjesto stupcu vektora, 594 00:31:24,726 --> 00:31:25,640 ali velika stvar. 595 00:31:25,640 --> 00:31:29,430 596 00:31:29,430 --> 00:31:35,170 I tako oni su u osnovi lijepo stvari koje možemo učiniti s matricama, 597 00:31:35,170 --> 00:31:36,489 pokazali liste. 598 00:31:36,489 --> 00:31:39,030 Trebam pokazati lijepo stvari o funkcijama kao dobro. 599 00:31:39,030 --> 00:31:41,750 >> Tako ćemo say-- [nečujan] funkcija, nazovimo 600 00:31:41,750 --> 00:31:51,960 to FUNC protiv funkciji n n squared-- Zapravo, to nije stvarno najbolji. 601 00:31:51,960 --> 00:31:55,632 a, b, b kvadratna plus. 602 00:31:55,632 --> 00:31:58,547 603 00:31:58,547 --> 00:32:00,380 Dakle, jedna stvar o funkcije, opet, oni 604 00:32:00,380 --> 00:32:01,963 ne treba eksplicitne povratak izjave. 605 00:32:01,963 --> 00:32:04,250 Tako možete just-- posljednja izjava ocjenjuju 606 00:32:04,250 --> 00:32:07,502 će izjavu vratio, ili vrijednost vratio. 607 00:32:07,502 --> 00:32:10,460 Dakle, u ovom slučaju, mi samo smo vrednovanje jedna izjava, A kvadratna plus b. 608 00:32:10,460 --> 00:32:12,043 To će biti zadana povratnu vrijednost. 609 00:32:12,043 --> 00:32:14,530 To nikad ne boli staviti u povratak vrijednosti eksplicitno, 610 00:32:14,530 --> 00:32:16,880 pogotovo ako ste se bave s funkcija vrlo komplicirane logike 611 00:32:16,880 --> 00:32:17,380 teći. 612 00:32:17,380 --> 00:32:18,450 Ali ih ne treba. 613 00:32:18,450 --> 00:32:24,890 Tako sada možemo učiniti FUNC 5, 1, i to je u osnovi ono što biste očekivali. 614 00:32:24,890 --> 00:32:29,146 615 00:32:29,146 --> 00:32:31,270 Nešto drugo što možemo učiniti, mi zapravo možemo učiniti funkcionalnog b 616 00:32:31,270 --> 00:32:33,260 jednak 1, jednaka 5. 617 00:32:33,260 --> 00:32:36,870 618 00:32:36,870 --> 00:32:40,770 Dakle, ako smo odredili ovdje koja broj, koji argument na koji argument 619 00:32:40,770 --> 00:32:44,680 u funkciji, možemo okrenuti oko ove vrijednosti gdje god želimo. 620 00:32:44,680 --> 00:32:48,405 >> PUBLIKA: Postoji li razlog ga napisati s b 621 00:32:48,405 --> 00:32:52,404 jednako kao što je za razliku od samo pomoću brojevi i zarez? 622 00:32:52,404 --> 00:32:54,820 CONNER HARRIS: Da, obično to učiniti ako imate funkcije 623 00:32:54,820 --> 00:32:58,540 s puno argumenata. 624 00:32:58,540 --> 00:33:00,690 To često može biti nalik zastava koju bih samo 625 00:33:00,690 --> 00:33:03,130 želite koristiti u rijetkim prilikama. 626 00:33:03,130 --> 00:33:06,740 I na taj način može vam only-- može se odnositi na konkretne argumente 627 00:33:06,740 --> 00:33:09,110 koji želite koristiti nisu zadane vrijednosti za, 628 00:33:09,110 --> 00:33:14,470 a vi ne morate napisati hrpa zastava jednako lažna poslije njih. 629 00:33:14,470 --> 00:33:19,710 Ili mogu napisati ovo opet s zadana vrijednost kao b jednaka 2. 630 00:33:19,710 --> 00:33:26,289 A onda sam mogla učiniti f FUNC, Učinit ću 4, 1 ovaj put. 631 00:33:26,289 --> 00:33:28,580 I 17, što je 4 na kvadrat plus 1, kao što ste mogli očekivati. 632 00:33:28,580 --> 00:33:34,290 >> Ali ja bih mogao samo zvati s fun 4, 633 00:33:34,290 --> 00:33:36,970 a ja ću dobiti 18, jer Ja ne odredite b. 634 00:33:36,970 --> 00:33:38,550 Dakle b dobiva zadanu vrijednost 2. 635 00:33:38,550 --> 00:33:41,700 636 00:33:41,700 --> 00:33:47,200 >> U redu, tako da sada, ako ste Sljedeći uz demo, 637 00:33:47,200 --> 00:33:51,010 upišite ovaj redak na vaše naredbe brz i vidjeti što dolazi. 638 00:33:51,010 --> 00:33:52,090 Zapravo, ne radi to. 639 00:33:52,090 --> 00:33:52,590 Upišite ovo. 640 00:33:52,590 --> 00:33:57,780 641 00:33:57,780 --> 00:34:01,000 Trebali bi dobiti nešto ovako. 642 00:34:01,000 --> 00:34:04,780 Dakle mtcars je izgrađen u podacima postaviti za ovu demonstraciju 643 00:34:04,780 --> 00:34:13,550 svrhe koje dolazi with-- koji dolazi u po defaultu sa svojim r distribucije. 644 00:34:13,550 --> 00:34:19,211 Ovo je kompilacija iz statistike 1974 pitanje magazina Motor Trend je 645 00:34:19,211 --> 00:34:20,710 na nekoliko različitih modela automobila. 646 00:34:20,710 --> 00:34:28,270 >> Dakle, postoji milja po galonu, cylinders-- Zaboravio sam što disp is-- konjskih snaga. 647 00:34:28,270 --> 00:34:31,610 648 00:34:31,610 --> 00:34:32,420 Vjerojatno. 649 00:34:32,420 --> 00:34:36,920 Ako ste upravo Google MT automobila, onda jedan od prvih rezultata 650 00:34:36,920 --> 00:34:38,730 će biti od Službena r dokumentacija 651 00:34:38,730 --> 00:34:41,080 i to će objasniti Svi ovi podatci polja. 652 00:34:41,080 --> 00:34:47,020 Dakle, težina is-- tež je težina automobila u tonama. 653 00:34:47,020 --> 00:34:48,880 P sek je četvrt milje vrijeme. 654 00:34:48,880 --> 00:34:52,409 655 00:34:52,409 --> 00:34:55,850 Tako sada možemo učiniti neke zabavne stvari o MT automobila je polje podataka. 656 00:34:55,850 --> 00:35:01,640 >> Dakle, što možemo učiniti stvari kao što su imena redom, MT automobila. 657 00:35:01,640 --> 00:35:05,490 A ovo je popis svih redaka u skupa podataka koji su imena automobila. 658 00:35:05,490 --> 00:35:10,780 Mi možemo učiniti colnames, MT automobile ovo. 659 00:35:10,780 --> 00:35:15,500 Ako to ne učinite MT automobili, sub-numerički indeks, kao i 2. 660 00:35:15,500 --> 00:35:18,177 smo dobili drugu kolonu iz to, što bi bilo cilindara. 661 00:35:18,177 --> 00:35:19,370 >> PUBLIKA: Što vam je činiti? 662 00:35:19,370 --> 00:35:21,570 >> CONNER HARRIS: upisali ja mt automobili, zagrade e, 663 00:35:21,570 --> 00:35:24,180 koji mi je dao drugi Kolona iz MT automobila. 664 00:35:24,180 --> 00:35:34,501 665 00:35:34,501 --> 00:35:38,110 Ili ako želimo red, ja mogu upisati mtcars točki 2, na primjer. 666 00:35:38,110 --> 00:35:41,850 667 00:35:41,850 --> 00:35:46,390 Drugi okrugli 2 zarez, kao što je to. 668 00:35:46,390 --> 00:35:48,880 I to ide u svoj red. 669 00:35:48,880 --> 00:35:54,680 Ovo ovdje samo vam daje stupcu, a kolona je kao vektor. 670 00:35:54,680 --> 00:36:04,634 671 00:36:04,634 --> 00:36:06,425 Upravo sam shvatila sada zaboravio pokazati 672 00:36:06,425 --> 00:36:09,150 neke cool stvari o vektorima koje možete učiniti s indeksima. 673 00:36:09,150 --> 00:36:10,480 Pa neka mi to upravo sada. 674 00:36:10,480 --> 00:36:17,130 Tako ćemo napraviti c gets-- stavljajući ovo pause-- 2 puta 1 do 10. 675 00:36:17,130 --> 00:36:21,360 Dakle c samo će biti vektor 2 do 20. 676 00:36:21,360 --> 00:36:24,640 Mogu uzeti elemente kao što je ovaj, c2. 677 00:36:24,640 --> 00:36:30,942 Mogu proći u vektor ovako, C-- me pustiti 678 00:36:30,942 --> 00:36:34,470 koristite drugo ime od c, kao VEC c. 679 00:36:34,470 --> 00:36:37,591 680 00:36:37,591 --> 00:36:39,340 Uglavnom, radim to tako da ne bi 681 00:36:39,340 --> 00:36:45,010 zbunjeni između c kao vektor gradnja funkcija, 682 00:36:45,010 --> 00:36:48,800 a onda c kao ime varijable. 683 00:36:48,800 --> 00:36:53,120 VEC nosači c 4, 5, 7. 684 00:36:53,120 --> 00:36:56,540 To će me izvući iz četvrti, peti, i sedam elementi polja. 685 00:36:56,540 --> 00:37:01,740 Ja mogu učiniti VEC, staviti u negativan indeks, kao i negativnu 4. 686 00:37:01,740 --> 00:37:06,500 To će me izvući ovo s Četvrti element uklonjen. 687 00:37:06,500 --> 00:37:10,140 Onda ako sam htjela učiniti kriške, Ja mogu učiniti VEC 2 do 6. 688 00:37:10,140 --> 00:37:15,480 2 debelog 6 je samo još jedan vektor, koji je 2, 3, 4, 5, 6. 689 00:37:15,480 --> 00:37:18,230 Ispljune to. 690 00:37:18,230 --> 00:37:20,770 >> Dakle u svakom slučaju, povratak na mt automobila. 691 00:37:20,770 --> 00:37:26,650 692 00:37:26,650 --> 00:37:28,450 Tako ćemo napraviti neke regresije. 693 00:37:28,450 --> 00:37:34,240 Recimo Model gets-- neka je linearno regress-- Ne znam. 694 00:37:34,240 --> 00:37:41,780 Prvo neka je ne pridaju mtcars, naravno. 695 00:37:41,780 --> 00:37:44,870 696 00:37:44,870 --> 00:38:00,010 Dakle, [nečujan] Model lm, neka nazadovanja milja po galonu na tilda težine. 697 00:38:00,010 --> 00:38:03,300 A onda okvira podaci mtcars. 698 00:38:03,300 --> 00:38:06,830 Dakle, sažetak modela. 699 00:38:06,830 --> 00:38:12,900 700 00:38:12,900 --> 00:38:15,595 >> U redu, tako da to izgleda malo komplicirano. 701 00:38:15,595 --> 00:38:19,380 Ali zapravo, gledajući kao da smo pokušati izraziti milja po galonu 702 00:38:19,380 --> 00:38:23,970 kao linearno težine, onda smo dobili ovaj redak ovdje 703 00:38:23,970 --> 00:38:28,730 koji presreće na 37.28. 704 00:38:28,730 --> 00:38:33,830 37.28 će biti teorijski milja po galonu automobila koji teži nuli. 705 00:38:33,830 --> 00:38:41,210 A onda za svaku dodatnu tonu, što kucati oko pet milja po galonu 706 00:38:41,210 --> 00:38:42,440 izvan toga. 707 00:38:42,440 --> 00:38:45,120 Obje od tih koeficijenata ste možete vidjeti, standardne pogreške tamo. 708 00:38:45,120 --> 00:38:47,870 I oni su vrlo statistički značajna. 709 00:38:47,870 --> 00:38:55,740 >> Dakle, možemo biti vrlo sigurni da 1 e 10 na negativni 10. 710 00:38:55,740 --> 00:38:59,510 Dakle 1 puta nešto za negativni 10, da ako bi težih automobil, 711 00:38:59,510 --> 00:39:01,440 to će imati lošije milja po galonu. 712 00:39:01,440 --> 00:39:04,940 713 00:39:04,940 --> 00:39:07,250 Ili možemo testirati neki drugi model. 714 00:39:07,250 --> 00:39:09,230 Kao umjesto regredira ovo na težini, 715 00:39:09,230 --> 00:39:12,600 budimo regres na zapisnik težine, jer možda učinkovito težine 716 00:39:12,600 --> 00:39:15,690 na kilometražu nekako nije linearna. 717 00:39:15,690 --> 00:39:18,540 >> To nam je dao R kvadrat od 0.7528. 718 00:39:18,540 --> 00:39:19,610 Dakle, pokušajmo to. 719 00:39:19,610 --> 00:39:21,485 Ovaj put ćemo napraviti različite varijable, previše. 720 00:39:21,485 --> 00:39:22,500 Model2. 721 00:39:22,500 --> 00:39:24,800 Dakle sažetak, model2. 722 00:39:24,800 --> 00:39:28,200 723 00:39:28,200 --> 00:39:31,390 U redu, pa opet, mi dobio naše najbolje fit liniju ovdje. 724 00:39:31,390 --> 00:39:36,160 A to time-- to govori, zapravo da svaki put kada 725 00:39:36,160 --> 00:39:38,090 povećati težinu auto za faktor e 726 00:39:38,090 --> 00:39:40,580 gubite to mnogo milja po galonu. 727 00:39:40,580 --> 00:39:43,210 728 00:39:43,210 --> 00:39:50,326 >> I tako ovaj put naš standardni zaostala pogrešaka it-- to ne smeta, stvarno. 729 00:39:50,326 --> 00:39:53,540 Preostala standardna pogreška je zapravo samo standardna pogreška 730 00:39:53,540 --> 00:39:57,760 da ste ostavili iza tebe oduzeti trend liniju. 731 00:39:57,760 --> 00:40:02,805 I naš r na kvadrat ovdje je 0,81, koji je malo bolje nego što 732 00:40:02,805 --> 00:40:07,640 smo imali i prije, 0,52. 733 00:40:07,640 --> 00:40:09,750 >> I tako sad ćemo dodati Pojam ovom regresijom. 734 00:40:09,750 --> 00:40:13,020 Tako ćemo nazadovati milja po galonu i na zapisnik utega 735 00:40:13,020 --> 00:40:21,130 i, neka je učiniti, q milja, četvrt milje vrijeme. 736 00:40:21,130 --> 00:40:26,190 U redu, ona mora imati the-- 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-- žao, što? 740 00:40:35,000 --> 00:40:37,000 Dopustite mi to nazivamo nešto drugo osim model2. 741 00:40:37,000 --> 00:40:38,000 Dopustite mi da to zovu model3. 742 00:40:38,000 --> 00:40:40,860 743 00:40:40,860 --> 00:40:42,900 I tako sada možemo napraviti sažetak model3. 744 00:40:42,900 --> 00:40:46,850 745 00:40:46,850 --> 00:40:49,100 I tako opet, to je u osnovi ono što bi mogli očekivati. 746 00:40:49,100 --> 00:40:51,750 Imate pozitivan presretanje. 747 00:40:51,750 --> 00:40:54,550 Učinkovita povećanje Težina je negativan. 748 00:40:54,550 --> 00:40:58,490 A učinkovita povećanje četvrt milje vrijeme 749 00:40:58,490 --> 00:41:02,420 je pozitivan, ali ipak manje od težine. 750 00:41:02,420 --> 00:41:06,010 Sada intuitivno, možete smisla ovo rekavši mislite o sportskim automobilima. 751 00:41:06,010 --> 00:41:08,950 Tu je vrlo brzo ubrzanje, vrlo kratka vremena četvrt milje. 752 00:41:08,950 --> 00:41:13,729 Također ćemo koristiti više plina, a više razborite automobili idu 753 00:41:13,729 --> 00:41:16,020 imati sporiji ubrzanje, viši četvrt milje puta, 754 00:41:16,020 --> 00:41:20,890 i koristiti manje plina ,, tako viši milja po galonu. 755 00:41:20,890 --> 00:41:21,390 Veliki. 756 00:41:21,390 --> 00:41:23,431 I tako sada je vrijeme da se zemljište nešto ovako. 757 00:41:23,431 --> 00:41:27,810 Tako ćemo do-- tako goli kosti možemo učiniti plots-- 758 00:41:27,810 --> 00:41:35,280 jer sam vezan ovaj okvir podataka before-- mi samo možemo učiniti parcele, mas mpg. 759 00:41:35,280 --> 00:41:38,762 760 00:41:38,762 --> 00:41:39,720 Napravite ovo malo veći. 761 00:41:39,720 --> 00:41:55,050 762 00:41:55,050 --> 00:41:57,350 Tamo smo u osnovi imaju raspršiti zemljište, ali bodovi 763 00:41:57,350 --> 00:41:58,690 su vrsta teško vidjeti na ovo. 764 00:41:58,690 --> 00:42:04,860 765 00:42:04,860 --> 00:42:10,900 >> Ne sjećam se napamet što je Sintaksa je za promjenu zemljište. 766 00:42:10,900 --> 00:42:14,100 Dakle, mislim da će ovo biti dobro vrijeme da bi se, 767 00:42:14,100 --> 00:42:18,000 tu je vrlo lijep Ugrađen pomoć značajka, pomoć citati funkcionirati ime. 768 00:42:18,000 --> 00:42:21,690 Mi ćemo odgajati osnovi što god želite. 769 00:42:21,690 --> 00:42:28,010 770 00:42:28,010 --> 00:42:32,730 Mislim da sam zapravo ću to učiniti Vrsta jednako p za bodove parcele. 771 00:42:32,730 --> 00:42:34,369 Je li to ništa promijeniti? 772 00:42:34,369 --> 00:42:35,160 I ne, ne stvarno. 773 00:42:35,160 --> 00:42:39,160 774 00:42:39,160 --> 00:42:39,660 U redu. 775 00:42:39,660 --> 00:42:46,760 776 00:42:46,760 --> 00:42:49,580 >> Iz nekog razloga, kada sam to učinio na svoje računalo, a prije, 777 00:42:49,580 --> 00:42:52,080 sve raspršiti točke bili su mnogo jasniji. 778 00:42:52,080 --> 00:43:06,390 779 00:43:06,390 --> 00:43:13,970 U svakom slučaju, su raspršeni vrsta vidljivi? 780 00:43:13,970 --> 00:43:15,124 Postoji jedan tamo. 781 00:43:15,124 --> 00:43:16,165 Nekoliko tu, malo tamo. 782 00:43:16,165 --> 00:43:18,860 783 00:43:18,860 --> 00:43:21,185 Možete ih nekako mogu vidjeti, zar ne? 784 00:43:21,185 --> 00:43:24,310 Dakle, ako želimo dodati najbolji fit liniju ovoj parceli ovdje, što je malo goli 785 00:43:24,310 --> 00:43:29,290 bones-- dopustite mi da ga malo ljepše. 786 00:43:29,290 --> 00:43:38,075 Glavni jednak odnosu težine. 787 00:43:38,075 --> 00:43:46,322 788 00:43:46,322 --> 00:43:49,740 Milja po galonu. 789 00:43:49,740 --> 00:43:53,570 Opet, možete vidjeti koliko je koristan proizvoljni argumenti su ovdje također 790 00:43:53,570 --> 00:43:58,090 ne moraju staviti stvari u određeni nalog s tipkovnice argumentima 791 00:43:58,090 --> 00:44:01,600 kada imate parcele, jer je oni uzeti puno argumenata. 792 00:44:01,600 --> 00:44:07,490 >> Xlab jednaka težina, težina, tona. 793 00:44:07,490 --> 00:44:10,091 794 00:44:10,091 --> 00:44:10,590 U redu. 795 00:44:10,590 --> 00:44:17,340 796 00:44:17,340 --> 00:44:21,480 OK, da, ovaj uređaj je biti malo neugodno. 797 00:44:21,480 --> 00:44:30,160 Ali možete vidjeti svojevrsni tamo gore, postoji naslov graf na strani. 798 00:44:30,160 --> 00:44:35,260 Ovamo there's-- na dnu Ovdje postoje os naljepnice. 799 00:44:35,260 --> 00:44:37,700 Ne sjećam se napamet ono naredbe ars-- 800 00:44:37,700 --> 00:44:41,000 što funkcije za povećanje veličina tih oznaka i naslova, 801 00:44:41,000 --> 00:44:43,110 ali oni su tamo. 802 00:44:43,110 --> 00:44:46,625 >> I tako, ako želimo dodaj najbolji fit linije, 803 00:44:46,625 --> 00:44:49,250 bismo mogli učiniti nešto volimo-članovima I. ima sintaksa napisano ovdje. 804 00:44:49,250 --> 00:44:52,280 805 00:44:52,280 --> 00:45:11,130 Pa sjetite se samo dodati modela Bio MPG, težina, mtcars. 806 00:45:11,130 --> 00:45:16,470 I tako, ako sam htjela dodati najbolje odgovara crta, što sam mogao učiniti, b linije modela. 807 00:45:16,470 --> 00:45:18,556 I bum, imamo najbolje odgovara liniju. 808 00:45:18,556 --> 00:45:19,970 To je vrsta teško vidjeti. 809 00:45:19,970 --> 00:45:22,178 Ja sam vrlo žao o tehnološke poteškoće. 810 00:45:22,178 --> 00:45:25,230 Ali to traje u osnovi Top lijeva na donjem desnom dijelu. 811 00:45:25,230 --> 00:45:27,550 >> A ako skala su veći, mogli ste vidjeti 812 00:45:27,550 --> 00:45:31,260 da presresti je ono što možete pronaći iz sažete statistike 813 00:45:31,260 --> 00:45:34,790 ako upišete sažetak model. 814 00:45:34,790 --> 00:45:40,130 U redu, pa se nadam da svatko dobiva nešto osjećaja ono 815 00:45:40,130 --> 00:45:42,030 R je, ono što je dobro za. 816 00:45:42,030 --> 00:45:45,520 Možete napraviti mnogo ljepše nego parcele to u svoje slobodno vrijeme, ako vam se sviđa. 817 00:45:45,520 --> 00:45:50,100 818 00:45:50,100 --> 00:45:53,950 >> Dakle stranog funkcije sučelja. 819 00:45:53,950 --> 00:46:00,330 To je nešto što nije uobičajeno prekrivena uvodnim predavanjima 820 00:46:00,330 --> 00:46:03,560 ili uvodni ništa za r. 821 00:46:03,560 --> 00:46:05,584 Nije vjerojatno da ćeš ga trebati. 822 00:46:05,584 --> 00:46:08,000 Međutim, otkrio sam da je korisno u moji projekti u prošlosti. 823 00:46:08,000 --> 00:46:10,984 I nema dobar tutorial za to online. 824 00:46:10,984 --> 00:46:12,900 Pa ja sam samo ide sve vas žuriti kroz to 825 00:46:12,900 --> 00:46:16,606 a onda si slobodan napustiti. 826 00:46:16,606 --> 00:46:18,480 I tako je strano Funkcija sučelje je što 827 00:46:18,480 --> 00:46:23,130 možete koristiti nazvati da vidim Funkcije s R. interno, 828 00:46:23,130 --> 00:46:29,850 R je izgrađen na C, R je aritmetička je samo C je 64-bitni s pomičnim zarezom aritmetika, 829 00:46:29,850 --> 00:46:32,852 što je tip double [nečujan]. 830 00:46:32,852 --> 00:46:35,060 A možda želite učiniti ovo hrpa razloga. 831 00:46:35,060 --> 00:46:39,250 Za jednu, R tumači, to je Ne sastavio dolje strojni kod. 832 00:46:39,250 --> 00:46:42,170 Tako možete prepisati svoje unutarnje petlje u C, a zatim se 833 00:46:42,170 --> 00:46:45,920 Prednost korištenja R. Like to je malo više zgodan nego C. 834 00:46:45,920 --> 00:46:48,899 Ona ima bolje grafičkim objekti i sitnica. 835 00:46:48,899 --> 00:46:51,690 I dok još uvijek u mogućnosti da biste dobili najveća brzina iz unutarnje petlje, 836 00:46:51,690 --> 00:46:53,650 koji je mjesto gdje stvarno treba. 837 00:46:53,650 --> 00:46:56,330 >> Naknadna uporaba postojećih C knjižnice, to je također važno. 838 00:46:56,330 --> 00:47:00,320 Ako imate neke C biblioteku za slično, Ne znam, Fourier pretvara, 839 00:47:00,320 --> 00:47:05,190 ili neke vrlo Archean Statistika postupak koristi 840 00:47:05,190 --> 00:47:09,470 u visokoj energetskoj astrofizike ili nešto, ne znam. 841 00:47:09,470 --> 00:47:13,058 Visoka energetska astrofizike nije ni misliti, mislim. 842 00:47:13,058 --> 00:47:16,480 Ali možete učiniti umjesto da napisati izvorni R luku njih. 843 00:47:16,480 --> 00:47:22,725 A na the-- i opet, kao i ako gledati u većini r zadane knjižnicama, 844 00:47:22,725 --> 00:47:25,600 na unutarnji, a unutarnji su namjeravate koristiti strano funkciju 845 00:47:25,600 --> 00:47:26,724 sučelje vrlo intenzivno. 846 00:47:26,724 --> 00:47:31,630 Morat stvari kao Fourier pretvara ili računanje korelacija 847 00:47:31,630 --> 00:47:34,890 Koeficijenti napisan u C, a oni će samo R omote oko njih. 848 00:47:34,890 --> 00:47:38,230 Sučelje je malo teško. mislim 849 00:47:38,230 --> 00:47:43,750 njegov je problem pretjerana u Puno upute ćete naći. 850 00:47:43,750 --> 00:47:46,200 Ali ipak, to je malo zbunjujuće. 851 00:47:46,200 --> 00:47:48,650 I nisam bio u mogućnosti naći dobar tutorial za to, 852 00:47:48,650 --> 00:47:51,980 pa to je to upravo sada. 853 00:47:51,980 --> 00:47:55,360 Opet, cijela ova segment je više za kasniju referencu. 854 00:47:55,360 --> 00:47:57,687 Ne brinite o kopiranju sve dolje odmah. 855 00:47:57,687 --> 00:48:00,020 Dakle, sljedećih uputa su za Unix-like sustavima, 856 00:48:00,020 --> 00:48:05,150 Linux, BSD, OS X. Ne znam kako se to radi na Windows, 857 00:48:05,150 --> 00:48:08,280 ali molim te samo ne učinite svoj Završni projekt na Windowsima. 858 00:48:08,280 --> 00:48:10,790 859 00:48:10,790 --> 00:48:12,460 Vi stvarno ne želite. 860 00:48:12,460 --> 00:48:14,770 Unix je mnogo bolji set za povremeni programiranje. 861 00:48:14,770 --> 00:48:19,320 862 00:48:19,320 --> 00:48:21,390 Dakle, u osnovi stranog sučelje funkcija. 863 00:48:21,390 --> 00:48:24,420 Ako želite napisati C Funkcija za korištenje s R, 864 00:48:24,420 --> 00:48:27,250 mora poduzeti sve Argumenti su pokazivače. 865 00:48:27,250 --> 00:48:30,666 >> Dakle, za pojedinačne vrijednosti, to znači to je ukazao na vrijednosti. 866 00:48:30,666 --> 00:48:33,040 Za polja, ovo je pokazivač na prvi element koji 867 00:48:33,040 --> 00:48:36,750 je ono što se imena Array zapravo znači. 868 00:48:36,750 --> 00:48:40,140 Opet, to je nešto što bi trebali imati prilično totalno dolje nakon p postaviti pet. 869 00:48:40,140 --> 00:48:43,334 Array imena su samo pokazivače na prvi element, 870 00:48:43,334 --> 00:48:44,750 Vrsta floating-point je dvostruka. 871 00:48:44,750 --> 00:48:47,310 A tvoja funkcija mora vratiti nevažeće. 872 00:48:47,310 --> 00:48:50,810 Jedini način da se to može zapravo reći R što se dogodilo 873 00:48:50,810 --> 00:48:54,410 je mijenjanjem memorije koja Ra je dao na njega kroz stranog funkciju 874 00:48:54,410 --> 00:48:54,910 sučelje. 875 00:48:54,910 --> 00:48:58,180 876 00:48:58,180 --> 00:49:00,127 >> Zato sam napisao ovo primjer ovdje, ovo je 877 00:49:00,127 --> 00:49:02,460 funkcija koja izračunava korištenja skalarni produkt dvaju vektora. 878 00:49:02,460 --> 00:49:05,060 Potrebno je dva argumenta, vec1, vec2, koji su sami vektori, 879 00:49:05,060 --> 00:49:06,934 te nje, koji je Duljina, jer opet, 880 00:49:06,934 --> 00:49:12,630 R je izgrađen u [nečujan] saznati duljina vektora, ali ne C. 881 00:49:12,630 --> 00:49:16,182 U C, vektori je proizvoljna razgraničena komad memorije. 882 00:49:16,182 --> 00:49:17,890 Dakle, način na koji možete izračunati proizvode dot 883 00:49:17,890 --> 00:49:23,470 je samo postaviti ovo parametar na nulu, a zatim ponoviti kroz 884 00:49:23,470 --> 00:49:28,760 od 1 do zvijezda nje, jer n je pokazivač duljine, 885 00:49:28,760 --> 00:49:32,929 samo dodati nešto ovo parametar. 886 00:49:32,929 --> 00:49:34,970 I to može biti dobra praksa ako idete raditi 887 00:49:34,970 --> 00:49:37,270 ovo napisati dva odvojena C funkcije. 888 00:49:37,270 --> 00:49:41,970 Jedan od njih has-- Jedan od njih samo Potrebno argumente i vrste 889 00:49:41,970 --> 00:49:43,970 da će obično biti u C. 890 00:49:43,970 --> 00:49:47,780 >> Zato je potrebno niz Argumenti su pokazivače. 891 00:49:47,780 --> 00:49:57,090 Ali jednog vrijednost argumenti poput n, samo je potrebno kao vrijednosti po primjerku, 892 00:49:57,090 --> 00:49:57,917 bez putokaza. 893 00:49:57,917 --> 00:49:59,750 A onda to ne [Nečujan] iz pokazivač. 894 00:49:59,750 --> 00:50:01,290 A onda možete imati drugačiji, u biti, 895 00:50:01,290 --> 00:50:03,623 omot funkcija koja osnovi obrađuje zahtjeve 896 00:50:03,623 --> 00:50:07,740 stranog funkcije sučelje za tebe. 897 00:50:07,740 --> 00:50:11,840 >> Način na koji to zvati u R je, nakon što imate svoj funkciju napisan u C, 898 00:50:11,840 --> 00:50:17,770 upišete R cmd shlib, R Naredba zajednička knjižnica, 899 00:50:17,770 --> 00:50:20,110 foo točka c, ili što god Vaše ime datoteke, 900 00:50:20,110 --> 00:50:23,020 a OS ne shell u R terminala. 901 00:50:23,020 --> 00:50:25,200 A to će stvoriti Knjižnica zove foo dot tako. 902 00:50:25,200 --> 00:50:28,180 A onda možete ga učitati u naša skripta ili interaktivno 903 00:50:28,180 --> 00:50:32,310 zapovjednoj din dot opterećenja. 904 00:50:32,310 --> 00:50:35,720 Tada je funkcija u R zove točka c. 905 00:50:35,720 --> 00:50:39,310 >> To traje argumente koji su Prvi naziv funkcije u C 906 00:50:39,310 --> 00:50:40,970 koji želite nazvati. 907 00:50:40,970 --> 00:50:43,920 A onda su svi parametri na tu funkciju, 908 00:50:43,920 --> 00:50:45,420 oni moraju biti u ispravnom redoslijedu. 909 00:50:45,420 --> 00:50:48,580 Morate koristiti ove vrste podvoñenje djeluje kao cijeli broj, kao 910 00:50:48,580 --> 00:50:52,050 dvostruko, kao lik i kao logičan. 911 00:50:52,050 --> 00:50:54,710 I onda kad se vraća Popis, koji je opet samo 912 00:50:54,710 --> 00:50:57,550 pridružena niz od parametar imena i vrijednosti 913 00:50:57,550 --> 00:51:00,950 nakon što je funkcija pokrenuti. 914 00:51:00,950 --> 00:51:08,520 >> Dakle, u ovom slučaju, jer je točka prod ima Argumenti vec1, vec2 i int n, n van. 915 00:51:08,520 --> 00:51:11,980 Do točke c imamo dot prod, naziv funkcije 916 00:51:11,980 --> 00:51:16,250 Mi pozivamo, vec1, vec2, vrsta prisile. 917 00:51:16,250 --> 00:51:20,060 Duljina oba vektora, Upravo sam izabrao vec1 samovoljno. 918 00:51:20,060 --> 00:51:25,479 Bilo bi više robustan reći S cijeli min dužina vec1, duljina vec2. 919 00:51:25,479 --> 00:51:27,520 Onda jednako dvostrukom nulom, jer mi ne stvarno 920 00:51:27,520 --> 00:51:29,644 zanima me što ide u iz parametra jer smo 921 00:51:29,644 --> 00:51:32,270 postavljanje ionako nula. 922 00:51:32,270 --> 00:51:37,560 >> A onda su rezultati će biti Veliki povezani niz osnovi 923 00:51:37,560 --> 00:51:42,090 vec1 je bilo, vec2 je god. 924 00:51:42,090 --> 00:51:44,330 No, mi smo zainteresirani za van, tako da možemo dobiti da van. 925 00:51:44,330 --> 00:51:47,780 To je opet, vrlo igračka primjer stranih funkcije sučelje. 926 00:51:47,780 --> 00:51:54,160 Ali ako imate izračunati točku proizvodi od masivnih vektora u petlji, 927 00:51:54,160 --> 00:51:56,960 ili ako morate učiniti nešto drugo u petlji, 928 00:51:56,960 --> 00:51:59,850 a vi ne želite da se oslanjaju na R, koji ima malo pretek 929 00:51:59,850 --> 00:52:02,830 ugrađene u njega, to može biti korisno. 930 00:52:02,830 --> 00:52:05,870 >> Opet, to obično nije uvodni tema za R. 931 00:52:05,870 --> 00:52:08,571 To nije dobro dokumentirani. 932 00:52:08,571 --> 00:52:11,070 Ja sam ga samo zato uključujući Našao sam da je koristan u prošlosti. 933 00:52:11,070 --> 00:52:13,654 Dakle, loše prakse. 934 00:52:13,654 --> 00:52:15,820 Spomenuo sam da postoji for petlja u funkciji. 935 00:52:15,820 --> 00:52:21,150 Općenito ne bi trebali, u jezik, a ne ga koristiti. 936 00:52:21,150 --> 00:52:26,100 Ovisno o tome kako je R provodi iteracija interno, to može biti spor. 937 00:52:26,100 --> 00:52:28,540 Oni jednostavno i izgleda ružno. 938 00:52:28,540 --> 00:52:32,410 >> R ručke vektora vrlo lijepo, tako često ne morate ga koristiti. 939 00:52:32,410 --> 00:52:35,050 940 00:52:35,050 --> 00:52:38,900 Zatim možete obično zamijeniti vektor često 941 00:52:38,900 --> 00:52:42,490 s tim funkcijama zove visoka Funkcije reda, karta, smanjiti, 942 00:52:42,490 --> 00:52:44,404 Pronađite ili filtar. 943 00:52:44,404 --> 00:52:46,320 Ja ću samo dati neke primjeri onoga što ti je činiti. 944 00:52:46,320 --> 00:52:49,957 Karta je viša funkcija nalog zbog to traje funkciju kao argument. 945 00:52:49,957 --> 00:52:52,290 Tako možete dati ga funkciju, možete mu dati niz, 946 00:52:52,290 --> 00:52:54,640 i to će se primjenjivati ​​funkciju na svaki element niza 947 00:52:54,640 --> 00:52:55,681 i vratiti novi niz. 948 00:52:55,681 --> 00:52:58,035 949 00:52:58,035 --> 00:53:00,160 Smanjiti, zapravo dajete je niz, što ga dati 950 00:53:00,160 --> 00:53:02,930 funkcija koja traje dva argumenta. 951 00:53:02,930 --> 00:53:07,100 Ona će se primjenjivati ​​funkciju prvo, prvi argument s nekim starter vrijednosti. 952 00:53:07,100 --> 00:53:09,440 Zatim se taj rezultat u sekundi. 953 00:53:09,440 --> 00:53:12,590 Zatim se taj rezultat u trećem, onda na taj rezultat u četvrtom. 954 00:53:12,590 --> 00:53:14,870 A onda se vratiti kad se dobiva na kraju. 955 00:53:14,870 --> 00:53:17,620 Tako na primjer, ako želite izračunati zbroj svih elemenata 956 00:53:17,620 --> 00:53:23,240 u niz, nego što bi mogli nazvati smanjiti s [nečujan] smanjila dodatak 957 00:53:23,240 --> 00:53:26,620 funkcija, kao što su fun a, b, b vratiti plus. 958 00:53:26,620 --> 00:53:28,960 A onda početak vrijednost 0. 959 00:53:28,960 --> 00:53:32,950 >> I sve to, možete ih naći opisano u R dokumentacije, 960 00:53:32,950 --> 00:53:35,720 u svakom udžbeniku o funkcionalni programiranje. 961 00:53:35,720 --> 00:53:38,330 Tu je i ova klasa Funkcije nazivaju prijaviti funkcije, 962 00:53:38,330 --> 00:53:42,807 koji sam don't-- oni malo teško objasniti, 963 00:53:42,807 --> 00:53:45,640 ali ako pogledate u [nečujan] zaradio sam naveo na početku, 964 00:53:45,640 --> 00:53:48,615 on ih objašnjava prilično dobro u njegov dodatak na R programiranje. 965 00:53:48,615 --> 00:53:51,599 966 00:53:51,599 --> 00:53:53,390 Više o praksi, dodavanjem na vektore. 967 00:53:53,390 --> 00:53:57,570 968 00:53:57,570 --> 00:53:58,070 Da? 969 00:53:58,070 --> 00:54:01,651 970 00:54:01,651 --> 00:54:02,900 Mislim da bi trebalo ispraviti. 971 00:54:02,900 --> 00:54:07,450 U toj prvoj liniji, VEC strijela, da strijela ne bi trebao biti tamo. 972 00:54:07,450 --> 00:54:10,920 Možete dodijeliti vektora, opet, po zauzeti svoje dužine plus 1 973 00:54:10,920 --> 00:54:13,220 i dodjeljivanje neke vrijednosti na to. 974 00:54:13,220 --> 00:54:18,970 To će produljiti vektor, ili možete učiniti VEC jednak c, VEC newvalue. 975 00:54:18,970 --> 00:54:21,540 Opet, ako koristite C sa jedan argument kao vektor, 976 00:54:21,540 --> 00:54:23,300 dobivena hijerarhija dobiva spljošteno. 977 00:54:23,300 --> 00:54:27,160 Tako da ću samo dobiti vektor koji je produžen do 1.. 978 00:54:27,160 --> 00:54:30,410 Nikada to učiniti. 979 00:54:30,410 --> 00:54:33,330 >> Razlog zašto vas Ne bi trebalo učiniti je to. 980 00:54:33,330 --> 00:54:37,430 Kada izdvojiti vektor, to daje određenu komad memorije. 981 00:54:37,430 --> 00:54:40,680 Ako povećate tu veličinu vektora, mora preraspodijeliti vektor 982 00:54:40,680 --> 00:54:43,820 negdje drugdje. 983 00:54:43,820 --> 00:54:46,980 I tako preraspodjela je prilično skupo. 984 00:54:46,980 --> 00:54:50,530 Neću ići u detalje o tome memorije razdjelnici provode 985 00:54:50,530 --> 00:54:57,280 na razini operacijskog sustava, ali je potrebno puno vremena 986 00:54:57,280 --> 00:54:58,962 pronaći novi komad memorije. 987 00:54:58,962 --> 00:55:00,920 I također, ako ste Preraspodjela puno i puno 988 00:55:00,920 --> 00:55:03,500 progresivno veće komadi, te kraj gore 989 00:55:03,500 --> 00:55:06,420 s nečim što se zove memorije fragmentacija, 990 00:55:06,420 --> 00:55:09,390 gdje je dostupna memorija podijeljen u mnogo malih blokova 991 00:55:09,390 --> 00:55:11,500 u memoriji razdjelnici gledišta. 992 00:55:11,500 --> 00:55:15,340 I to dobiva teže i teže pronaći memorije za druge stvari. 993 00:55:15,340 --> 00:55:19,455 Dakle, umjesto, ako je potrebno za to, ako je morate rasti vektora s jednog kraja 994 00:55:19,455 --> 00:55:24,240 na sljedeći, umjesto da dodavanjem na njega stalno, trebate unaprijed izdvojiti ga. 995 00:55:24,240 --> 00:55:29,310 VEC strelica, duljina vektora jednaka 1.000, ili što god. 996 00:55:29,310 --> 00:55:33,200 >> I onda ti samo mogu dodijeliti na vektor je vrijednosti jednog 997 00:55:33,200 --> 00:55:36,000 vrijeme nakon što ste ga dodjeljuje jednom. 998 00:55:36,000 --> 00:55:40,140 Naletio sam na to, opet, moj ljetni posao kad sam pisao NRA razlike 999 00:55:40,140 --> 00:55:42,120 jednadžba Solver. 1000 00:55:42,120 --> 00:55:43,180 Ne simbolično numerički. 1001 00:55:43,180 --> 00:55:49,290 Ideja je da, kada imate jedna vrijednost za svoj rješenje, 1002 00:55:49,290 --> 00:55:51,240 koristite kako bi izračunali sljedeći. 1003 00:55:51,240 --> 00:55:53,700 Tako je moj prirodni naivna Sklonost je reći u redu, 1004 00:55:53,700 --> 00:55:56,930 pa ću početi s vektorom to je znatan vrijednost. 1005 00:55:56,930 --> 00:56:01,260 Izračunaj iz tog sljedeću vrijednost koja ide na moj rješenja vektora, 1006 00:56:01,260 --> 00:56:02,630 i dodati da je. 1007 00:56:02,630 --> 00:56:05,290 >> Napravite nešto drugo, dodati da je. 1008 00:56:05,290 --> 00:56:08,120 On je otišao vrlo, vrlo sporo. 1009 00:56:08,120 --> 00:56:11,540 I kad sam to shvatio i sam promijenio sustav 1010 00:56:11,540 --> 00:56:16,020 od dodavanjem ovoj vektor kao i 10.000 do 100.000 puta, 1011 00:56:16,020 --> 00:56:18,910 samo prije dodjele vektor i samo trčanje s tim. 1012 00:56:18,910 --> 00:56:22,100 Imam više od 1000 puta ubrzati. 1013 00:56:22,100 --> 00:56:26,280 Dakle, to je vrlo čest zamka za R programiranje. 1014 00:56:26,280 --> 00:56:31,560 Ako trebate izgraditi vektor komad po komad, prethodno izdvojiti ga. 1015 00:56:31,560 --> 00:56:35,360 1016 00:56:35,360 --> 00:56:40,240 >> Još jedan zajednički izlet up-- ovo je moja posljednja tobogan, ne worry-- je rukovanje pogreškama. 1017 00:56:40,240 --> 00:56:42,890 R, da budem iskren, ne stvarno to vrlo dobro. 1018 00:56:42,890 --> 00:56:45,010 Postoji mnogo Problemi koji se mogu pojaviti. 1019 00:56:45,010 --> 00:56:48,360 Na primjer, ako dobijete niz ili vektor iz funkcije 1020 00:56:48,360 --> 00:56:52,377 da su očekivali jedan vrijednost dolaze iz, ili obrnuto, 1021 00:56:52,377 --> 00:56:55,460 a ti prođe da se u funkciju koja što je napisao očekujući jednu vrijednost, 1022 00:56:55,460 --> 00:56:57,270 da može biti problem. 1023 00:56:57,270 --> 00:57:01,440 >> Određene funkcije povratak null kao i, recimo, 1024 00:57:01,440 --> 00:57:05,560 čitanja iz nepostojeći ključ u popisu. 1025 00:57:05,560 --> 00:57:08,527 No null nije kao C gdje ako pokušate pročitati 1026 00:57:08,527 --> 00:57:11,360 iz stare pokazivač, [nečujan] na null pokazivača, to samo SEG greške 1027 00:57:11,360 --> 00:57:14,109 a ako ste u vašem ispravljanje pogrešaka je govori točno gdje ste. 1028 00:57:14,109 --> 00:57:17,080 1029 00:57:17,080 --> 00:57:20,772 Umjesto toga, null će do-- funkcije će učiniti nepredvidljive stvari 1030 00:57:20,772 --> 00:57:21,730 ako su rukom null. 1031 00:57:21,730 --> 00:57:24,575 Kao, ako ste predali max null, to će vam dati negativnu beskonačnost. 1032 00:57:24,575 --> 00:57:27,230 1033 00:57:27,230 --> 00:57:28,190 I tako, da. 1034 00:57:28,190 --> 00:57:30,880 1035 00:57:30,880 --> 00:57:32,630 I tako se to dogodilo mi je jednom kad sam imala 1036 00:57:32,630 --> 00:57:34,771 promijenila hrpa polja u mom popisu strukturi 1037 00:57:34,771 --> 00:57:37,520 jednom bez da ih mijenja drugdje kad sam čitao od njih. 1038 00:57:37,520 --> 00:57:40,670 A onda sam dobio sve vrste slučajnih Rezultati INFINITY pomalja 1039 00:57:40,670 --> 00:57:43,080 a ja pojma odakle su došli. 1040 00:57:43,080 --> 00:57:45,310 I na žalost, tu je ne pravi R strogi mod 1041 00:57:45,310 --> 00:57:48,940 gdje možete reći ako nešto Izgleda kao da bi moglo biti pogreška, 1042 00:57:48,940 --> 00:57:51,960 samo tu zaustaviti, tako da mogu biti discipliniran i popraviti. 1043 00:57:51,960 --> 00:57:55,282 1044 00:57:55,282 --> 00:57:57,240 Međutim, postoji nešto zove zaustaviti ako nije. 1045 00:57:57,240 --> 00:58:00,480 To je ekvivalent do C je tvrditi, ako ste razgovarali o tome. 1046 00:58:00,480 --> 00:58:02,690 Ne mislim C tvrde je predavanje tema, 1047 00:58:02,690 --> 00:58:06,370 ali vaš vođa odjeljak Možda su otišli preko njega. 1048 00:58:06,370 --> 00:58:10,393 I prestani ako ne i zapravo preuzima bilo predikat, tako da bilo koja izjava 1049 00:58:10,393 --> 00:58:11,824 može biti istinita ili lažna. 1050 00:58:11,824 --> 00:58:13,490 A ako je lažna, ona prestaje svoj program. 1051 00:58:13,490 --> 00:58:18,260 To vam govori točno ono što vam se postroje bili i što nije uvjet. 1052 00:58:18,260 --> 00:58:21,910 >> A to je vrlo korisno, na primjer, Provjera razum, funkcija ulaza. 1053 00:58:21,910 --> 00:58:25,110 Dakle, ako imate funkcija i što očekujete, recimo, 1054 00:58:25,110 --> 00:58:29,640 ako treba mi dati datum, želim datumi biti samo vektor duljine 1 1055 00:58:29,640 --> 00:58:31,735 a negdje između 1 i 31. 1056 00:58:31,735 --> 00:58:34,420 1057 00:58:34,420 --> 00:58:36,170 A ako ne, ja znam nešto je pošlo krivo. 1058 00:58:36,170 --> 00:58:40,280 I sam se odlučio da se zaustavi tamo prije toga ima slučajnim kucati na efekte s kodom 1059 00:58:40,280 --> 00:58:44,190 da je teže ući u trag kroz. 1060 00:58:44,190 --> 00:58:47,170 Dakle, to je jedan od mogućih koristiti za zaustavljanje, ako ne. 1061 00:58:47,170 --> 00:58:48,660 >> U svakom slučaju, u redu. 1062 00:58:48,660 --> 00:58:49,690 Dakle, to je kraj. 1063 00:58:49,690 --> 00:58:51,290 Hvala vam toliko što ste došli. 1064 00:58:51,290 --> 00:58:53,710 Ja sam čin amater u ovome. 1065 00:58:53,710 --> 00:58:57,270 Dakle, ispričavam se ako ste dosadno ili zbunjeni ili što si. 1066 00:58:57,270 --> 00:59:01,670 Sretan sam da se pitanja putem e-pošte na connorharris@college.harvard.edu~~pobj. 1067 00:59:01,670 --> 00:59:07,230 To vrijedi i za sve gledajući ovaj žive ili kasnije. 1068 00:59:07,230 --> 00:59:10,190 Također, iako nisam TF, ja sam također vrlo 1069 00:59:10,190 --> 00:59:13,900 voljni služiti kao neslužbena savjetnik za svakoga tko je 1070 00:59:13,900 --> 00:59:15,460 korištenjem R u konačnom projektu. 1071 00:59:15,460 --> 00:59:19,900 >> Ako želite da se, onda samo razgovarati sa svojim TF 1072 00:59:19,900 --> 00:59:23,750 a zatim napisati mi email kako Znam što radite 1073 00:59:23,750 --> 00:59:26,680 i tako ja mogu postaviti sastanak puta s vama, ako želite. 1074 00:59:26,680 --> 00:59:27,990 Pa opet, puno ti hvala. 1075 00:59:27,990 --> 00:59:28,960 Nadam se da ste uživali u njoj. 1076 00:59:28,960 --> 00:59:29,450 >> PUBLIKA: [nečujan]. 1077 00:59:29,450 --> 00:59:30,617 >> CONNER HARRIS: Naravno. 1078 00:59:30,617 --> 00:59:34,910 >> PUBLIKA: Kakav projekta bi CS student korištenje R za? 1079 00:59:34,910 --> 00:59:37,427 1080 00:59:37,427 --> 00:59:40,510 CONNER HARRIS: Dakle, ako niste učinili nešto što je čisto u data mining, 1081 00:59:40,510 --> 00:59:43,790 na primjer, i tu puno stvari 1082 00:59:43,790 --> 00:59:46,692 što mogu učiniti s tim podacima rudarstva i strojno učenje. 1083 00:59:46,692 --> 00:59:48,900 Možda želite koristiti za R sastavni dio nečega. 1084 00:59:48,900 --> 00:59:52,022 Sam odrastao, izvorno, primjer od ako pišete website 1085 00:59:52,022 --> 00:59:54,730 i želite pokrenuti automatizirani statistička analiza poslužitelju 1086 00:59:54,730 --> 00:59:57,990 Dnevnici u određeno vrijeme svaki dan, to bi moglo biti nešto što je 1087 00:59:57,990 --> 01:00:01,260 vrlo jednostavno za napraviti u samo kratko R skripta da možete planirati 1088 01:00:01,260 --> 01:00:04,200 izvoditi svake večeri, na primjer. 1089 01:00:04,200 --> 01:00:06,550 >> I siguran sam da, ako postoji li neki razlog da bih 1090 01:00:06,550 --> 01:00:11,520 Želite statistiku ili grafičkim mogućnostima i imaju tu pokrenuti automatski umjesto 1091 01:00:11,520 --> 01:00:13,790 vlasništvo komunicirati sa stvarima u Excel, 1092 01:00:13,790 --> 01:00:16,750 na primjer, da je nešto možda želite koristiti R za. 1093 01:00:16,750 --> 01:00:21,190 Dakle, bilo više pitanja prije nego što odem? 1094 01:00:21,190 --> 01:00:21,690 Ne? 1095 01:00:21,690 --> 01:00:24,960 Dobro, dobro, opet, hvala Puno došli. 1096 01:00:24,960 --> 01:00:29,417