1 00:00:00,000 --> 00:00:05,691 2 00:00:05,691 --> 00:00:07,690 Connor HARRIS: Ankoraŭ mi pensas iu ekscita video 3 00:00:07,690 --> 00:00:12,570 produktitaj de profesia consultoría kiu uzas R multon en lia laboro. 4 00:00:12,570 --> 00:00:16,329 >> Rakontanto: Kio estas malantaŭ la statistikojn, la analizo, kaj la visualizaciones 5 00:00:16,329 --> 00:00:19,770 ke hodiaŭa brila datumoj sciencistoj kaj komercaj estroj fidi 6 00:00:19,770 --> 00:00:22,012 fari potencan decidoj? 7 00:00:22,012 --> 00:00:23,540 Vi eble ne ĉiam vidi ĝin. 8 00:00:23,540 --> 00:00:24,790 Sed ĝi estas tie. 9 00:00:24,790 --> 00:00:29,460 Ĝi nomiĝas R, malferma fonto R-- la statistika programlingvo 10 00:00:29,460 --> 00:00:32,630 ke datumoj ekspertoj la mondo super uzo por ĉio 11 00:00:32,630 --> 00:00:35,350 el mapado larĝaj sociaj kaj merkatumanta tendencojn enreta 12 00:00:35,350 --> 00:00:39,210 por disvolvi la financaj kaj klimato modeloj kiuj helpas stiri nian ekonomioj 13 00:00:39,210 --> 00:00:40,780 kaj komunumojn. 14 00:00:40,780 --> 00:00:44,910 >> Sed kio precize estas R kaj de kie R komenci? 15 00:00:44,910 --> 00:00:48,620 Nu origine, R komenciĝis tie kun du profesoroj 16 00:00:48,620 --> 00:00:51,950 kiu volis pli bonan statistikan platformo por iliaj studentoj. 17 00:00:51,950 --> 00:00:56,030 Do ili kreis modelado post la statistika lingvo S. 18 00:00:56,030 --> 00:01:00,480 Ili, kune kun multaj aliaj, multe okupiĝis pri kaj uzante R, 19 00:01:00,480 --> 00:01:05,489 krei ilojn por R kaj trovante novaj aplikoj por R ĉiutage. 20 00:01:05,489 --> 00:01:07,750 >> Danke al ĉi tio estas mondskalaj penon, 21 00:01:07,750 --> 00:01:11,850 R konservis kreskanta kun miloj de uzanto kreita bibliotekoj konstruitaj 22 00:01:11,850 --> 00:01:15,500 plibonigi R funcionalidad kaj amaso-sourced kvalito kontrolada 23 00:01:15,500 --> 00:01:19,740 kaj subteno de la plej rekonitaj industrio gvidantoj ĉiukampe ke 24 00:01:19,740 --> 00:01:25,040 uzas R. Kiu estas granda, ĉar R estas la plej bona ĉe kion ĝi faras. 25 00:01:25,040 --> 00:01:28,540 Burĝona spertuloj rapide kaj facile interpreti, interagi kun, 26 00:01:28,540 --> 00:01:33,790 kaj visualizar datumoj montrante ilian rapide kreskanta komunumo de R uzantoj tutmonde 27 00:01:33,790 --> 00:01:36,380 kaj vidi kiel malferma fonto R daŭre formi 28 00:01:36,380 --> 00:01:39,340 la estonteco de statistika analizo kaj datumoj scienco. 29 00:01:39,340 --> 00:01:44,660 30 00:01:44,660 --> 00:01:47,710 >> Connor HARRIS: OK, granda. 31 00:01:47,710 --> 00:01:50,360 Do mia propra prezento estos iom pli sobra. 32 00:01:50,360 --> 00:01:54,380 Ĝi ne implikas ke multe ekscita fono muziko. 33 00:01:54,380 --> 00:01:59,160 Sed kiel vi vidis en la vídeo, R estas speco de ĝenerala celo programo lingvon. 34 00:01:59,160 --> 00:02:03,720 Sed ĝi estis kreita plejparte por statistikaj laboro. 35 00:02:03,720 --> 00:02:07,980 >> Do ĝi estas desegnita por statistiko, por datuma analizo, por datumoj minado. 36 00:02:07,980 --> 00:02:12,420 Kaj tiel vi povas vidi tiun en multajn la dezajno elektojn ke la farantoj de R 37 00:02:12,420 --> 00:02:13,320 faris. 38 00:02:13,320 --> 00:02:15,472 Ĝi estas desegnita por plejparte, personoj kiuj ne estas 39 00:02:15,472 --> 00:02:17,930 fakuloj en programado, kiu jxus kaptanta programado 40 00:02:17,930 --> 00:02:23,460 sur la flanko tiel ke ili povas fari ilian laboron en socia scienco aŭ en statistiko 41 00:02:23,460 --> 00:02:25,440 aŭ kio ajn. 42 00:02:25,440 --> 00:02:27,850 >> Ĝi havas multajn tre gravaj diferencoj de C. 43 00:02:27,850 --> 00:02:33,200 Sed la sintakso kaj la paradigmoj ke ĝi uzas estas larĝe la sama. 44 00:02:33,200 --> 00:02:36,830 Kaj vi devus senti bela multe hejme dekstra ekstere la batilo. 45 00:02:36,830 --> 00:02:38,520 Estas imperativo lingvo. 46 00:02:38,520 --> 00:02:40,260 >> Ne tro maltrankviliĝu pri tio se vi ne konas la terminon. 47 00:02:40,260 --> 00:02:42,676 Sed estas distingo inter imperativo, enunciativo, 48 00:02:42,676 --> 00:02:43,810 kaj funkcia. 49 00:02:43,810 --> 00:02:47,600 Imperativo nur signifas vin fari deklaroj kiuj estas esence ordonas. 50 00:02:47,600 --> 00:02:52,340 Kaj tiam la interpretisto aŭ la komputilo sekvas ilin unu post unu. 51 00:02:52,340 --> 00:02:56,630 Ĝi estas malforte tajpita, estas neniu tipo deklaroj en R. 52 00:02:56,630 --> 00:02:59,130 >> Kaj tiam la linioj inter malsamaj tipoj 53 00:02:59,130 --> 00:03:03,920 estas iom pli malfiksas ol ili estas en C, ekzemple. 54 00:03:03,920 --> 00:03:06,450 Kaj kiel mi diris estas tre vasta instalaĵoj 55 00:03:06,450 --> 00:03:15,610 por grafikaj, por statistikaj analizo, por datumoj minado. 56 00:03:15,610 --> 00:03:19,540 Tiuj estas ambaŭ konstruita en la lingvo kaj, kiel la video diris, 57 00:03:19,540 --> 00:03:23,680 miloj de triaj bibliotekoj kiuj vi povas elŝuti kaj uzi senpage 58 00:03:23,680 --> 00:03:25,340 kun tre sueltos permesilo kondiĉojn. 59 00:03:25,340 --> 00:03:28,800 60 00:03:28,800 --> 00:03:31,500 >> Do ĝenerale, mi rekomendas ke vi rigardu tiujn du librojn 61 00:03:31,500 --> 00:03:34,610 se vi tuj labori sur R. Unu de ili estas la oficiala R Komencanto 62 00:03:34,610 --> 00:03:35,110 gvidi. 63 00:03:35,110 --> 00:03:38,660 Ĝi estas subtenita de la kernajn laborantojn de R. 64 00:03:38,660 --> 00:03:42,400 Vi povas elŝuti ĝin denove, libera de ŝarĝi kaj jure ĉe ligantaj tie. 65 00:03:42,400 --> 00:03:45,430 66 00:03:45,430 --> 00:03:49,869 Ĉiuj tiuj diapozitivoj tuj iros supren sur la interreto, sur CS50 paĝaro 67 00:03:49,869 --> 00:03:50,660 post ĉi estas farita. 68 00:03:50,660 --> 00:03:53,690 Do ne bezonas kopii aferojn malsupren panike. 69 00:03:53,690 --> 00:03:56,800 >> La alia unu estas lernolibro de Cosma Shalizi, 70 00:03:56,800 --> 00:04:00,100 Kiu estas statistiko profesoro Carnegie Mellon, nomita Altnivela Datumoj 71 00:04:00,100 --> 00:04:02,160 Analizo de la Elementa vidpunkto. 72 00:04:02,160 --> 00:04:04,010 Tio ne ĉefe R libro. 73 00:04:04,010 --> 00:04:07,130 Estas statistikojn libro kaj ĝi estas datumo analitiko libro. 74 00:04:07,130 --> 00:04:11,990 Sed ĝi estas tre atingebla por homoj kiuj havi minimumon de statistiko scio. 75 00:04:11,990 --> 00:04:13,750 >> Mi neniam prenis formalan kurson. 76 00:04:13,750 --> 00:04:17,269 Mi nur scias bitoj kaj pecoj el diversaj aliancitaj temoj 77 00:04:17,269 --> 00:04:18,579 ke mi prenis kursojn en. 78 00:04:18,579 --> 00:04:21,839 Kaj mi povis kompreni ĝi tute bone. 79 00:04:21,839 --> 00:04:25,630 >> Ĉiuj figuroj estas donitaj en R. Ili estas faritaj en R 80 00:04:25,630 --> 00:04:30,280 kaj ili ankaŭ havas kodon listigo sub ĉiu figuro kiu diras al vi 81 00:04:30,280 --> 00:04:33,270 kiel vi faras ĉiu figuro kun R kodon. 82 00:04:33,270 --> 00:04:37,400 Kaj tio estas tre utila se vi provas emular 83 00:04:37,400 --> 00:04:38,650 iu figuro vi vidas en libro. 84 00:04:38,650 --> 00:04:47,840 >> Kaj denove libera deŝuto stat.cmu.edu/cshalizi/ Mizera, 85 00:04:47,840 --> 00:04:50,230 kiuj devus esti oblikvo supersigno cshalizi. 86 00:04:50,230 --> 00:04:53,150 Mi certiĝu korekti tion kiam la oficiala diapozitivoj iru. 87 00:04:53,150 --> 00:04:57,000 / ADAfaEPoV kiu estas nur la akronimo de la libro titolo. 88 00:04:57,000 --> 00:04:59,850 89 00:04:59,850 --> 00:05:02,500 >> Do ĝenerale caveats-- R havas multajn kapablojn. 90 00:05:02,500 --> 00:05:05,331 Mi nur tuj povos kovri la surfaco de multaj aferoj. 91 00:05:05,331 --> 00:05:08,580 Ankaŭ la unua parto de la seminario tuj esti io de datumoj Escorial. 92 00:05:08,580 --> 00:05:11,437 Mi estas tute bedaŭras pri tio. 93 00:05:11,437 --> 00:05:13,770 Esence, mi tuj klarigi pri multaj aferoj 94 00:05:13,770 --> 00:05:15,350 tuj la batilo, iri kiel rapide kiel ebla. 95 00:05:15,350 --> 00:05:17,058 Kaj tiam ni atingos la amuza parto, kiu estas 96 00:05:17,058 --> 00:05:20,570 la demo kie mi povas montri al vi ĉion ke ni jam parolis pri la ekrano. 97 00:05:20,570 --> 00:05:23,321 Kaj vi povas ludi ĉirkaŭ sur via propra. 98 00:05:23,321 --> 00:05:26,070 Do tie okazas esti multajn teknikajn aferojn alteriĝas ĉe tie. 99 00:05:26,070 --> 00:05:28,060 Ne maltrankviliĝu pri kopiado ĉiuj kiuj suben. 100 00:05:28,060 --> 00:05:31,740 Ĉar, Vi povas akiri ĉiujn havajxoj sur la CS50 retejo poste. 101 00:05:31,740 --> 00:05:37,780 Kaj B, ĝi ne estas vere, ke grava enmemorigi ĉi de la diapozitivoj. 102 00:05:37,780 --> 00:05:40,462 Estas pli grava ke vi akiras iu intuicia facilecon kun ĝi 103 00:05:40,462 --> 00:05:44,220 kaj tio devenas nur ludanta ĉirkaŭ. 104 00:05:44,220 --> 00:05:45,720 >> Do kial uzi la R? 105 00:05:45,720 --> 00:05:49,440 Esence, se vi havas projekton kiu engaĝas ministo grandaj datenaroj, datumoj 106 00:05:49,440 --> 00:05:52,664 vidigo, vi devus uzi R. Se vi estas 107 00:05:52,664 --> 00:05:55,830 faras komplikita statistikaj analizoj, ke estus malfacile en Excel, 108 00:05:55,830 --> 00:05:58,010 ekzemple, estus ankaŭ esti good-- ankaŭ 109 00:05:58,010 --> 00:06:00,506 se vi faras statistikan analizo kiuj estas aŭtomatigitaj. 110 00:06:00,506 --> 00:06:02,130 Diru vi daŭriganta retejo. 111 00:06:02,130 --> 00:06:06,320 Kaj vi volas legi la servilo log ĉiutage kaj kompili iun liston, 112 00:06:06,320 --> 00:06:10,320 nuda landoj viaj uzantoj venas el: 113 00:06:10,320 --> 00:06:15,100 kelkaj resumaj statistikoj pri kiel longe ili pasigas sur via retejo aŭ kio ajn. 114 00:06:15,100 --> 00:06:16,910 Kaj vi volas kuri ĉi ĉiutage. 115 00:06:16,910 --> 00:06:20,280 >> Nun se vi faras tion en Excel, vi devus iri al via servilo log, 116 00:06:20,280 --> 00:06:23,490 importi ke enen Excel datumoj kalkultabelo, 117 00:06:23,490 --> 00:06:24,910 kuri ĉiujn analizo permane. 118 00:06:24,910 --> 00:06:27,100 Kun R, vi povas simple skribi unu skripton. 119 00:06:27,100 --> 00:06:29,520 Plani ĝin kuri ĉiutage de via mastruma sistemo. 120 00:06:29,520 --> 00:06:33,657 Kaj tiam ĉiu nokto ĉe 2:00 AM, aŭ whenever vi planas ĝin kuri, 121 00:06:33,657 --> 00:06:35,990 ĝi aspektos tra via interreto trafiko por tiu tago. 122 00:06:35,990 --> 00:06:39,010 Kaj tiam de la sekva tago, vi devos havas ĉi brila, nova raporto 123 00:06:39,010 --> 00:06:41,710 aŭ cuanta kun ĉiuj de la informo vi petis. 124 00:06:41,710 --> 00:06:44,960 125 00:06:44,960 --> 00:06:50,217 >> Do esence R estas por Cisco Programado kontre Cisco analizo. 126 00:06:50,217 --> 00:06:51,050 Prepara fariĝis. 127 00:06:51,050 --> 00:06:53,104 Ni enir la realaj aĵoj. 128 00:06:53,104 --> 00:06:55,020 Do estas tri reala tipoj en la lingvo. 129 00:06:55,020 --> 00:06:56,120 Ekzistas nombraj tipo. 130 00:06:56,120 --> 00:07:01,250 Tie estas ia diferenco inter entjeroj kaj flosanta punktoj, 131 00:07:01,250 --> 00:07:02,769 sed ne vere. 132 00:07:02,769 --> 00:07:04,560 Ekzistas karaktero tajpi, kiu estas kordoj. 133 00:07:04,560 --> 00:07:07,100 Kaj estas logika tajpi, kiu estas Booleans. 134 00:07:07,100 --> 00:07:11,080 >> Kaj vi povas konverti inter tipoj uzante tiujn funkciojn kiel nombra, 135 00:07:11,080 --> 00:07:15,220 kiel karaktero, kiel logika. 136 00:07:15,220 --> 00:07:17,510 Se vi vokos, ekzemple, kiel numera sur ŝnureto, 137 00:07:17,510 --> 00:07:20,030 provos legi ke kordo kiel nombro, sammaniere 138 00:07:20,030 --> 00:07:25,897 ke a2i kaj scanf fari, kaj C. Se vi nomas kiel numera sur vera aŭ malvera 139 00:07:25,897 --> 00:07:26,980 ĝi igos al 1 aŭ 0. 140 00:07:26,980 --> 00:07:29,110 Se vi nomas kiel karaktero sur io ĝi malebligos 141 00:07:29,110 --> 00:07:32,550 konverti ke en string reprezento. 142 00:07:32,550 --> 00:07:34,990 >> Kaj tiam tie estas vektoroj kaj matricoj. 143 00:07:34,990 --> 00:07:37,580 Do vektoroj estas esence 1 dimensia tabeloj. 144 00:07:37,580 --> 00:07:40,600 Ili estas kion ni nomas arrays en C. Matricoj, 2 dimensia tabeloj. 145 00:07:40,600 --> 00:07:42,350 Kaj tiam pli altaj dimensia arrays vi povas 146 00:07:42,350 --> 00:07:48,560 havas 3, 4, 5 dimensioj aŭ kio ajn de nombraj valoroj, de kordoj, 147 00:07:48,560 --> 00:07:52,860 de logikaj valoroj. 148 00:07:52,860 --> 00:07:55,380 >> Vi ankaŭ havas listojn kiuj estas speco de asocieca tabelo. 149 00:07:55,380 --> 00:07:57,390 Mi ricevos en tiun iom. 150 00:07:57,390 --> 00:07:59,390 Do unu grava afero ke malhelpas homojn en R 151 00:07:59,390 --> 00:08:01,470 estas ke ekzistas neniuj reala, pura atomaj specoj. 152 00:08:01,470 --> 00:08:05,870 Mankas efektiva distingo inter kelkaj, kiel nombra valoro, 153 00:08:05,870 --> 00:08:07,920 kaj listo de nombraj valoroj. 154 00:08:07,920 --> 00:08:12,370 Numeraj valoroj estas fakte la sama kiel la vektoroj de longo 1. 155 00:08:12,370 --> 00:08:14,959 Kaj ĉi havas kelkajn gravaj implicoj. 156 00:08:14,959 --> 00:08:17,500 Unu, ĝi signifas ke vi povas fari aferojn tre facile ke engaĝi 157 00:08:17,500 --> 00:08:21,037 kiel aldoni kelkajn al vektoro. 158 00:08:21,037 --> 00:08:23,120 R estos esence figuro kion vi celas diri per tio. 159 00:08:23,120 --> 00:08:24,610 Kaj mi atingos tion en dua. 160 00:08:24,610 --> 00:08:27,930 Ĝi ankaŭ signifas ke ekzistas neniu maniero por la tipo checker-- al la mezuro 161 00:08:27,930 --> 00:08:30,530 ke io simila Ekzistas en R-- diri 162 00:08:30,530 --> 00:08:33,780 kiam vi pasis en la sola valoro kiam atendas tabelo aŭ inverse. 163 00:08:33,780 --> 00:08:39,159 Kaj kiu povas kaŭzi iun nepara problemoj kiujn mi renkontis kiam 164 00:08:39,159 --> 00:08:42,252 Mi uzis R dum mia somera laborposteno. 165 00:08:42,252 --> 00:08:43,710 Kaj ne estas miksita tipo tabeloj. 166 00:08:43,710 --> 00:08:46,543 Do vi ne povas havi tabelo estis la unuaj eroj estas, mi ne scias, 167 00:08:46,543 --> 00:08:49,332 la ĉeno "John" kaj la dua elemento estas nombro 42. 168 00:08:49,332 --> 00:08:52,540 Se vi provas fari tion, tiam vi ricevos ĉio ĝuste konvertita al ĉeno. 169 00:08:52,540 --> 00:08:54,760 Do ni havas ĉenon John, kordoj 42. 170 00:08:54,760 --> 00:08:58,250 171 00:08:58,250 --> 00:09:02,025 >> Do nekutimaj sintaksaj features-- plej de R sintakso estas tre simila al C. 172 00:09:02,025 --> 00:09:04,690 Ekzistas kelkaj gravaj diferencoj. 173 00:09:04,690 --> 00:09:05,620 Tajpado estas tre malforta. 174 00:09:05,620 --> 00:09:07,360 Do estas neniu variablo deklaroj. 175 00:09:07,360 --> 00:09:12,670 Tasko uzas la stranga eraro operatoro malpli ol streketo. 176 00:09:12,670 --> 00:09:15,340 Komentoj estas kun la hash markon. 177 00:09:15,340 --> 00:09:19,230 Mi supozas nun tagoj ni nomas ĝin hashtag kvankam tio ne estas vere accurate-- ne 178 00:09:19,230 --> 00:09:21,810 la duobla oblikvo. 179 00:09:21,810 --> 00:09:24,710 >> Modulaj restaĵoj estas kun %% signoj. 180 00:09:24,710 --> 00:09:30,172 Entjera divido estas kun% /% kiu estas tre malfacile legi kiam ĝi estas projektita 181 00:09:30,172 --> 00:09:30,880 supre sur la ekrano. 182 00:09:30,880 --> 00:09:34,150 183 00:09:34,150 --> 00:09:37,200 Vi povas akiri rangojn de entjeroj kun la dupunkto. 184 00:09:37,200 --> 00:09:41,840 Do 2.5 donos vin vektoro de ĉiuj numeroj 2 tra 5. 185 00:09:41,840 --> 00:09:44,530 >> Arrays estas unu-indeksita, kiu ŝraŭboj multaj homoj 186 00:09:44,530 --> 00:09:47,540 supren se ili estas de pli tipa programlingvoj, 187 00:09:47,540 --> 00:09:50,450 kiel C, kie plej aferoj estas nulo-indeksitaj. 188 00:09:50,450 --> 00:09:54,420 Denove, tio estas kie R herede kiel lingvo por kiel ne 189 00:09:54,420 --> 00:09:56,560 profesia programistoj envenas. 190 00:09:56,560 --> 00:09:59,680 Se vi estas sociologo aŭ ekonomikisto aŭ io 191 00:09:59,680 --> 00:10:01,980 kaj vi provas uzi R esence kiel kuna 192 00:10:01,980 --> 00:10:03,832 al viaj pli gravaj profesia laboro, 193 00:10:03,832 --> 00:10:06,040 vi tuj trovos unu-indicigo iom pli natura. 194 00:10:06,040 --> 00:10:09,890 Ĉar vi komencas rakonti ĉe 1 en ĉiutaga vivo, ne 0. 195 00:10:09,890 --> 00:10:13,260 >> Por-cikloj, tio estas simila al la foreach konstrui en PHP, 196 00:10:13,260 --> 00:10:17,090 kion vi atingos lernu in-- baldaŭ. 197 00:10:17,090 --> 00:10:22,540 Kiu estas por valoro en vektoro kaj tiam vi povas fari aferojn kun valoro. 198 00:10:22,540 --> 00:10:24,040 Publiko: jen supreniru prelego. 199 00:10:24,040 --> 00:10:26,248 Connor HARRIS: Ho, tio estas supreniru prelego, bonega. 200 00:10:26,248 --> 00:10:29,815 Publiko: La asigno, ĉu supozis atentigi de dekstre maldekstren? 201 00:10:29,815 --> 00:10:31,440 Connor HARRIS: De dekstra al maldekstra, jes. 202 00:10:31,440 --> 00:10:34,720 Vi povas pensi pri tio kiel la valoro sur dekstre enŝovis en la variablo 203 00:10:34,720 --> 00:10:36,240 maldekstre. 204 00:10:36,240 --> 00:10:36,781 Publiko: OK. 205 00:10:36,781 --> 00:10:39,770 206 00:10:39,770 --> 00:10:42,330 >> Connor HARRIS: Kaj fine funkcio sintakso estas iom stranga. 207 00:10:42,330 --> 00:10:48,460 Vi havas la funkcion nomo umo, atribuita al tiu ŝlosilvorto funkcio, sekvis 208 00:10:48,460 --> 00:10:51,530 de ĉiuj argumentoj kaj tiam la korpo de la funkcio post tio. 209 00:10:51,530 --> 00:10:53,280 Denove tio povas ŝajnas iom stranga. 210 00:10:53,280 --> 00:10:57,181 Ili fariĝos dua naturo post vi laboras kun la lingvo por iom. 211 00:10:57,181 --> 00:10:58,930 Do vektoroj, la vojo vi konstrui vektoraj 212 00:10:58,930 --> 00:11:04,550 Estas vi tipo C, kiu estas ŝlosilvorto, tiam ĉiujn numerojn vi volas aŭ ŝnuretoj 213 00:11:04,550 --> 00:11:06,490 aŭ kio ajn. 214 00:11:06,490 --> 00:11:07,995 Argumentoj ankaŭ esti vektoroj. 215 00:11:07,995 --> 00:11:09,620 Sed la rezulta tabelo gets platigitaj. 216 00:11:09,620 --> 00:11:14,385 Do vi ne povas havi arrays kie iuj elementoj estas ununura nombroj 217 00:11:14,385 --> 00:11:17,010 kaj iuj elementoj estas arrays sin. 218 00:11:17,010 --> 00:11:20,010 >> Do se vi provas konstrui tabelo estis la unua elemento estas 4 219 00:11:20,010 --> 00:11:22,370 kaj la dua elemento estas la tabelo 3.5 vi 220 00:11:22,370 --> 00:11:25,890 nur akiri tri elementoj tabelo, 4,3,5. 221 00:11:25,890 --> 00:11:27,760 Ili ne povas esti de miksita tipo. 222 00:11:27,760 --> 00:11:32,290 Se vi provas legi aŭ skribi ekster la saltegoj de vektoro 223 00:11:32,290 --> 00:11:36,640 vi ricevos tiun valoron nomata NA a kiu staras por mankanta valoro. 224 00:11:36,640 --> 00:11:39,900 Kaj tiu estas destinita por kiel statistikistoj kiuj 225 00:11:39,900 --> 00:11:43,080 laboras kun nekompletaj datumoj aroj. 226 00:11:43,080 --> 00:11:46,460 >> Se vi apliki funkcio ke tio devus preni nur unu numeron por tabelo 227 00:11:46,460 --> 00:11:49,220 tiam kion vi ricevos estas, la funkcio estos mapo super la tabelo. 228 00:11:49,220 --> 00:11:52,130 Do se via funkcio diru prenas numero kaj revenas ĝi kvadrato. 229 00:11:52,130 --> 00:11:58,170 Vi apliki tiun al la tabelo 2,3,5 Kion vi akiros estas la tabelo 4,9,25. 230 00:11:58,170 --> 00:12:00,010 >> Kaj tio estas tre utila ĉar ĝi signifas vin 231 00:12:00,010 --> 00:12:03,374 ne devas skribi por bukloj por faras tre simplajn aĵojn kiel aplikanta 232 00:12:03,374 --> 00:12:05,040 funkcio al ĉiuj membroj de datuma aro. 233 00:12:05,040 --> 00:12:08,557 Kiu se vi laboras kun grandaj datenaroj, vi devas fari multe. 234 00:12:08,557 --> 00:12:10,390 Duuma funkcioj estas Aplikata eniro de eniro. 235 00:12:10,390 --> 00:12:12,430 Mi ricevos en tiun. 236 00:12:12,430 --> 00:12:16,750 Vi povas aliri ilin per tabeloj aŭ vektoroj kun kvadrataj krampoj. 237 00:12:16,750 --> 00:12:22,300 Do vektora nomo kvadrataj krampoj 1 donos al vi la unuan elementon. 238 00:12:22,300 --> 00:12:25,510 Vektoraj nomo kvadrataj krampoj 2 donos al vi la duan elementon. 239 00:12:25,510 --> 00:12:27,530 >> Vi povas pasi sur vektora de indeksoj kaj vi 240 00:12:27,530 --> 00:12:29,640 reiri el esence sub faktoro. 241 00:12:29,640 --> 00:12:34,990 Do vi povas fari vektora nomo krampoj C, 2.4 kaj vi ricevos el vektoro enhavanta 242 00:12:34,990 --> 00:12:38,804 la dua kaj kvara elementoj de la tabelo. 243 00:12:38,804 --> 00:12:40,720 Kaj se vi volas nur rapidan resumon statistiko 244 00:12:40,720 --> 00:12:47,529 de vektoro kiel interquartile gamo, meza, maksimuma, kion ajn, 245 00:12:47,529 --> 00:12:49,820 vi povas simple tajpi resumo vektora nomo kaj akiri tion diveni. 246 00:12:49,820 --> 00:12:52,680 Tio ne vere utila en Programado sed se vi ludas 247 00:12:52,680 --> 00:12:55,990 ĉirkaŭ la datenaroj, estas oportuna. 248 00:12:55,990 --> 00:12:58,650 >> Matrices-- esence alta dimensia tabeloj. 249 00:12:58,650 --> 00:13:01,190 Ili havas tiun specialan notacion sintakso. 250 00:13:01,190 --> 00:13:07,620 Matrico kun tabelo kiu alvenas plenigis in-- bedaŭras, matrico kun datumoj, 251 00:13:07,620 --> 00:13:09,780 numeron de vicoj, nombro de kolumnoj. 252 00:13:09,780 --> 00:13:13,180 Kiam vi havas iujn datumojn, ĝi plenigas en la tabelo esence tuj supre sube 253 00:13:13,180 --> 00:13:13,380 unua. 254 00:13:13,380 --> 00:13:14,190 Tiam maldekstre dekstren. 255 00:13:14,190 --> 00:13:15,030 Do, kiel tio. 256 00:13:15,030 --> 00:13:17,809 257 00:13:17,809 --> 00:13:19,600 Kaj R konstruigis en matrico multiplikoj, 258 00:13:19,600 --> 00:13:24,310 spektra malkomponaĵo, diagonaliga, multaj aferoj. 259 00:13:24,310 --> 00:13:27,785 Se vi volas pli altan dimensian arrays, do 3, 4, 5, 260 00:13:27,785 --> 00:13:29,410 aŭ kion ajn dimensioj povas fari tion. 261 00:13:29,410 --> 00:13:34,400 La sintakso estas tabelo nebrila egalas c, la listo de la dimensioj. 262 00:13:34,400 --> 00:13:38,620 Do se vi volas 4 dimensia tabelo kun dimensioj 4, 7, 8, 9, la tabelo, 263 00:13:38,620 --> 00:13:45,470 nebrila egalas c (4,7,8,9). 264 00:13:45,470 --> 00:13:51,180 >> Vi aliras ununuran valoroj kun krampoj unua eniro komo dua eniro. 265 00:13:51,180 --> 00:13:54,870 Vi povas akiri tutan tranĉaĵoj de vicoj aŭ kolumnoj. 266 00:13:54,870 --> 00:13:59,900 Kun ĉi nekompleta sintakso estas nur remi nombro komo aŭ komo kolumno 267 00:13:59,900 --> 00:14:00,400 numeron. 268 00:14:00,400 --> 00:14:02,874 269 00:14:02,874 --> 00:14:04,540 Do listoj estas speco de rilata tabelo. 270 00:14:04,540 --> 00:14:06,360 Ili havas ilian propran sintakson tie. 271 00:14:06,360 --> 00:14:08,320 Denove ne freneze kopii ĉiujn ĉi malsupren. 272 00:14:08,320 --> 00:14:11,370 Tiu estas nur por ke homoj irante tra la diapozitivoj poste 273 00:14:11,370 --> 00:14:13,089 havas ĉi ĉio en belan referenco. 274 00:14:13,089 --> 00:14:16,130 Kaj tiu fariĝos tre natura kiam Mi efektive iradas tra la demonstraĵoj. 275 00:14:16,130 --> 00:14:19,295 276 00:14:19,295 --> 00:14:20,920 Do listigas esence asociita tabeloj. 277 00:14:20,920 --> 00:14:27,040 Vi povas aliri valoroj kun lerta nomo, dolaro signo, ŝlosilo. 278 00:14:27,040 --> 00:14:31,370 Do se via listo estas nomita foo, tiam vi povas aliri ĝin kiel tio. 279 00:14:31,370 --> 00:14:37,032 Vi povas akiri tutan ŝlosilo-valoro paro pasante en la kvadrata krampo indekso. 280 00:14:37,032 --> 00:14:39,240 Se vi legas el neekzistanta klavo, vi ricevos nula. 281 00:14:39,240 --> 00:14:41,150 Ĝi ne eraro. 282 00:14:41,150 --> 00:14:43,590 Afero estas, R obeos multe kun nula kiel ĝi povas. 283 00:14:43,590 --> 00:14:46,580 Kaj tio povas signifi ke se vi estas ne atendis por ricevi nula eksteren 284 00:14:46,580 --> 00:14:51,840 de iu lerta legita, vi ricevos iun neantaŭvidebla eraroj cetere malsupren 285 00:14:51,840 --> 00:14:52,620 la linion. 286 00:14:52,620 --> 00:14:54,890 >> Tio okazis al mi mian somera laborposteno kiam mi uzis R 287 00:14:54,890 --> 00:14:58,410 Kie mi ŝanĝis kiom certa listo difinis en unu loko 288 00:14:58,410 --> 00:15:05,410 sed ne ŝanĝis poste sur la kodo kiu legis valoroj de ĝi. 289 00:15:05,410 --> 00:15:10,190 Kaj sekve kio okazis estis mi legante nulaj valoroj el tiu listo, 290 00:15:10,190 --> 00:15:13,090 pasante ilin en funkcioj, kaj estante tre konfuzita 291 00:15:13,090 --> 00:15:16,000 kiam mi alvenis ĉiaj hazarda multegoj tondadon supren 292 00:15:16,000 --> 00:15:16,790 en tiu funkcio. 293 00:15:16,790 --> 00:15:20,730 Ĉar se vi aplikas certa maksimumo aŭ minimumo funkcioj al nula, 294 00:15:20,730 --> 00:15:22,570 vi ricevos senfinaj valoroj eksteren. 295 00:15:22,570 --> 00:15:26,400 296 00:15:26,400 --> 00:15:29,180 >> Datumoj kadroj, ili estas subklaso de listo. 297 00:15:29,180 --> 00:15:31,170 Ĉiu valoro estas vektoro de la sama longo. 298 00:15:31,170 --> 00:15:34,220 Kaj ili estas uzataj por prezenti, esence, datumoj tabloj. 299 00:15:34,220 --> 00:15:36,175 Estas ĉi inicialización sintakso. 300 00:15:36,175 --> 00:15:38,800 Tio ĉio, denove, multe pli klara kiam vi atingos la demo. 301 00:15:38,800 --> 00:15:42,240 302 00:15:42,240 --> 00:15:44,240 Kaj la bela afero pri datumoj kadroj estas ke vi 303 00:15:44,240 --> 00:15:49,380 povas doni nomojn al ĉiuj kolumnoj kaj nomoj por ĉiuj vicoj. 304 00:15:49,380 --> 00:15:53,890 Kaj tial faras aliranta ilin iom pli amikaj. 305 00:15:53,890 --> 00:15:59,130 Ankaŭ jen kiel plej funkcioj kiuj legi en datumoj de Excel Spreadsheets 306 00:15:59,130 --> 00:16:03,820 aŭ el tekstaj dosieroj, ekzemple, legos en siaj datumoj. 307 00:16:03,820 --> 00:16:07,555 Ili metos ĝin ia datumoj kadro. 308 00:16:07,555 --> 00:16:09,680 Do functions-- la funkcioj sintakso estas iom stranga. 309 00:16:09,680 --> 00:16:16,160 Denove ĝi estas la nomo de la funkcio, asigni, ĉi ŝlosilvorto funkcio kaj tiam 310 00:16:16,160 --> 00:16:17,900 la listo de argumentoj. 311 00:16:17,900 --> 00:16:24,080 Do tie estas kelkaj belaj aferoj pri kiel funkcioj labori tie. 312 00:16:24,080 --> 00:16:28,170 Por unu, vi povas efektive asigni defaŭlta valoroj por certaj argumentoj. 313 00:16:28,170 --> 00:16:32,910 Do vi povas diri R1 equals-- vi povas diri foo 314 00:16:32,910 --> 00:16:38,290 estas funkcio kie R1 egalas ion defaŭlte se la uzanto specifas 315 00:16:38,290 --> 00:16:39,090 sen argumentoj. 316 00:16:39,090 --> 00:16:41,932 Alie, ĝi estas kion li metis en. 317 00:16:41,932 --> 00:16:44,140 Kaj tiu estas tre oportuna ĉar multe de niaj funkcioj 318 00:16:44,140 --> 00:16:47,910 havas ofte dekoj aŭ centojn da argumentoj. 319 00:16:47,910 --> 00:16:51,210 Ekzemple la bonaj por komplotanta grafeoj aŭ komplotanta disjxetu intrigoj 320 00:16:51,210 --> 00:16:54,430 havas argumentojn kiuj kontrolas ĉion de la titolo kaj la akso 321 00:16:54,430 --> 00:16:59,512 etiketojn al la koloro de malprogreso linioj. 322 00:16:59,512 --> 00:17:01,470 Kaj do se vi ne volas fari homojn specifi 323 00:17:01,470 --> 00:17:04,050 ĉiu ununura unu el tiuj centojn da argumentoj 324 00:17:04,050 --> 00:17:07,674 kontrolanta ĉiu unuopa aspekto de komploto aŭ malprogresa aŭ kio ajn, 325 00:17:07,674 --> 00:17:09,299 ĝi estas bela havi ĉi tiujn defaŭlta valoroj. 326 00:17:09,299 --> 00:17:12,700 327 00:17:12,700 --> 00:17:19,146 >> Kaj tiam vi povas reale skribi kiel vi vidis reen tie. 328 00:17:19,146 --> 00:17:22,869 Aŭ trovi pli bonan ekzemplon. 329 00:17:22,869 --> 00:17:28,690 Kiam vi nomas funkcioj vi povas reale nomu ilin uzante la argumenton nomoj. 330 00:17:28,690 --> 00:17:33,919 Do jen ekzemplo de la matrico konstruilo. 331 00:17:33,919 --> 00:17:34,960 Ĝi prenas tri argumentojn. 332 00:17:34,960 --> 00:17:36,760 Kutime vi havas datumojn, kiu estas vektoro. 333 00:17:36,760 --> 00:17:38,920 Vi havas N vico, kiu estas la nombro de vicoj. 334 00:17:38,920 --> 00:17:41,160 Vi havas N cols-- nombron da kolumnoj. 335 00:17:41,160 --> 00:17:43,920 La afero estas se vi tajpas N vico egalas ajn 336 00:17:43,920 --> 00:17:46,520 kaj N col egalas ajn kiam vi vokas tiun funkcion, 337 00:17:46,520 --> 00:17:47,770 vi efektive povas inversigi ilin. 338 00:17:47,770 --> 00:17:51,590 Do vi povas meti N col unua kaj N vico dua kaj gxi ne faros diferencon. 339 00:17:51,590 --> 00:17:54,660 Do jen belan karakterizaĵo. 340 00:17:54,660 --> 00:17:56,260 >> Ĉu importado kaj eksportado. 341 00:17:56,260 --> 00:18:00,010 Tio povas esti farita, esence. 342 00:18:00,010 --> 00:18:03,816 Ekzistas ankaŭ instalaĵoj por skribi eksteren arbitra R celoj al duuma dosiero 343 00:18:03,816 --> 00:18:05,190 kaj tiam legi ilin reen en postaj. 344 00:18:05,190 --> 00:18:08,030 Kiu estas oportuna se vi faras granda interaktiva sesio R 345 00:18:08,030 --> 00:18:12,850 Kaj vi devas savi aferoj tre rapide. 346 00:18:12,850 --> 00:18:16,460 Defaŭlte R havas funkciantan dosierujo ke dosieroj akiri elskribita en 347 00:18:16,460 --> 00:18:19,410 kaj legita reen en de. 348 00:18:19,410 --> 00:18:22,350 Vi povas vidi ke kun getwg, ŝanĝu ĝin per setdw. 349 00:18:22,350 --> 00:18:25,630 Nenio speciale interesa tie 350 00:18:25,630 --> 00:18:28,270 >> Do nun la efektiva statistiko stuff-- plurlineara malprogreso. 351 00:18:28,270 --> 00:18:30,960 352 00:18:30,960 --> 00:18:34,910 Do la kutima sintakso estas iom komplikita. 353 00:18:34,910 --> 00:18:37,260 La modelo estas granda objekto esence. 354 00:18:37,260 --> 00:18:39,910 Gets atribuita al LM, kiu estas funkcio alvokon. 355 00:18:39,910 --> 00:18:43,840 La unua elemento, la y supersigno x1 plus ajn. 356 00:18:43,840 --> 00:18:46,574 357 00:18:46,574 --> 00:18:47,990 Mia sintakso tie estas iom konfuza. 358 00:18:47,990 --> 00:18:49,490 Mi tute bedaŭras, ĉi estas la norma maniero 359 00:18:49,490 --> 00:18:50,990 ke komputiko libroj fari tion. 360 00:18:50,990 --> 00:18:54,890 Sed estas iom stranga. 361 00:18:54,890 --> 00:18:58,200 >> Do resume, estas lm krampoj, unua listero 362 00:18:58,200 --> 00:19:06,730 estas variable-- bedaŭras, dependa ŝanĝiĝema supersigno x1 plus x2 plus 363 00:19:06,730 --> 00:19:10,910 tamen multaj sendependaj variabloj vi havas. 364 00:19:10,910 --> 00:19:14,240 Kaj tiam tiuj povas ĉu esti vektoroj, ĉiuj samlongaj. 365 00:19:14,240 --> 00:19:16,220 Aŭ ili povas esti kolumno titolaj en datumoj kadro 366 00:19:16,220 --> 00:19:18,553 ke vi simple entajpi en la dua argumento datumoj kadro. 367 00:19:18,553 --> 00:19:23,270 368 00:19:23,270 --> 00:19:26,380 >> Vi povas ankaŭ specifi sed kompleksa formulo 369 00:19:26,380 --> 00:19:31,990 tial vi ne devas lineare malprogresas unu dependa variablo, 370 00:19:31,990 --> 00:19:34,440 aŭ unu vektoro sur preexistentes vektoro. 371 00:19:34,440 --> 00:19:38,070 Vi povas fari, ekzemple, vektora komponanto y kvadratoj plus 1 372 00:19:38,070 --> 00:19:42,100 kaj malprogresas ke kontraŭ la log de iu alia vektoro. 373 00:19:42,100 --> 00:19:45,200 Vi povas presi resumoj de la modelo per tiu komando nomis 374 00:19:45,200 --> 00:19:48,607 summary-- nur resumo parens modelo. 375 00:19:48,607 --> 00:19:50,190 Denove io alia mi devus klarigi. 376 00:19:50,190 --> 00:19:55,407 377 00:19:55,407 --> 00:19:58,615 Io alia ke estos get korektitaj kiam la diapozitivoj iros sur la interreto. 378 00:19:58,615 --> 00:20:01,127 379 00:20:01,127 --> 00:20:03,210 Se vi nur volas kalkuli simpla korelacio 380 00:20:03,210 --> 00:20:09,170 vi povas uzi korelacio vektoro 1 vektoro 2 funkcio kerno. 381 00:20:09,170 --> 00:20:11,856 Metodo estas defaŭlte Pearson korelacioj. 382 00:20:11,856 --> 00:20:13,480 Tiuj estas la kutimajn vi povas fari. 383 00:20:13,480 --> 00:20:15,990 Ekzistas ankaŭ Spearman kaj Kendell correlaciones 384 00:20:15,990 --> 00:20:19,530 kiuj estas kelkaj diversaj rango ordon correlación. 385 00:20:19,530 --> 00:20:23,600 Nu ne kalkuli produkto momentoj inter la vektoroj mem, 386 00:20:23,600 --> 00:20:28,511 sed de la vektoraj rangon ordonoj. 387 00:20:28,511 --> 00:20:29,510 Mi klarigos ke poste. 388 00:20:29,510 --> 00:20:30,120 >> Publiko: Rapida demando 389 00:20:30,120 --> 00:20:30,360 >> CONNER HARRIS: Certe. 390 00:20:30,360 --> 00:20:33,151 >> Publiko: Do ​​kiam vi kalkulanta por la simpla correlaciones fari 391 00:20:33,151 --> 00:20:37,655 vi supozas ke estas statistika signifon al la korelacio? 392 00:20:37,655 --> 00:20:39,030 CONNER HARRIS: Vi ne devas. 393 00:20:39,030 --> 00:20:41,840 394 00:20:41,840 --> 00:20:43,960 An lm estas esence nur maŝino. 395 00:20:43,960 --> 00:20:47,690 Ĝi prenos en du aferoj kaj ĝi kraĉis 396 00:20:47,690 --> 00:20:49,770 koeficientoj por la bona adapti linio. 397 00:20:49,770 --> 00:20:52,310 Ĝi ankaŭ informas normo eraroj sur tiuj koeficientoj. 398 00:20:52,310 --> 00:20:55,865 Kaj rakontos al vi, kiel estas la detranĉo statistike signifa 399 00:20:55,865 --> 00:20:56,740 aŭ diferenco de 0. 400 00:20:56,740 --> 00:20:59,400 Estas la deklivo de la plej bona tauxgas linio statistike 401 00:20:59,400 --> 00:21:01,510 malsama de nulo, kaj tiel plu. 402 00:21:01,510 --> 00:21:06,260 Do ĝi supozas nenion, mi pensas estas bona respondo al via demando. 403 00:21:06,260 --> 00:21:07,410 BONE. 404 00:21:07,410 --> 00:21:14,650 >> Plotting-- do la ĉefa kialo vi devus uzi R, kiel plurlineara malprogreso. 405 00:21:14,650 --> 00:21:17,320 Esence ĉiu lingvo havas iujn facilecon por tio. 406 00:21:17,320 --> 00:21:21,365 Kaj honeste R sintakson por malprogreso estas iom arkaikaj. 407 00:21:21,365 --> 00:21:22,990 Sed grafike prezentanta estas kie vere brilas. 408 00:21:22,990 --> 00:21:28,090 >> La laborĉevalo funkcio estas komploto kaj ĝi prenas du vektoroj x kaj y. 409 00:21:28,090 --> 00:21:33,010 Kaj tiam la elipsoj staras por tre Granda nombro de laŭvola argumentoj ke 410 00:21:33,010 --> 00:21:39,190 kontrolas ĉion de titoloj al koloroj de diversaj linioj aŭ diversaj punktoj, 411 00:21:39,190 --> 00:21:40,200 al la tipo de intrigo. 412 00:21:40,200 --> 00:21:42,250 Vi povas havi disjxetu intrigoj aŭ linio intrigoj. 413 00:21:42,250 --> 00:21:47,900 414 00:21:47,900 --> 00:21:49,710 >> [Inaudible] 2 vektoroj de la sama longo. 415 00:21:49,710 --> 00:21:53,780 Vi povas antaŭi ĉi kun alfiksi datumo kadro en via skripto. 416 00:21:53,780 --> 00:22:01,220 Kaj ĉi lasos vin nur uzi kolumno titolaj anstataŭ apartaj vektoroj. 417 00:22:01,220 --> 00:22:05,410 Vi povas aldoni bona adapti linioj kaj lokaj malprogreso kurboj al via grafeo. 418 00:22:05,410 --> 00:22:09,390 >> Tiuj komandoj listigitaj tie, ab linio kaj linioj, 419 00:22:09,390 --> 00:22:11,640 defaŭlte tiujn akiri skribita en popmuziko supren fenestroj 420 00:22:11,640 --> 00:22:15,560 ĉar ĝi supozas ke vi uzas R interage. 421 00:22:15,560 --> 00:22:17,310 Se vi ne estas vi povas skribi du dosieroj 422 00:22:17,310 --> 00:22:21,600 estas en vere ajna formato vi ŝatus. 423 00:22:21,600 --> 00:22:25,410 Pardonu, mi havas tajperaro mi ĵus rimarkis. 424 00:22:25,410 --> 00:22:30,887 425 00:22:30,887 --> 00:22:32,720 Se vi volas malfermi alia grafika aparato 426 00:22:32,720 --> 00:22:39,200 vi povas uzi tiun funkcion nomita PNG JPEG aŭ multajn aliajn formatojn de bildo. 427 00:22:39,200 --> 00:22:42,319 Kaj vi povas skribi al grafikaĵoj ajn dosiernomo vi specifas. 428 00:22:42,319 --> 00:22:45,110 Nuligi ke vi devas use-- Mi ne skribis tion en la slide-- 429 00:22:45,110 --> 00:22:49,650 Sed tie estas funkcio nomita dev skalara off kiu prenas neniun argumenton. 430 00:22:49,650 --> 00:22:51,517 >> Tiam estas instalaĵoj por 3D konspiroj 431 00:22:51,517 --> 00:22:53,350 kaj por konturo komplotanta se vi volas fari 432 00:22:53,350 --> 00:22:55,700 grafeoj de du sendependaj variabloj. 433 00:22:55,700 --> 00:22:57,150 Mi ne eniros en tiuj nun. 434 00:22:57,150 --> 00:22:59,130 >> Ekzistas ankaŭ iuj instalaĵoj por kuraĝigo 435 00:22:59,130 --> 00:23:01,300 tiuj estas kutime subtenita de triaj. 436 00:23:01,300 --> 00:23:06,330 Mi faris kuraĝigoj kun R grafeoj, sed mi ne uzis tiujn tria 437 00:23:06,330 --> 00:23:06,940 bibliotekoj. 438 00:23:06,940 --> 00:23:09,929 Do mi ne povas vere atesti al kiom bone ili estas. 439 00:23:09,929 --> 00:23:12,220 Kion mi rekomendas se vi volas fari kuraĝigojn uzante R 440 00:23:12,220 --> 00:23:16,480 estas vi povas skribi ĉiujn el la tabulojn por la kuraĝigoj 441 00:23:16,480 --> 00:23:18,470 kaj tiam vi povas uzi tria program-- 442 00:23:18,470 --> 00:23:23,630 tipaj estas nomitaj FFmpeg aŭ ImageMagick-- stebi 443 00:23:23,630 --> 00:23:26,540 ĉiuj viajn kadrojn en unu kuraĝigo. 444 00:23:26,540 --> 00:23:28,380 >> Do tempo por demo. 445 00:23:28,380 --> 00:23:31,030 446 00:23:31,030 --> 00:23:37,189 Do se vi uzas ajnan Unikso kiel sistemo kio estas Linukso BSD sed kiuj uzas BSD. 447 00:23:37,189 --> 00:23:39,730 OS X malfermi fina fenestro kaj tajpu R je la komando prompto. 448 00:23:39,730 --> 00:23:42,820 Se vi havas R studo aŭ simile, kiu ankaŭ funkcias. 449 00:23:42,820 --> 00:23:46,270 Por la uzantoj de Windows vi devas esti kapabla trovi R en via komenca menuo. 450 00:23:46,270 --> 00:23:50,390 Ĝi devus nomi ion kiel R x64 3 punkto ajn. 451 00:23:50,390 --> 00:23:53,110 Malfermu ke tie supre. 452 00:23:53,110 --> 00:23:58,850 >> Do nun mi nur malfermi fina fenestro. 453 00:23:58,850 --> 00:24:02,562 Bone, serĉo. 454 00:24:02,562 --> 00:24:03,520 Publiko: Komando-Spaco 455 00:24:03,520 --> 00:24:06,675 CONNER HARRIS: Komando-Spaco, dankon. 456 00:24:06,675 --> 00:24:10,030 Mi ne ordinare uzas Macs. 457 00:24:10,030 --> 00:24:13,310 Terminalo, montri nova fenestro. 458 00:24:13,310 --> 00:24:18,120 Nova fenestro estas agordojn baza, R. Do vi devus akiri 459 00:24:18,120 --> 00:24:22,230 bonvenan mesaĝon, io tiamaniere. 460 00:24:22,230 --> 00:24:31,060 >> Do mi uzas R interage. 461 00:24:31,060 --> 00:24:32,719 Vi povas ankaŭ skribi R skriptoj kompreneble. 462 00:24:32,719 --> 00:24:34,510 Esence skriptoj kuri la ĝusta sama maniero kiel 463 00:24:34,510 --> 00:24:40,250 se vi sidus ĉe la komputilo tajpado en ĉiu linio unuope. 464 00:24:40,250 --> 00:24:42,660 Do ni komencu per fari vektoro. 465 00:24:42,660 --> 00:24:46,230 A sago 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, certas. 468 00:24:50,050 --> 00:24:51,630 Mi povas fari la tiparo grandeco pli granda. 469 00:24:51,630 --> 00:24:53,030 >> Publiko: Komando-Plus 470 00:24:53,030 --> 00:24:53,650 >> CONNER HARRIS: Komando-Plus. 471 00:24:53,650 --> 00:24:54,191 Komando-Plus. 472 00:24:54,191 --> 00:24:57,610 473 00:24:57,610 --> 00:25:00,370 Bone, kiel estas tiu? 474 00:25:00,370 --> 00:25:00,870 Bona? 475 00:25:00,870 --> 00:25:01,551 BONE. 476 00:25:01,551 --> 00:25:03,300 Do ni komencu per deklarante vektora listo. 477 00:25:03,300 --> 00:25:08,710 Fari, sago, C 1,2,4. 478 00:25:08,710 --> 00:25:11,181 Ni povas vidi. 479 00:25:11,181 --> 00:25:12,680 Ne maltrankviliĝu pri la krampo tie. 480 00:25:12,680 --> 00:25:18,590 La krampoj estas do se vi presi tre longaj tabeloj, ni povas tie ĉi. 481 00:25:18,590 --> 00:25:26,987 Unu ekzemplo estus se mi Nur volas gamo 2 al 200. 482 00:25:26,987 --> 00:25:28,820 Se mi presas tre longa tabelo, la krampoj 483 00:25:28,820 --> 00:25:31,060 jxus kaj mi povas resti trako de kio indekso 484 00:25:31,060 --> 00:25:33,250 ni estas sur se Mi serĉas tra ĉi vide. 485 00:25:33,250 --> 00:25:36,570 486 00:25:36,570 --> 00:25:38,280 Do ĉiuokaze, ni havas. 487 00:25:38,280 --> 00:25:43,326 >> Do mi diris antaŭe ke arrays interagi tre bele kun, ekzemple, 488 00:25:43,326 --> 00:25:44,450 unuloka operacioj ŝatas tion. 489 00:25:44,450 --> 00:25:46,500 Do kion vi pensas Mi timige akiri ĉu mi tajpos plus 1? 490 00:25:46,500 --> 00:25:49,630 491 00:25:49,630 --> 00:25:51,140 Yep. 492 00:25:51,140 --> 00:25:54,250 Bone, nun mi faros tiu malsamaj tabelo. 493 00:25:54,250 --> 00:26:01,650 Diru bc 20,40, 80. 494 00:26:01,650 --> 00:26:03,400 Do kion vi pensas tiu komando faros? 495 00:26:03,400 --> 00:26:09,962 496 00:26:09,962 --> 00:26:10,670 Aldoni la elementoj. 497 00:26:10,670 --> 00:26:14,950 Kaj tial esence, tio estas kion ĝi faras. 498 00:26:14,950 --> 00:26:16,740 Do tiu estas sufiĉe oportuna. 499 00:26:16,740 --> 00:26:23,800 Do mi kion pri mi tion faras. c estas, ni diru, 6 fojojn 1 al 10. 500 00:26:23,800 --> 00:26:26,789 501 00:26:26,789 --> 00:26:28,830 Do kion mi volas vidi enhavis, vi pensas? 502 00:26:28,830 --> 00:26:37,110 503 00:26:37,110 --> 00:26:38,110 Do ĉiuj obloj de ses. 504 00:26:38,110 --> 00:26:42,170 Nu, kion vi pensas okazos se mi faras tion? 505 00:26:42,170 --> 00:26:48,090 Mi faros ĉi iom pli klara, c, c. 506 00:26:48,090 --> 00:26:50,365 Do kio okazas, do vi pensas, se mi faras tion? 507 00:26:50,365 --> 00:26:51,488 alpago c. 508 00:26:51,488 --> 00:26:55,550 509 00:26:55,550 --> 00:26:56,050 [Inaudible] 510 00:26:56,050 --> 00:26:58,552 511 00:26:58,552 --> 00:27:02,350 >> Spektantaro: Ajna eraro aŭ ĝi nur aldonas la unuaj tri elementoj. 512 00:27:02,350 --> 00:27:04,510 >> CONNER HARRIS: Ne tute. 513 00:27:04,510 --> 00:27:05,522 Jen kion ni akiris. 514 00:27:05,522 --> 00:27:08,910 Kio okazas estas pli mallonga tabelo, a, got biciklis. 515 00:27:08,910 --> 00:27:13,990 Do ni akiris 124, 124, 124. 516 00:27:13,990 --> 00:27:15,710 Yeah. 517 00:27:15,710 --> 00:27:18,940 Kaj esence tio videblas tiu konduto antaŭe, plus 1, 518 00:27:18,940 --> 00:27:22,190 kiel subklaso de tiu konduto, kie la plej mallonga tabelo estas nur la nombro 519 00:27:22,190 --> 00:27:25,410 1, kiu estas unu elemento tabelo. 520 00:27:25,410 --> 00:27:27,740 Mi nur esti dirante vektora ĉiuj la tempo anstataŭ tabelo, 521 00:27:27,740 --> 00:27:30,290 ĉar tio estas kion la r dokumentado kutime faras. 522 00:27:30,290 --> 00:27:33,070 Ĝi estas ekradikita c kutimon. 523 00:27:33,070 --> 00:27:37,590 >> OK, kaj do nun ni havas ĉi tabelo. 524 00:27:37,590 --> 00:27:38,830 Do ni havas ĉi tabelo, c. 525 00:27:38,830 --> 00:27:41,380 Ni povas ricevi resumo statistikojn pri c, resumon ĉ. 526 00:27:41,380 --> 00:27:46,920 527 00:27:46,920 --> 00:27:48,280 Kaj tio estas bela. 528 00:27:48,280 --> 00:27:51,070 529 00:27:51,070 --> 00:27:52,670 Do nun ni faru iu matrico aferojn. 530 00:27:52,670 --> 00:27:56,160 Diru m estas matrico. 531 00:27:56,160 --> 00:27:57,780 Ni faras ĝin tri por tri unu. 532 00:27:57,780 --> 00:28:01,630 Do nrows egalas 3, kaj ncols egalas 3. 533 00:28:01,630 --> 00:28:04,190 534 00:28:04,190 --> 00:28:10,710 Kaj por datumoj ni do-- do kion vi pensas ĉi tiu tuj faros? 535 00:28:10,710 --> 00:28:15,310 536 00:28:15,310 --> 00:28:16,580 >> Bone, ĝi estas la venonta unu. 537 00:28:16,580 --> 00:28:17,970 Estas nrow kaj ncolumn. 538 00:28:17,970 --> 00:28:22,164 539 00:28:22,164 --> 00:28:24,580 Do kion mi faris estas mi havas deklarita tri por tri matrico 540 00:28:24,580 --> 00:28:26,950 kaj mi pasis en naŭ-era tabelo. 541 00:28:26,950 --> 00:28:30,530 Do la logaritmo de ĉiuj elementoj unu tra naŭ. 542 00:28:30,530 --> 00:28:33,400 543 00:28:33,400 --> 00:28:37,285 Kaj ĉiuj tiuj valoroj plenigi ĝis la tabelo bedaŭras? 544 00:28:37,285 --> 00:28:38,660 Publiko: Tiuj estas bazo 10 protokolojn? 545 00:28:38,660 --> 00:28:41,284 CONNER HARRIS: Ne, trabo naturaj logaritmoj, do bazo e. 546 00:28:41,284 --> 00:28:44,886 547 00:28:44,886 --> 00:28:47,010 Jes, se vi volis bazo 10 Protokolo, mi opinias ke vi devus 548 00:28:47,010 --> 00:28:51,620 ensaluti ajn, dividita per log 10. 549 00:28:51,620 --> 00:28:56,750 Kaj tial la datumoj de la [inaudible] simple plenigita la tabelo, tiel supre sube, 550 00:28:56,750 --> 00:28:59,490 tiam maldekstre dekstren. 551 00:28:59,490 --> 00:29:06,890 Kaj se vi volas fari iuj aliaj tabelo, diru n estas matrico. 552 00:29:06,890 --> 00:29:10,317 Ni faru, mi ne scias, de 2 al 13. 553 00:29:10,317 --> 00:29:11,900 Aŭ mi faros ion pli interesa. 554 00:29:11,900 --> 00:29:13,770 Mi faros 2 al 4. 555 00:29:13,770 --> 00:29:15,780 nrow egalas, ni diru, 3. 556 00:29:15,780 --> 00:29:18,992 ncol egalas 4. 557 00:29:18,992 --> 00:29:20,360 n. 558 00:29:20,360 --> 00:29:22,090 Do ni havas ĉi. 559 00:29:22,090 --> 00:29:26,130 >> Kaj nun se ni volas multipliki tiuj, ni farus n procentoj fojojn procentoj, 560 00:29:26,130 --> 00:29:27,680 ĉar tio estas n. 561 00:29:27,680 --> 00:29:30,234 562 00:29:30,234 --> 00:29:31,400 Kaj ni havas matrico produktoj. 563 00:29:31,400 --> 00:29:33,970 564 00:29:33,970 --> 00:29:37,810 Per ili vojon, ĉu vi vidas, kiel kiam mi deklaris n, la 2 al 4 565 00:29:37,810 --> 00:29:43,570 vektora got biciklis ĝis ĝi plenigis CXiujn n? 566 00:29:43,570 --> 00:29:45,710 Se vi volas preni ajgeno malkomponaĵo, 567 00:29:45,710 --> 00:29:46,960 ĉi estas io ni povas fari tre facile. 568 00:29:46,960 --> 00:29:47,709 Ni povas fari eigen n. 569 00:29:47,709 --> 00:29:52,290 570 00:29:52,290 --> 00:29:54,600 Kaj tiel tio estas nia unua renkontas kun listo. 571 00:29:54,600 --> 00:29:57,000 >> Do eigen n estas listo kun du klavoj. 572 00:29:57,000 --> 00:29:58,430 Valoroj, kiuj estas ĉi tie tabelo. 573 00:29:58,430 --> 00:30:01,030 Kaj vektoroj, kiu estas tiu tabelo tie. 574 00:30:01,030 --> 00:30:08,240 Do se vi volis ĉerpi, diru, tiu tria kolumno 575 00:30:08,240 --> 00:30:13,080 el la ajgenvektoroj matrico, ĉar la ajgenvektoroj estas kolumnaj vektoroj. 576 00:30:13,080 --> 00:30:24,400 Do ni povas fari vec eigen n dolaro signo vektoroj, komo 3, de [inaudible]. 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 Estas tio, kiel vi povus atendi. 580 00:30:34,100 --> 00:30:39,210 >> Tiam diru n fojoj procento fojojn vec. 581 00:30:39,210 --> 00:30:42,610 582 00:30:42,610 --> 00:30:48,320 Do la rezulto ĉi tie certe aspektas kiel se ni prenis la trian ajgeno tie, 583 00:30:48,320 --> 00:30:50,390 kiu korespondas kun la tria ajgenvektoro. 584 00:30:50,390 --> 00:30:53,190 Ĝi ĵus multiplikita ĉio en tiu ajgenvektoro, komponento-saĝa, 585 00:30:53,190 --> 00:30:53,990 per la ajgeno. 586 00:30:53,990 --> 00:30:57,760 Kaj tio estas kion ni atendus, ĉar jen kio ajgenoj estas. 587 00:30:57,760 --> 00:31:00,890 Cxu iu tie ne prenita lineara algebro? 588 00:31:00,890 --> 00:31:02,530 Paro homoj, OK. 589 00:31:02,530 --> 00:31:04,030 Nur turni vian cerbon for por iom. 590 00:31:04,030 --> 00:31:07,490 591 00:31:07,490 --> 00:31:20,720 Kaj efektive, se ni prenas eigen n dolara signo valoroj 3 fojojn vec, 592 00:31:20,720 --> 00:31:21,810 bone atingi la samon. 593 00:31:21,810 --> 00:31:24,726 Ĝi estas formatita malsame kiel vico vektora anstataŭ kolumna vektoro, 594 00:31:24,726 --> 00:31:25,640 sed granda interkonsento. 595 00:31:25,640 --> 00:31:29,430 596 00:31:29,430 --> 00:31:35,170 Kaj tial tiuj estas esence la belan kion ni povas fari kun matricoj, 597 00:31:35,170 --> 00:31:36,489 pruvis listoj. 598 00:31:36,489 --> 00:31:39,030 Mi devus pruvi la belan aferojn pri funkcioj ankaŭ. 599 00:31:39,030 --> 00:31:41,750 >> Do ni say-- [inaudible] funkcio, ni nomas 600 00:31:41,750 --> 00:31:51,960 ĝi func kontraŭ funkcio n n squared-- fakte, tio ne vere la plej bona. 601 00:31:51,960 --> 00:31:55,632 a, b, akordita plus b. 602 00:31:55,632 --> 00:31:58,547 603 00:31:58,547 --> 00:32:00,380 Do unu afero pri funkcioj, denove, estas ili 604 00:32:00,380 --> 00:32:01,963 ne bezonas eksplicitan reveno deklaroj. 605 00:32:01,963 --> 00:32:04,250 Do vi povas just-- la lasta komunikaĵo evaluated 606 00:32:04,250 --> 00:32:07,502 Estos la deklaro rehejmigxis aŭ la valoro reveninta. 607 00:32:07,502 --> 00:32:10,460 Do en ĉi tiu kazo, ni nur pritaksanta unu komunikaĵo, akordita plus b. 608 00:32:10,460 --> 00:32:12,043 Tio estos la defaŭlta reveno valoro. 609 00:32:12,043 --> 00:32:14,530 Ĝi neniam doloras meti en reveni valoroj eksplicite, 610 00:32:14,530 --> 00:32:16,880 speciale se vi kontraktanta kun funkcio de tre komplikaj logiko 611 00:32:16,880 --> 00:32:17,380 flui. 612 00:32:17,380 --> 00:32:18,450 Sed vi ne bezonas ilin. 613 00:32:18,450 --> 00:32:24,890 Do nun ni povas fari func 5, 1, kaj tio estas esence kion vi atendus. 614 00:32:24,890 --> 00:32:29,146 615 00:32:29,146 --> 00:32:31,270 Io alia estas farebla, ni povas reale fari func b 616 00:32:31,270 --> 00:32:33,260 egalas 1, a egalas 5. 617 00:32:33,260 --> 00:32:36,870 618 00:32:36,870 --> 00:32:40,770 Do se ni specifas kiun numero ĉi tie, kiu argumento iras al kiu argumento 619 00:32:40,770 --> 00:32:44,680 en funkcio, oni povas klaki ĉirkaŭ tiuj valoroj kie ajn ni volas. 620 00:32:44,680 --> 00:32:48,405 >> Spektantaro: Ĉu ekzistas kialo skribi ĝin kun la b 621 00:32:48,405 --> 00:32:52,404 egalas kontraste al simple uzante la numerojn kaj la komo? 622 00:32:52,404 --> 00:32:54,820 CONNER HARRIS: Jes, kutime fari tion se vi havas funkcioj 623 00:32:54,820 --> 00:32:58,540 kun multaj argumentoj. 624 00:32:58,540 --> 00:33:00,690 Tio povus ofte esti kiel flagoj kiu vi volas nur 625 00:33:00,690 --> 00:33:03,130 volas uzi en maloftaj okazoj. 626 00:33:03,130 --> 00:33:06,740 Kaj tiamaniere vi povas only-- vi povas rilati al la specifa argumentoj 627 00:33:06,740 --> 00:33:09,110 ke vi volas uzi ne-defaŭlta valoroj por, 628 00:33:09,110 --> 00:33:14,470 kaj vi ne devas skribi eksteren faskon de flagoj egalas malvera post ili. 629 00:33:14,470 --> 00:33:19,710 Aŭ mi povas skribi ĉi denove kun defaŭlta valoro kiel b egalas 2. 630 00:33:19,710 --> 00:33:26,289 Kaj tiam mi povus fari f func, Mi faros 4, 1 tiu tempo. 631 00:33:26,289 --> 00:33:28,580 Kaj 17, kiu estas 4 kvadratoj plus 1, kiel vi eble atendus. 632 00:33:28,580 --> 00:33:34,290 >> Sed mi povis ankaŭ nur nomas tiun kun func 4, 633 00:33:34,290 --> 00:33:36,970 kaj mi ricevos 18, ĉar Mi ne specifas b. 634 00:33:36,970 --> 00:33:38,550 Do b ricevas la defaŭlta valoro de 2. 635 00:33:38,550 --> 00:33:41,700 636 00:33:41,700 --> 00:33:47,200 >> Bone, do nun se vi estas sekvante kune kun la demo, 637 00:33:47,200 --> 00:33:51,010 tajpi ĉi linio je via komando suflori kaj vidi kion venas supre. 638 00:33:51,010 --> 00:33:52,090 Efektive, ne faru tion. 639 00:33:52,090 --> 00:33:52,590 Tajpi ĉi. 640 00:33:52,590 --> 00:33:57,780 641 00:33:57,780 --> 00:34:01,000 Vi devus akiri io tiamaniere. 642 00:34:01,000 --> 00:34:04,780 Do mtcars estas enkonstruita en datumoj metita por tiu pruvo 643 00:34:04,780 --> 00:34:13,550 celoj kiuj venas with-- kiu venas en defaŭlte kun via r dissendo. 644 00:34:13,550 --> 00:34:19,211 Jen kompilaĵo de statistikoj de 1974 temo de Motoro Trend revuo 645 00:34:19,211 --> 00:34:20,710 sur nombro de malsamaj aŭto modeloj. 646 00:34:20,710 --> 00:34:28,270 >> Do ekzistas mejloj por galono, cylinders-- Mi forgesos, kion Disp is-- ĉevaloj. 647 00:34:28,270 --> 00:34:31,610 648 00:34:31,610 --> 00:34:32,420 Probable. 649 00:34:32,420 --> 00:34:36,920 Se vi simple Google MT aŭtoj, tiam unu el la unuaj rezultoj 650 00:34:36,920 --> 00:34:38,730 estos el la oficiala r dokumentado 651 00:34:38,730 --> 00:34:41,080 kaj gxi klarigos ĉiuj tiuj datumoj kampoj. 652 00:34:41,080 --> 00:34:47,020 Do pezo is-- WT estas pezo de la aŭto en tunoj. 653 00:34:47,020 --> 00:34:48,880 Q sek estas la kvara de mejlo tempo. 654 00:34:48,880 --> 00:34:52,409 655 00:34:52,409 --> 00:34:55,850 Do nun ni povas fari iuj amuzaj aferoj pri MT aŭtoj estas datumo kampo. 656 00:34:55,850 --> 00:35:01,640 >> Do ni povas fari aferojn kiel vico nomoj, mt aŭtojn. 657 00:35:01,640 --> 00:35:05,490 Kaj tiu estas listo de ĉiuj vicoj en la datuma aro kiu estas nomoj de aŭtoj. 658 00:35:05,490 --> 00:35:10,780 Ni povas fari colnames, mt aŭtojn ĉi. 659 00:35:10,780 --> 00:35:15,500 Se vi faras mt aŭtoj, sub-nombra indekso, kiel 2. 660 00:35:15,500 --> 00:35:18,177 ni preni la duan kolumnon el tiu, kiun estus cilindroj. 661 00:35:18,177 --> 00:35:19,370 >> Publiko: Kion vi faris? 662 00:35:19,370 --> 00:35:21,570 >> CONNER HARRIS: mi tajpis mt aŭtojn, krampoj e, 663 00:35:21,570 --> 00:35:24,180 kiu donis al mi la dua kolumnon el mt aŭtojn. 664 00:35:24,180 --> 00:35:34,501 665 00:35:34,501 --> 00:35:38,110 Aŭ se ni volas vico, mi povas tajpi mtcars komo 2, ekzemple. 666 00:35:38,110 --> 00:35:41,850 667 00:35:41,850 --> 00:35:46,390 Aliaj ronda 2 komo, kiel tiu. 668 00:35:46,390 --> 00:35:48,880 Kaj kiu iras en via vico. 669 00:35:48,880 --> 00:35:54,680 Ĉi tie nur donas vin kolumno, sed kolumno kiel vektora. 670 00:35:54,680 --> 00:36:04,634 671 00:36:04,634 --> 00:36:06,425 Mi nur rimarkis nun mi forgesis pruvi 672 00:36:06,425 --> 00:36:09,150 iu malvarmeta aĵoj pri vektoroj ke vi povas fari kun indeksoj. 673 00:36:09,150 --> 00:36:10,480 Do mi faru tion ĝuste nun. 674 00:36:10,480 --> 00:36:17,130 Do ni faru c gets-- metante tio sur pause-- 2 fojoj 1 al 10. 675 00:36:17,130 --> 00:36:21,360 Do c estas ĝuste tuj estos la vektoro 2 tra 20. 676 00:36:21,360 --> 00:36:24,640 Mi povas preni elementojn tiel, c2. 677 00:36:24,640 --> 00:36:30,942 Mi povas pasi en vektora kiel tiu, c-- lasu min 678 00:36:30,942 --> 00:36:34,470 uzi malsaman nomon ol c, kiel vec c. 679 00:36:34,470 --> 00:36:37,591 680 00:36:37,591 --> 00:36:39,340 Esence, mi faras ĉi tiel vi ne ricevas 681 00:36:39,340 --> 00:36:45,010 konfuzita inter c kiel vektora konstruo funkcio, 682 00:36:45,010 --> 00:36:48,800 kaj tiam c kiel variablo nomo. 683 00:36:48,800 --> 00:36:53,120 Vec krampoj c 4, 5, 7. 684 00:36:53,120 --> 00:36:56,540 Ĉi ricevos min el la kvara, kvina, kaj sep elementoj de la tabelo. 685 00:36:56,540 --> 00:37:01,740 Mi povas fari vec, metu en negativa indekso, kiel negativa 4. 686 00:37:01,740 --> 00:37:06,500 Kiu akiros min el tiu kun la kvara ero forigita. 687 00:37:06,500 --> 00:37:10,140 Se mi volas fari tranĉaĵojn, Mi povas fari vec 2 tra 6. 688 00:37:10,140 --> 00:37:15,480 2 dupunkto 6 estas nur alia vektoro, kiu estas 2, 3, 4, 5, 6. 689 00:37:15,480 --> 00:37:18,230 Kraĉas el tio. 690 00:37:18,230 --> 00:37:20,770 >> Do ĉiuokaze, reen al mt aŭtojn. 691 00:37:20,770 --> 00:37:26,650 692 00:37:26,650 --> 00:37:28,450 Do ni faru iun regresiones. 693 00:37:28,450 --> 00:37:34,240 Diru modelo gets-- ni lineare regress-- Mi ne scias. 694 00:37:34,240 --> 00:37:41,780 Unue ni faru alfiksi mtcars, kompreneble. 695 00:37:41,780 --> 00:37:44,870 696 00:37:44,870 --> 00:38:00,010 Do [inaudible] modelo lm, ni malprogresas mejloj por galono sur supersigno pezo. 697 00:38:00,010 --> 00:38:03,300 Kaj tiam datumoj kadro estas mtcars. 698 00:38:03,300 --> 00:38:06,830 Do resumo modelo. 699 00:38:06,830 --> 00:38:12,900 700 00:38:12,900 --> 00:38:15,595 >> Bone, do tio aspektas iom komplika. 701 00:38:15,595 --> 00:38:19,380 Sed esence, vidante kiel se ni provu esprimi mejloj por galono 702 00:38:19,380 --> 00:38:23,970 kiel lineara funkcio de pezo, tiam ni akiris ĉi tiu linio tie, 703 00:38:23,970 --> 00:38:28,730 kiu interkaptas ĉe 37,28. 704 00:38:28,730 --> 00:38:33,830 37,28 estus la teoria mejloj por galono de aŭto kiu pesas nulo. 705 00:38:33,830 --> 00:38:41,210 Kaj tiam por ĉiu aldona tuno, vi frapi kvin mejloj por galono 706 00:38:41,210 --> 00:38:42,440 for de tio. 707 00:38:42,440 --> 00:38:45,120 Ambaŭ tiuj koeficientoj vi povas vidi, normaj eraroj tie. 708 00:38:45,120 --> 00:38:47,870 Ili estas tre statistike signifa. 709 00:38:47,870 --> 00:38:55,740 >> Do ni povas esti tre certa al 1 e 10 al la negativa 10. 710 00:38:55,740 --> 00:38:59,510 Do 1 fojojn ion al la negativa 10, ke se vi faros pli pezan aŭton, 711 00:38:59,510 --> 00:39:01,440 ĝi havos pli malbona mejloj por galono. 712 00:39:01,440 --> 00:39:04,940 713 00:39:04,940 --> 00:39:07,250 Aŭ ni povas provi alian modelon. 714 00:39:07,250 --> 00:39:09,230 Kiel anstataŭ regressing ĉi sur pezo, 715 00:39:09,230 --> 00:39:12,600 ni malprogresas ĝin sur ŝtipo de pezo, ĉar eble la efektivaj pezo 716 00:39:12,600 --> 00:39:15,690 sur mejlaĵo estas iel ne lineara. 717 00:39:15,690 --> 00:39:18,540 >> Tio donis al ni r akorditaj de 0,7528. 718 00:39:18,540 --> 00:39:19,610 Do ni provu tion. 719 00:39:19,610 --> 00:39:21,485 Ĉi tiu fojo ni fari malsamaj varia ankaŭ. 720 00:39:21,485 --> 00:39:22,500 Model2. 721 00:39:22,500 --> 00:39:24,800 Do resumo, model2. 722 00:39:24,800 --> 00:39:28,200 723 00:39:28,200 --> 00:39:31,390 Bone, do denove, ni havas nian bona adapti linio tie. 724 00:39:31,390 --> 00:39:36,160 Kaj ĉi time-- tiu diras, esence ke ĉiufoje kiam vi 725 00:39:36,160 --> 00:39:38,090 pliigi la pezon de aŭto per faktoro de e 726 00:39:38,090 --> 00:39:40,580 vi perdas ĉi multaj mejloj por galono. 727 00:39:40,580 --> 00:39:43,210 728 00:39:43,210 --> 00:39:50,326 >> Kaj tiel ĉi tiu tempo nia postrestanta normo eraro it-- ke ne gravas, vere. 729 00:39:50,326 --> 00:39:53,540 La postrestanta norma eraro estas esence nur la norma eraro 730 00:39:53,540 --> 00:39:57,760 ke vi lasis post vi forpreni la tendenco linio. 731 00:39:57,760 --> 00:40:02,805 Kaj nia r kvadrato tie estas 0.81, kio estas iom pli bona ol kio 732 00:40:02,805 --> 00:40:07,640 ni havis antaŭe, 0.52. 733 00:40:07,640 --> 00:40:09,750 >> Kaj do nun ni aldonu terminon por ĉi malprogreso. 734 00:40:09,750 --> 00:40:13,020 Do ni malprogresas mejloj por galono ambaŭ sur la ŝtipo de la pezoj 735 00:40:13,020 --> 00:40:21,130 kaj, ni faru, q mejloj, kvaronmejlo tempo. 736 00:40:21,130 --> 00:40:26,190 OK, ĝi devas havi the-- bonege 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-- bedaŭras, kio? 740 00:40:35,000 --> 00:40:37,000 Lasu min nomas ion alia krom model2. 741 00:40:37,000 --> 00:40:38,000 Lasu min nomas tiun model3. 742 00:40:38,000 --> 00:40:40,860 743 00:40:40,860 --> 00:40:42,900 Kaj tial nun ni povas fari resumon model3. 744 00:40:42,900 --> 00:40:46,850 745 00:40:46,850 --> 00:40:49,100 Kaj tial denove, ĉi tiu estas esence kion vi povus atendi. 746 00:40:49,100 --> 00:40:51,750 Vi havas pozitivan detranĉo. 747 00:40:51,750 --> 00:40:54,550 La efika kreskanta pezo estas negativa. 748 00:40:54,550 --> 00:40:58,490 Kaj la efektiva kreskanta kvaronmejlo tempo 749 00:40:58,490 --> 00:41:02,420 estas pozitiva, sed kvankam malpli ol pezo. 750 00:41:02,420 --> 00:41:06,010 Nun intuicie, vi povas fari senton de ĉi de diranta pensas pri sportoj aŭtojn. 751 00:41:06,010 --> 00:41:08,950 Estas tre rapida akcelo, tre mallonga kvaronmejlo fojojn. 752 00:41:08,950 --> 00:41:13,729 Ili ankaŭ uzos pli gaso, dum pli saĝa aŭtoj estas irantaj 753 00:41:13,729 --> 00:41:16,020 havi pli malrapida akcelo, maksimuma kvaronmejlo fojojn, 754 00:41:16,020 --> 00:41:20,890 kaj uzos malpli gason ,, do maksimuma mejloj por galono. 755 00:41:20,890 --> 00:41:21,390 Granda. 756 00:41:21,390 --> 00:41:23,431 Kaj do nun estas tempo komploti io tiamaniere. 757 00:41:23,431 --> 00:41:27,810 Do ni do-- tiel nudaj ostoj ni povas fari plots-- 758 00:41:27,810 --> 00:41:35,280 ĉar mi alkroĉita tiu datumo kadro before-- ni povas simple fari intrigoj, WT mpg. 759 00:41:35,280 --> 00:41:38,762 760 00:41:38,762 --> 00:41:39,720 Faru ĉi iom pli granda. 761 00:41:39,720 --> 00:41:55,050 762 00:41:55,050 --> 00:41:57,350 Tie, ni esence havas disjxetu intrigo, sed la punktoj 763 00:41:57,350 --> 00:41:58,690 estas speco de malfacile vidi en ĉi tio. 764 00:41:58,690 --> 00:42:04,860 765 00:42:04,860 --> 00:42:10,900 >> Mi ne memoras parolis improvize kion la sintakso estas por ŝanĝi la intrigon. 766 00:42:10,900 --> 00:42:14,100 Do mi supozas tio estos bona okazo alkondukis, 767 00:42:14,100 --> 00:42:18,000 Tie estas tre bela builtin helpo trajto, helpo citaĵoj funkcii nomo. 768 00:42:18,000 --> 00:42:21,690 Ni elvoku esence ajn vi ŝatus. 769 00:42:21,690 --> 00:42:28,010 770 00:42:28,010 --> 00:42:32,730 Mi pentros reale fari ĉi tipo egalas p por punktoj intrigoj. 771 00:42:32,730 --> 00:42:34,369 Ĉu tio ŝanĝas ion? 772 00:42:34,369 --> 00:42:35,160 Kaj ne, ne vere. 773 00:42:35,160 --> 00:42:39,160 774 00:42:39,160 --> 00:42:39,660 Bone. 775 00:42:39,660 --> 00:42:46,760 776 00:42:46,760 --> 00:42:49,580 >> Ial, kiam mi faris tiun sur mia propra komputilo faras momenton, 777 00:42:49,580 --> 00:42:52,080 ĉiuj disjxetu punktoj estis multe pli klara. 778 00:42:52,080 --> 00:43:06,390 779 00:43:06,390 --> 00:43:13,970 Cxiukaze, estas la disjxetu ia videbla? 780 00:43:13,970 --> 00:43:15,124 Ekzistas unu tie. 781 00:43:15,124 --> 00:43:16,165 Kelkaj tie, kelkaj tie. 782 00:43:16,165 --> 00:43:18,860 783 00:43:18,860 --> 00:43:21,185 Vi povas ordigi de vidi ilin, ĉu ne? 784 00:43:21,185 --> 00:43:24,310 Do se ni volas aldoni bona adapti linio al tiu intrigo tie, kio estas iom nuda 785 00:43:24,310 --> 00:43:29,290 bones-- lasu min fari ĝin iom pli bela. 786 00:43:29,290 --> 00:43:38,075 Ĉefa egalas kontre pezo. 787 00:43:38,075 --> 00:43:46,322 788 00:43:46,322 --> 00:43:49,740 Mejloj por galono. 789 00:43:49,740 --> 00:43:53,570 Denove, vi povas vidi kiel utila laŭvolaj argumentoj estas tie kun ankaŭ 790 00:43:53,570 --> 00:43:58,090 ne devi meti aferojn en certa ordo kun klavaro argumentoj 791 00:43:58,090 --> 00:44:01,600 kiam vi havas intrigojn, ĉar tiuj prenas multajn argumentojn. 792 00:44:01,600 --> 00:44:07,490 >> Xlab egalas pezon, pezon, tunoj. 793 00:44:07,490 --> 00:44:10,091 794 00:44:10,091 --> 00:44:10,590 Bone. 795 00:44:10,590 --> 00:44:17,340 796 00:44:17,340 --> 00:44:21,480 OK, jes, tiu aparato estas esti iom ĝena. 797 00:44:21,480 --> 00:44:30,160 Sed vi povas vidi specon de supre tie, ekzistas grafeo titolo sur la flanko. 798 00:44:30,160 --> 00:44:35,260 Super tie there's-- sur la fundo tie ekzistas akso etiketoj. 799 00:44:35,260 --> 00:44:37,700 Mi ne memoras parolis improvize kion la komandojn ars-- 800 00:44:37,700 --> 00:44:41,000 kio la funkcioj estas pliigi la grandeco de tiuj etiketoj kaj titoloj, 801 00:44:41,000 --> 00:44:43,110 sed ili estas tie. 802 00:44:43,110 --> 00:44:46,625 >> Kaj do se ni volas aldonu la bona adapti linio, 803 00:44:46,625 --> 00:44:49,250 ni povus fari ion kiel mi havas la sintakson redaktita tie. 804 00:44:49,250 --> 00:44:52,280 805 00:44:52,280 --> 00:45:11,130 Do memoru ni simple aldonu modelo Estis mpg, pezo, mtcars. 806 00:45:11,130 --> 00:45:16,470 Kaj do, se mi volus aldoni bona adapti linio, mi povus fari, b linio modelo. 807 00:45:16,470 --> 00:45:18,556 Kaj eksplodo, ni havas bona adapti linio. 808 00:45:18,556 --> 00:45:19,970 Estas ia malfacile vidi denove. 809 00:45:19,970 --> 00:45:22,178 Mi estas tute bedaŭras pri la teknologiaj malfacilaĵoj. 810 00:45:22,178 --> 00:45:25,230 Sed ĝi kuras resume supre maldekstre malsupren dekstren. 811 00:45:25,230 --> 00:45:27,550 >> Kaj se la skalo estis pli granda, vi povus vidi 812 00:45:27,550 --> 00:45:31,260 ke la detranĉo estas kion vi povas trovi el la resuma statistiko 813 00:45:31,260 --> 00:45:34,790 se vi tajpas resumo modelo. 814 00:45:34,790 --> 00:45:40,130 Bone, do mi esperas ĉiuj ricevas iom da senso de kio 815 00:45:40,130 --> 00:45:42,030 R estas, kio ĝi estas bona por. 816 00:45:42,030 --> 00:45:45,520 Vi povus fari multe pli agrabla ol intrigoj tion en via propra tempo, se vi volas. 817 00:45:45,520 --> 00:45:50,100 818 00:45:50,100 --> 00:45:53,950 >> Do la eksterlandaj funkcio interfaco. 819 00:45:53,950 --> 00:46:00,330 Tiu estas iu kiu ne estas tipe kovrita en enkondukaj prelegoj 820 00:46:00,330 --> 00:46:03,560 aŭ enkonduka ion por r. 821 00:46:03,560 --> 00:46:05,584 Ĝi ne estas verŝajna vi tuj bezonas ĝin. 822 00:46:05,584 --> 00:46:08,000 Tamen, mi trovis ĝin utila en miaj propraj projektoj en la pasinteco. 823 00:46:08,000 --> 00:46:10,984 Kaj ne estas bona lernilo por gxin rete. 824 00:46:10,984 --> 00:46:12,900 Do mi simple tuj rapidi vi ĉiuj per tiu 825 00:46:12,900 --> 00:46:16,606 kaj tiam vi libere foriri. 826 00:46:16,606 --> 00:46:18,480 Kaj do la fremdajn funkcio interfaco estas kio 827 00:46:18,480 --> 00:46:23,130 vi povas uzi voki vidi funkcioj kun R. Interne, 828 00:46:23,130 --> 00:46:29,850 R estas konstruita sur C. R aritmetiko estas nur C la 64-bita flosanta punkta aritmetiko, 829 00:46:29,850 --> 00:46:32,852 kio tajpu duoblan [inaudible]. 830 00:46:32,852 --> 00:46:35,060 Kaj vi volus fari ĉi por aro da kialoj. 831 00:46:35,060 --> 00:46:39,250 Por unu, R estas interpretita, estas Ne kompilita malsupren al maŝino kodo. 832 00:46:39,250 --> 00:46:42,170 Do vi povas reskribi vian ena maŝojn en C kaj tiam akiri 833 00:46:42,170 --> 00:46:45,920 la avantaĝon de uzi R. Kiel ĝi estas iom pli konvena ol C. 834 00:46:45,920 --> 00:46:48,899 Ĝi havas bona grafikaj instaladoj kaj whatnot. 835 00:46:48,899 --> 00:46:51,690 Kaj ŝirmataj povante alveni maksimuma rapido el la interna masxojn, 836 00:46:51,690 --> 00:46:53,650 kio estas kie vi ne bezonas ĝin. 837 00:46:53,650 --> 00:46:56,330 >> Reuzo ekzistanta C bibliotekoj, jen ankaŭ grava. 838 00:46:56,330 --> 00:47:00,320 Se vi havas kelkajn C biblioteko por kiel, Mi ne scias, Fourier transformas, 839 00:47:00,320 --> 00:47:05,190 aŭ iuj tre Archean statistikoj proceduro uzita 840 00:47:05,190 --> 00:47:09,470 en alta energio astrofiziko aŭ ion, mi ne scias. 841 00:47:09,470 --> 00:47:13,058 Alta energio astrofiziko ne eĉ pensas, mi kredas. 842 00:47:13,058 --> 00:47:16,480 Sed vi povas fari tion anstataŭ havi skribi denaska R haveno de ili. 843 00:47:16,480 --> 00:47:22,725 Kaj sur the-- kaj denove, kiel se rigardi en plejparto de R defaŭlta bibliotekoj, 844 00:47:22,725 --> 00:47:25,600 sur la internals, la internals estas tuj uzi la fremdajn funkcio 845 00:47:25,600 --> 00:47:26,724 interagadi tre amplekse. 846 00:47:26,724 --> 00:47:31,630 Oni devos aĵojn kiel Fourier transformas aŭ komputanta korelacio 847 00:47:31,630 --> 00:47:34,890 koeficientoj skribita en C, kaj ili instruos vin nur havi R envolvaĵoj ĉirkaŭ ili. 848 00:47:34,890 --> 00:47:38,230 La interfaco estas iom malfacila. mi pensas 849 00:47:38,230 --> 00:47:43,750 lia malfacilaĵo estas troigita en Multa la instrukciojn vi trovos. 850 00:47:43,750 --> 00:47:46,200 Sed tamen, ĝi estas iom konfuza. 851 00:47:46,200 --> 00:47:48,650 Kaj mi ne povis trovi bonan lernilon por ĝi, 852 00:47:48,650 --> 00:47:51,980 do jen ĝi nun. 853 00:47:51,980 --> 00:47:55,360 Denove, tiu tuta segmento Estas pli por poste referenco. 854 00:47:55,360 --> 00:47:57,687 Ne maltrankviliĝu pri kopiado ĉio malsupren ĝuste nun. 855 00:47:57,687 --> 00:48:00,020 Do la jenaj instrukcioj estas por Unikso-similaj sistemoj, 856 00:48:00,020 --> 00:48:05,150 Linukso, BSD, OS X. Mi ne scias kiel tio funkcias en Windows, 857 00:48:05,150 --> 00:48:08,280 sed bonvolu simple ne faru vian fina projekto sur Vindozo. 858 00:48:08,280 --> 00:48:10,790 859 00:48:10,790 --> 00:48:12,460 Vi vere ne volas. 860 00:48:12,460 --> 00:48:14,770 Unikso estas multe pli bona aro ĉe hazardaj programado. 861 00:48:14,770 --> 00:48:19,320 862 00:48:19,320 --> 00:48:21,390 Do, resume eksterlandaj funkcio interfaco. 863 00:48:21,390 --> 00:48:24,420 Se vi volas skribi C funkcion por uzo kun R, 864 00:48:24,420 --> 00:48:27,250 ĝi devas preni ĉiujn argumentoj kiel punteros. 865 00:48:27,250 --> 00:48:30,666 >> Do por solaj valoroj, tiu signifas ĝi atentigis al la valoro. 866 00:48:30,666 --> 00:48:33,040 Por arrays, tiu estas montrilo al la unua elemento, kiu 867 00:48:33,040 --> 00:48:36,750 estas kion tabelo nomoj fakte signifas. 868 00:48:36,750 --> 00:48:40,140 Denove, tio estas io vi devus havi bela tute malsupren post p starigis kvin. 869 00:48:40,140 --> 00:48:43,334 Array nomoj estas nur montriloj al la unua elemento, 870 00:48:43,334 --> 00:48:44,750 La punkto flotante tipo estas duobla. 871 00:48:44,750 --> 00:48:47,310 Kaj via funkcio havas reveni malplenon. 872 00:48:47,310 --> 00:48:50,810 La sola maniero kiu povas fakte diri R kio okazis 873 00:48:50,810 --> 00:48:54,410 estas modifante la memoro ke R donis al ĝi tra la eksterlandaj funkcio 874 00:48:54,410 --> 00:48:54,910 interfaco. 875 00:48:54,910 --> 00:48:58,180 876 00:48:58,180 --> 00:49:00,127 >> Do mi skribis tiun Ekzemple tie, tio estas 877 00:49:00,127 --> 00:49:02,460 funkcio kiu komputas uzo skalara produto de du vektoroj. 878 00:49:02,460 --> 00:49:05,060 Ĝi prenas du argumentojn, vec1, vec2, kiuj estas la vektoroj mem, 879 00:49:05,060 --> 00:49:06,934 kaj tiam n, kiu estas longo, ĉar denove, 880 00:49:06,934 --> 00:49:12,630 R konstruigis en [inaudible] eltrovi la longo de vektoroj, sed C ne. 881 00:49:12,630 --> 00:49:16,182 En C, vektoroj estas ajna limigita bloko de memoro. 882 00:49:16,182 --> 00:49:17,890 Do kiel vi povas kalkuli skalara produktoj 883 00:49:17,890 --> 00:49:23,470 Estas ĝuste starigis ĉi ekstere parametro al nulo kaj tiam persisti tra 884 00:49:23,470 --> 00:49:28,760 de 1 al stelo n, ĉar n estas puntero al la longo, 885 00:49:28,760 --> 00:49:32,929 nur aldoni ion ĉi ekstere parametro. 886 00:49:32,929 --> 00:49:34,970 Kaj ĝi povas esti bona praktiko se vi tuj faros 887 00:49:34,970 --> 00:49:37,270 ĉi skribi du apartajn C funkcioj. 888 00:49:37,270 --> 00:49:41,970 Unu el ili has-- Unu el ili ĵus prenas la argumentojn kaj la tipoj 889 00:49:41,970 --> 00:49:43,970 ke oni ordinare esti en C. 890 00:49:43,970 --> 00:49:47,780 >> Do ĝi prenas tabelo argumentoj kiel punteros. 891 00:49:47,780 --> 00:49:57,090 Sed unu-valoro argumentoj kiel n, ĝi simple prenas kiel valoroj por kopio, 892 00:49:57,090 --> 00:49:57,917 sen punteros. 893 00:49:57,917 --> 00:49:59,750 Kaj tiam ĝi ne [Inaudible] el puntero. 894 00:49:59,750 --> 00:50:01,290 Kaj tiam vi povas havi malsama, esence, 895 00:50:01,290 --> 00:50:03,623 envoltorio funkcion kiu esence pritraktas la postulojn 896 00:50:03,623 --> 00:50:07,740 de la fremdaj funkcio Interfaco por vi. 897 00:50:07,740 --> 00:50:11,840 >> La vojo vi nomas tion en R estas, fojo vi havos vian funkcion skribita en C, 898 00:50:11,840 --> 00:50:17,770 vi tajpi R cmd shlib, R komando dividitaj biblioteko, 899 00:50:17,770 --> 00:50:20,110 foo punkto c, aŭ kio ajn via dosiernomo estas, 900 00:50:20,110 --> 00:50:23,020 kaj la VIN shell ne en la R terminalo. 901 00:50:23,020 --> 00:50:25,200 Kaj ĉi kreos biblioteko nomita foo pentras tiel. 902 00:50:25,200 --> 00:50:28,180 Kaj tiam vi povas ŝarĝi ĝin en nia skripto aŭ dialoge 903 00:50:28,180 --> 00:50:32,310 kun komando Dyn skalara ŝarĝo. 904 00:50:32,310 --> 00:50:35,720 Tiam tie estas funkcio en R nomita skalara ĉ. 905 00:50:35,720 --> 00:50:39,310 >> Ĉi prenas argumentoj kiuj estas Unue la nomo de la funkcio en C 906 00:50:39,310 --> 00:50:40,970 ke vi volas nomi. 907 00:50:40,970 --> 00:50:43,920 Kaj tiam ĉiuj parametroj al tiu funkcio, 908 00:50:43,920 --> 00:50:45,420 Ili devas esti en la ĝusta ordo. 909 00:50:45,420 --> 00:50:48,580 Vi devas uzi tiuj tipo devigo funkcioj kiel entjero, kiel 910 00:50:48,580 --> 00:50:52,050 duobla, kiel karaktero, kaj kiel logika. 911 00:50:52,050 --> 00:50:54,710 Kaj poste kiam li revenas la listo, kiu denove estas nur 912 00:50:54,710 --> 00:50:57,550 asociita tabelo de la parametro nomoj kaj valoroj 913 00:50:57,550 --> 00:51:00,950 post la funkcio kuris. 914 00:51:00,950 --> 00:51:08,520 >> Do en ĉi tiu kazo, ĉar skalara prod havas argumentoj vec1, vec2 kaj int n, n el. 915 00:51:08,520 --> 00:51:11,980 Al dot c ni havas skalara prod, la nomo de la funkcio 916 00:51:11,980 --> 00:51:16,250 ni vokas, vec1, vec2, tipo devigi. 917 00:51:16,250 --> 00:51:20,060 La longo de ĉiu vektoro, Mi nur elektis vec1 arbitre. 918 00:51:20,060 --> 00:51:25,479 Estus pli fortika diri s entjera min longo de vec1, longeco vec2. 919 00:51:25,479 --> 00:51:27,520 Tiam nur kiel duobla nulo, ĉar ni ne vere 920 00:51:27,520 --> 00:51:29,644 zorgas, kio eniras en la eksteren parametro ĉar ni estas 921 00:51:29,644 --> 00:51:32,270 fiksante ĝin al nulo ĉiuokaze. 922 00:51:32,270 --> 00:51:37,560 >> Kaj tiam rezultoj tuj estos granda asociita tabelo de esence 923 00:51:37,560 --> 00:51:42,090 vec1 estas kio ajn, vec2 estas kio ajn. 924 00:51:42,090 --> 00:51:44,330 Sed ni estas interesita en ekstere, tiel ni povos atingi tion diveni. 925 00:51:44,330 --> 00:51:47,780 Jen denove, tre ludilo ekzemplo de fremda funkcio interfaco. 926 00:51:47,780 --> 00:51:54,160 Sed se vi devi komputi skalara produktoj de amasa vektoroj en cikloj, 927 00:51:54,160 --> 00:51:56,960 aŭ se vi devas fari io alia en buklo, 928 00:51:56,960 --> 00:51:59,850 kaj vi ne volas dependi de R, kion faras havi iom de superkape 929 00:51:59,850 --> 00:52:02,830 konstruita en ĝi, tio povas esti utila. 930 00:52:02,830 --> 00:52:05,870 >> Denove, ĉi tio ne estas kutime enkonduka temo al R. 931 00:52:05,870 --> 00:52:08,571 Ĝi ne estas tre bone dokumentita. 932 00:52:08,571 --> 00:52:11,070 Mi nur inkludante ŝin ĉar Mi trovis ĝin utila en la pasinteco. 933 00:52:11,070 --> 00:52:13,654 Do, malbonaj praktikoj. 934 00:52:13,654 --> 00:52:15,820 Mi menciis ke ekzistas por buklo en la funkcio. 935 00:52:15,820 --> 00:52:21,150 Ĝenerale vi ne devus, en la lingvon, ne uzu ĝin. 936 00:52:21,150 --> 00:52:26,100 Bazita sur kiel R implementa ripeto interne, ĝi povas esti malrapida. 937 00:52:26,100 --> 00:52:28,540 Ili simple ankaŭ aspektas malbele. 938 00:52:28,540 --> 00:52:32,410 >> R manipulas vektoroj tre bele, tiel ofte vi ne bezonas uzi ĝin. 939 00:52:32,410 --> 00:52:35,050 940 00:52:35,050 --> 00:52:38,900 Tiam vi povas kutime anstataŭi vektoron ofte 941 00:52:38,900 --> 00:52:42,490 kun tiuj funkcioj nomas altaj Por funkcioj, Mapo, Redukti, 942 00:52:42,490 --> 00:52:44,404 Trovu aŭ filtrilo. 943 00:52:44,404 --> 00:52:46,320 Mi nur donas kelkajn ekzemploj de kion tiuj faras. 944 00:52:46,320 --> 00:52:49,957 Mapo estas alta ordo funkcio ĉar ĝi uzas alian funkcion kiel argumenton. 945 00:52:49,957 --> 00:52:52,290 Do vi povas doni ĝin funkcio, vi povas doni ĝin tabelo, 946 00:52:52,290 --> 00:52:54,640 kaj ĝi aplikos la funkcio por ĉiu ero de la tabelo 947 00:52:54,640 --> 00:52:55,681 kaj redoni la nova tabelo. 948 00:52:55,681 --> 00:52:58,035 949 00:52:58,035 --> 00:53:00,160 Redukti, esence vi donu ĝi tabelo, vi donos ĝin 950 00:53:00,160 --> 00:53:02,930 funkcio kiu prenas du argumentojn. 951 00:53:02,930 --> 00:53:07,100 Ĝi aplikos la funkcio unue, la unua argumento kun iuj startigilo valoro. 952 00:53:07,100 --> 00:53:09,440 Tiam al tiu rezulto en la dua. 953 00:53:09,440 --> 00:53:12,590 Tiam al tiu rezulto en la tria, tiam al tiu rezulto en la kvara. 954 00:53:12,590 --> 00:53:14,870 Kaj tiam revenu kiam alvenas al la fino. 955 00:53:14,870 --> 00:53:17,620 Do ekzemple, se vi volas komputi la sumon de ĉiuj elementoj 956 00:53:17,620 --> 00:53:23,240 en tabelo, ol vi eble nomu redukti kun [inaudible] redukti aldonojn 957 00:53:23,240 --> 00:53:26,620 funkcio, kiel func a, b, resendas plus b. 958 00:53:26,620 --> 00:53:28,960 Kaj tiam komenci valoro de 0. 959 00:53:28,960 --> 00:53:32,950 >> Kaj cxiuj tiuj, vi povas trovi ilin priskribita en la R dokumentaron, 960 00:53:32,950 --> 00:53:35,720 en iu lernolibro sur funkcia programado. 961 00:53:35,720 --> 00:53:38,330 Ekzistas ankaux tiu klaso de funkcioj nomitaj apliki funkciojn, 962 00:53:38,330 --> 00:53:42,807 kiun mi don't-- ili estas iom malfacile klarigi, 963 00:53:42,807 --> 00:53:45,640 sed se vi rigardas en [inaudible] mendita ke mi citis komence, 964 00:53:45,640 --> 00:53:48,615 Li klarigas ilin sufiĉe bone en lia apendico sur R programado. 965 00:53:48,615 --> 00:53:51,599 966 00:53:51,599 --> 00:53:53,390 Pli pri praktikoj, appending al vektoroj. 967 00:53:53,390 --> 00:53:57,570 968 00:53:57,570 --> 00:53:58,070 Yeah? 969 00:53:58,070 --> 00:54:01,651 970 00:54:01,651 --> 00:54:02,900 Mi kredas ke mi devus korekti tion. 971 00:54:02,900 --> 00:54:07,450 En tiu unua linio, vec sago, ke sago ne devus esti tie. 972 00:54:07,450 --> 00:54:10,920 Vi povas atribui al vektoro, denove, por preni lian longo plus 1 973 00:54:10,920 --> 00:54:13,220 kaj atribuante iun valoron al tio. 974 00:54:13,220 --> 00:54:18,970 Kiu etendos la vektoro, aŭ vi povas fari vec egaluloj c, vec newvalue. 975 00:54:18,970 --> 00:54:21,540 Denove, se vi uzas C kun unu argumento kiel vektora, 976 00:54:21,540 --> 00:54:23,300 la rezulta hierarkio gets platigitaj. 977 00:54:23,300 --> 00:54:27,160 Do vi nur ricevos vektoro kiu estas etendita per 1. 978 00:54:27,160 --> 00:54:30,410 Neniam faru tion. 979 00:54:30,410 --> 00:54:33,330 >> La kialo kial vi ne devus fari tion estas ĉi. 980 00:54:33,330 --> 00:54:37,430 Kiam vi destini vektoro, ĝi donas certan eron de memoro. 981 00:54:37,430 --> 00:54:40,680 Se vi pliigos ke vektora grando, ĝi devas reallocate la vektoro 982 00:54:40,680 --> 00:54:43,820 aliloke. 983 00:54:43,820 --> 00:54:46,980 Kaj tiel reasignación estas sufiĉe multekosta. 984 00:54:46,980 --> 00:54:50,530 Mi ne klarigos nun la detalojn de kiel memoro allocators realigitajn 985 00:54:50,530 --> 00:54:57,280 sur la mastruma sistemo nivelo, sed prenas multan tempon 986 00:54:57,280 --> 00:54:58,962 trovi novan eron de memoro. 987 00:54:58,962 --> 00:55:00,920 Kaj ankaŭ, se vi estas re-atribuo multoj kaj terenoj 988 00:55:00,920 --> 00:55:03,500 de laŭstadie pli grandaj pecoj, vi finos 989 00:55:03,500 --> 00:55:06,420 kun iu nomita memoro fragmentación, 990 00:55:06,420 --> 00:55:09,390 kie la disponebla memoro dividita en multaj malgrandaj blokoj 991 00:55:09,390 --> 00:55:11,500 en la memoro allocators vidpunkto. 992 00:55:11,500 --> 00:55:15,340 Kaj ĝi ricevas pli kaj pli malfacile trovi memoro por aliaj aĵoj. 993 00:55:15,340 --> 00:55:19,455 Do anstataŭ, se vi devas fari tion, se vi bezonas kreski vektoro de unu fino 994 00:55:19,455 --> 00:55:24,240 al la sekva, anstataŭ appending al ĝi konstante, vi devus antaŭ-rezervi ĝin. 995 00:55:24,240 --> 00:55:29,310 Vec sago, vektora longo egalas 1,000, aŭ kion ajn. 996 00:55:29,310 --> 00:55:33,200 >> Kaj tiam vi povas simple asigni al la vektoraj valoroj unu 997 00:55:33,200 --> 00:55:36,000 tempo post vi jam asignitaj iame. 998 00:55:36,000 --> 00:55:40,140 Mi renkontis tiun, denove, mia somera laborposteno kiam mi estis skribanta NRA diferenciala 999 00:55:40,140 --> 00:55:42,120 ekvacio solver. 1000 00:55:42,120 --> 00:55:43,180 Ne simbola nombra. 1001 00:55:43,180 --> 00:55:49,290 La ideo estas ke unufoje vi havas unu valoro por via solvo, 1002 00:55:49,290 --> 00:55:51,240 vi uzas ke komputi la proksima. 1003 00:55:51,240 --> 00:55:53,700 Do mia natura naiva deklivo estis diri OK, 1004 00:55:53,700 --> 00:55:56,930 tial Mi komencos per vektoro jen substanca valoro. 1005 00:55:56,930 --> 00:56:01,260 Komputi el kiuj la sekvanta valoro kiu iras al mia solvo vektora, 1006 00:56:01,260 --> 00:56:02,630 kaj append tio. 1007 00:56:02,630 --> 00:56:05,290 >> Krei iu alia, append tio. 1008 00:56:05,290 --> 00:56:08,120 Ĝi iris tre, tre malrapide. 1009 00:56:08,120 --> 00:56:11,540 Kaj iam mi komprenis tiun kaj mi ŝanĝis mian sistemon 1010 00:56:11,540 --> 00:56:16,020 el appending al tiu vektoro kiel 10,000 al 100,000 fojojn, 1011 00:56:16,020 --> 00:56:18,910 nur pre-atribuo vektoro kaj simple kurante kun tio. 1012 00:56:18,910 --> 00:56:22,100 Mi akiris pli ol 1,000 obla rapideco supren. 1013 00:56:22,100 --> 00:56:26,280 Do tiu estas tre komuna kaptilon por R programado. 1014 00:56:26,280 --> 00:56:31,560 Se vi bezonas konstru vektoro dispecigitan antaŭ- rezervu ĝin. 1015 00:56:31,560 --> 00:56:35,360 1016 00:56:35,360 --> 00:56:40,240 >> Alia komuna vojaĝo up-- ĉi estas mia lasta glito, ne worry-- estas eraro uzado. 1017 00:56:40,240 --> 00:56:42,890 R, esti sincera, ne vere fari tion tre bone. 1018 00:56:42,890 --> 00:56:45,010 Ekzistas multe de problemoj kiu povas okazi. 1019 00:56:45,010 --> 00:56:48,360 Ekzemple, se vi ricevas tabelo aŭ vektora el funkcio 1020 00:56:48,360 --> 00:56:52,377 ke vi atendis sola valoro veni de, aŭ inverse, 1021 00:56:52,377 --> 00:56:55,460 kaj vi preterpasonta en funkcio kiu vi skribis atendante ununuran valoron, 1022 00:56:55,460 --> 00:56:57,270 kiu povas esti problemo. 1023 00:56:57,270 --> 00:57:01,440 >> Certaj funkcioj reveni rifuzis fari, diri, 1024 00:57:01,440 --> 00:57:05,560 legado de inexistente ŝlosilo en listo. 1025 00:57:05,560 --> 00:57:08,527 Sed nula ne ŝatas C kie se vi provas legi 1026 00:57:08,527 --> 00:57:11,360 el malnova montrilo, [inaudible] al nula puntero, ĝi ĵus seg kulpoj 1027 00:57:11,360 --> 00:57:14,109 kaj se vi estas en via erarserĉilo ĝi diras vin ĝuste kie vi estas. 1028 00:57:14,109 --> 00:57:17,080 1029 00:57:17,080 --> 00:57:20,772 Anstataŭe, nula estos do-- funkcioj faros neantaŭvideblaj aferoj 1030 00:57:20,772 --> 00:57:21,730 se ili estas lertaj nula. 1031 00:57:21,730 --> 00:57:24,575 Kiel se vi enmanigis max nula, ĝi donos al vi negativa malfinio. 1032 00:57:24,575 --> 00:57:27,230 1033 00:57:27,230 --> 00:57:28,190 Kaj tiel, jes. 1034 00:57:28,190 --> 00:57:30,880 1035 00:57:30,880 --> 00:57:32,630 Kaj tiel tio okazis al mi, kiam mi havis 1036 00:57:32,630 --> 00:57:34,771 ŝanĝis faskon de kampoj en mia listo strukturo 1037 00:57:34,771 --> 00:57:37,520 iam sen ŝanĝi ilin aliloke kiam mi legis de ili. 1038 00:57:37,520 --> 00:57:40,670 Kaj tiam mi ricevis ĉiaj hazarda malfinio rezultoj tondadon supren 1039 00:57:40,670 --> 00:57:43,080 kaj mi ne scias kien ili venis. 1040 00:57:43,080 --> 00:57:45,310 Kaj bedaŭrinde, ekzistas neniu reala R strikta reĝimo 1041 00:57:45,310 --> 00:57:48,940 Kie vi povas diri se io aspektas kiel ĝi povus esti eraro, 1042 00:57:48,940 --> 00:57:51,960 nur haltas tie do mi povas esti disciplinado kaj ripari tion. 1043 00:57:51,960 --> 00:57:55,282 1044 00:57:55,282 --> 00:57:57,240 Tamen, ekzistas io nomata halto se ne. 1045 00:57:57,240 --> 00:58:00,480 Tio estas ekvivalenta al C estas aserti, se vi jam parolis pri tio. 1046 00:58:00,480 --> 00:58:02,690 Mi ne kredas C aserti Estas prelego temo, 1047 00:58:02,690 --> 00:58:06,370 sed via sekcio ĉefo eble trairos gxin. 1048 00:58:06,370 --> 00:58:10,393 Kaj halti se ne esence prenas ajnan predikato, do ajna aserto ke 1049 00:58:10,393 --> 00:58:11,824 povas esti vera aŭ malvera. 1050 00:58:11,824 --> 00:58:13,490 Kaj se ĝi estas falsa, ĝi ĉesas lian programon. 1051 00:58:13,490 --> 00:58:18,260 Ĝi diras vin ĝuste kio vicigas vin estis plu kaj kion kondiĉo malsukcesis. 1052 00:58:18,260 --> 00:58:21,910 >> Kaj tiu tre utila, ekzemple, sanity kontrolanta, funkcio enigoj. 1053 00:58:21,910 --> 00:58:25,110 Do se vi havas funkcion kaj vi atendas, ekzemple, 1054 00:58:25,110 --> 00:58:29,640 se vi donu al mi nun, mi volas la datoj estos nur vektoro de longo 1 1055 00:58:29,640 --> 00:58:31,735 kaj ie inter 1 kaj 31. 1056 00:58:31,735 --> 00:58:34,420 1057 00:58:34,420 --> 00:58:36,170 Kaj se ne, mi scias io fuŝiĝis. 1058 00:58:36,170 --> 00:58:40,280 Kaj mi elektas halti tie antaŭ tiu havas hazardaj frapo sur efikoj kun kodo 1059 00:58:40,280 --> 00:58:44,190 ke ĝi estas pli malfacila spuri tra. 1060 00:58:44,190 --> 00:58:47,170 Do jen unu ebla uzi por halto se ne. 1061 00:58:47,170 --> 00:58:48,660 >> Cxiukaze, OK. 1062 00:58:48,660 --> 00:58:49,690 Do jen la fino. 1063 00:58:49,690 --> 00:58:51,290 Dankon tiom por veni. 1064 00:58:51,290 --> 00:58:53,710 Mi estas rangon amatoro ĉe tiu. 1065 00:58:53,710 --> 00:58:57,270 Do bedaŭras se vi enuas aŭ konfuza aŭ kion havas vin. 1066 00:58:57,270 --> 00:59:01,670 Mi estas feliĉa preni demandoj retpoŝte ĉe connorharris@college.harvard.edu. 1067 00:59:01,670 --> 00:59:07,230 Ĉi tio iras ankaŭ por ĉiuj rigardante tiun vivi aŭ poste. 1068 00:59:07,230 --> 00:59:10,190 Ankaŭ, kvankam mi ne TF, mi estas ankaŭ tre 1069 00:59:10,190 --> 00:59:13,900 volos servi kiel neoficiala konsilisto por iu ajn kiu estas 1070 00:59:13,900 --> 00:59:15,460 uzante R en fina projekto. 1071 00:59:15,460 --> 00:59:19,900 >> Se vi ŝatus ke, tiam nur paroli kun via TF 1072 00:59:19,900 --> 00:59:23,750 kaj tiam skribu al mi retmesaĝon tiel Mi scias kion vi laboras sur 1073 00:59:23,750 --> 00:59:26,680 do mi povas starigi kunveno fojojn kun vi se vi volas. 1074 00:59:26,680 --> 00:59:27,990 Do denove, multan dankon. 1075 00:59:27,990 --> 00:59:28,960 Mi esperas ke vi ĝuis ĝin. 1076 00:59:28,960 --> 00:59:29,450 >> Spektantaro: [inaudible]. 1077 00:59:29,450 --> 00:59:30,617 >> CONNER HARRIS: Kompreneble. 1078 00:59:30,617 --> 00:59:34,910 >> Publiko: Kio speco de projekto estus CS studento uzi R por? 1079 00:59:34,910 --> 00:59:37,427 1080 00:59:37,427 --> 00:59:40,510 CONNER HARRIS: Do se vi ne faras iu kiu estas pure en datuma minado, 1081 00:59:40,510 --> 00:59:43,790 ekzemple, kaj tie Estas multaj aferoj 1082 00:59:43,790 --> 00:59:46,692 vi povus fari kun tiu kun datumoj ministo kaj maŝina lernado. 1083 00:59:46,692 --> 00:59:48,900 Vi eble deziras uzi R por komponanto de io. 1084 00:59:48,900 --> 00:59:52,022 Mi altigis, origine, la ekzemplo de se vi skribas retejo 1085 00:59:52,022 --> 00:59:54,730 kaj vi volas kuri aŭtomatigita statistika analizo de via servilo 1086 00:59:54,730 --> 00:59:57,990 ŝtipoj je certa tempo ĉiutage, ke povus esti io tio 1087 00:59:57,990 --> 01:00:01,260 tre facila fari en nur mallonga R skripto kiu povas plani 1088 01:00:01,260 --> 01:00:04,200 kuri ĉiunokte, ekzemple. 1089 01:00:04,200 --> 01:00:06,550 >> Kaj mi certas, se ekzistas ajna kialo oni kredus 1090 01:00:06,550 --> 01:00:11,520 volas statistiko aŭ grafikaj kapabloj kaj havi ĉi run aŭtomate anstataŭe 1091 01:00:11,520 --> 01:00:13,790 havi interrilati kun aferoj en Excel, 1092 01:00:13,790 --> 01:00:16,750 ekzemple, tio estas io vi eble deziras uzi R por. 1093 01:00:16,750 --> 01:00:21,190 Do demandon antaŭ mi lasas? 1094 01:00:21,190 --> 01:00:21,690 Neniu? 1095 01:00:21,690 --> 01:00:24,960 Bone, bone, pli, dankon dankojn pro veni. 1096 01:00:24,960 --> 01:00:29,417