1 00:00:00,000 --> 00:00:05,691 2 00:00:05,691 --> 00:00:07,690 CONNOR HARRIS: Still ko tingin ng ilang kapana-panabik na video 3 00:00:07,690 --> 00:00:12,570 nagawa sa pamamagitan ng isang propesyonal na pagkonsulta na gumagamit ng R ng maraming sa kanyang trabaho. 4 00:00:12,570 --> 00:00:16,329 >> Tagapagsalaysay: Ano ang nasa likod ng mga istatistika, ang analytics, at ang mga visualization 5 00:00:16,329 --> 00:00:19,770 pinakamaliwanag siyentipiko data na ngayon at mga lider ng negosyo ay umaasa sa 6 00:00:19,770 --> 00:00:22,012 upang gumawa ng malakas na desisyon? 7 00:00:22,012 --> 00:00:23,540 Ikaw ay maaaring hindi laging makita ito. 8 00:00:23,540 --> 00:00:24,790 Ngunit ito ay may. 9 00:00:24,790 --> 00:00:29,460 Ito ay tinatawag na R, open source R-- ang statistical programming language 10 00:00:29,460 --> 00:00:32,630 na ang mga eksperto ng data sa mundo higit sa paggamit para sa lahat ng bagay 11 00:00:32,630 --> 00:00:35,350 mula sa paggawa ng mga mapa ng malawak na lipunan at mga uso sa online na pagmemerkado 12 00:00:35,350 --> 00:00:39,210 sa pag-unlad ng pananalapi at klima modelo na makakatulong sa drive ang aming mga ekonomiya 13 00:00:39,210 --> 00:00:40,780 at mga komunidad. 14 00:00:40,780 --> 00:00:44,910 >> Ngunit ano ang eksaktong ay R at saan R magsisimula? 15 00:00:44,910 --> 00:00:48,620 Well orihinal, nagsimula R dito sa dalawang propesor 16 00:00:48,620 --> 00:00:51,950 na nais ng isang mas mahusay na statistical platform para sa kanilang mga mag-aaral. 17 00:00:51,950 --> 00:00:56,030 Kaya sila na nilikha ng isang modelo pagkatapos ng statistical wika S. 18 00:00:56,030 --> 00:01:00,480 Sila, kasama ang marami pang iba, iningatan nagtatrabaho sa at paggamit ng R, 19 00:01:00,480 --> 00:01:05,489 paglikha ng mga kasangkapan para sa R ​​at paghahanap bagong aplikasyon para sa R ​​araw-araw. 20 00:01:05,489 --> 00:01:07,750 >> Salamat sa mga ito ay sa buong mundo na pagsisikap ng komunidad, 21 00:01:07,750 --> 00:01:11,850 R iningatan lumalaki sa libo-libong ng mga aklatan na nilikha ng gumagamit na binuo 22 00:01:11,850 --> 00:01:15,500 upang mapahusay ang pag-andar R at karamihan ng tao-inaning pagpapatunay ng kalidad 23 00:01:15,500 --> 00:01:19,740 at suporta mula sa mga pinaka-kinikilalang mga lider ng industriya sa bawat field na 24 00:01:19,740 --> 00:01:25,040 ay gumagamit R. Aling ay mahusay, dahil R ay ang pinakamahusay sa kung ano ang ginagawa nito. 25 00:01:25,040 --> 00:01:28,540 Namumuko eksperto sa mabilis at madaling bigyang-kahulugan, makipag-ugnayan sa, 26 00:01:28,540 --> 00:01:33,790 at mailarawan ang data na nagpapakita ng kanilang mabilis lumalaking komunidad ng mga gumagamit sa buong mundo R 27 00:01:33,790 --> 00:01:36,380 at makita kung paano open source R patuloy na hugis 28 00:01:36,380 --> 00:01:39,340 ang hinaharap ng statistical analysis at agham data. 29 00:01:39,340 --> 00:01:44,660 30 00:01:44,660 --> 00:01:47,710 >> CONNOR HARRIS: OK, malaki. 31 00:01:47,710 --> 00:01:50,360 Kaya ang aking sariling mga pagtatanghal ay magiging mas matino ng kaunti. 32 00:01:50,360 --> 00:01:54,380 Hindi na ito ay kabilang na marami kapana-panabik na background music. 33 00:01:54,380 --> 00:01:59,160 Ngunit tulad ng nakita mo sa video, R ay uri ng isang pangkalahatang programa wika layunin. 34 00:01:59,160 --> 00:02:03,720 Ngunit ito ay nilikha na ang karamihan para sa statistical trabaho. 35 00:02:03,720 --> 00:02:07,980 >> Kaya ito ay dinisenyo para sa mga statistics, para sa pagsusuri ng data, para sa data mining. 36 00:02:07,980 --> 00:02:12,420 At kaya maaari mong makita ito sa isang pulutong ng ang disenyo ng mga pagpipilian na mga gumagawa ng R 37 00:02:12,420 --> 00:02:13,320 ginawa. 38 00:02:13,320 --> 00:02:15,472 Ito ay dinisenyo para sa kalakhan, mga tao na hindi 39 00:02:15,472 --> 00:02:17,930 eksperto sa programming, na ay tumatawag lang programming 40 00:02:17,930 --> 00:02:23,460 sa gilid upang maaari nilang gawin ang kanilang trabaho sa social science o sa mga istatistika 41 00:02:23,460 --> 00:02:25,440 o kahit ano. 42 00:02:25,440 --> 00:02:27,850 >> Ito ay may isang pulutong ng mga tunay mahalagang pagkakaiba mula sa C. 43 00:02:27,850 --> 00:02:33,200 Ngunit ang syntax at ang paradigms na ito ay gumagamit ay malawak ang parehong. 44 00:02:33,200 --> 00:02:36,830 At dapat mong huwag mag-medyo marami sa bahay karapatan off ang bat. 45 00:02:36,830 --> 00:02:38,520 Ito ay isang kinakailangan na wika. 46 00:02:38,520 --> 00:02:40,260 >> Huwag mag-alala masyadong maraming tungkol sa na kung hindi mo alam ang term. 47 00:02:40,260 --> 00:02:42,676 Subalit mayroong isang pagkakaiba pagitan ng makapangyarihan, paturol, 48 00:02:42,676 --> 00:02:43,810 at functional. 49 00:02:43,810 --> 00:02:47,600 Hindi maiwasan lamang ay nangangahulugan na gagawin mo pahayag na karaniwang command. 50 00:02:47,600 --> 00:02:52,340 At pagkatapos ay ang interpreter o ang sumusunod sa computer ang mga ito ng isa-isa. 51 00:02:52,340 --> 00:02:56,630 Mahina Ito ay nag-type, may mga walang pagdeklara type sa R. 52 00:02:56,630 --> 00:02:59,130 >> At pagkatapos ay ang linya pagitan ng iba't-ibang uri 53 00:02:59,130 --> 00:03:03,920 ay medyo mas maluwag kaysa sa ang mga ito ay sa C, halimbawa. 54 00:03:03,920 --> 00:03:06,450 At tulad ng sinabi ko may mga napaka malawak na mga kagamitan 55 00:03:06,450 --> 00:03:15,610 para sa graphing, para sa statistical pagtatasa, para sa data mining. 56 00:03:15,610 --> 00:03:19,540 Ang mga ito ay parehong binuo sa wika at, tulad ng sinabi sa video, 57 00:03:19,540 --> 00:03:23,680 libu-libong mga third party na aklatan na Maaari mong i-download at gamitin ng libre 58 00:03:23,680 --> 00:03:25,340 may tunay maluwag kasunduan sa lisensiya. 59 00:03:25,340 --> 00:03:28,800 60 00:03:28,800 --> 00:03:31,500 >> Kaya sa pangkalahatan, Gusto pinapayo na pagtingin mo sa mga ito ng dalawang mga libro 61 00:03:31,500 --> 00:03:34,610 kung ikaw ay pagpunta sa trabaho sa R. Isa ng mga ito ay ang opisyal na R baguhan 62 00:03:34,610 --> 00:03:35,110 gabayan. 63 00:03:35,110 --> 00:03:38,660 Ito ay pinananatili sa pamamagitan ng core developer ng R. 64 00:03:38,660 --> 00:03:42,400 Maaari mong i-download itong muli, walang singilin at legal sa link na iyon doon. 65 00:03:42,400 --> 00:03:45,430 66 00:03:45,430 --> 00:03:49,869 Lahat ng mga slide ay pagpunta sa pumunta up sa internet, sa CS50 website 67 00:03:49,869 --> 00:03:50,660 matapos na ito ay tapos na. 68 00:03:50,660 --> 00:03:53,690 Kaya hindi na kailangan upang kopyahin pababa frantically bagay. 69 00:03:53,690 --> 00:03:56,800 >> Ang iba pang isa ay isang aklat-aralin sa pamamagitan ng Cosma Shalizi, 70 00:03:56,800 --> 00:04:00,100 na propesor istatistika sa Carnegie Mellon, na tinatawag na Advanced Data 71 00:04:00,100 --> 00:04:02,160 Pagsusuri mula sa isang Elementary Point of View. 72 00:04:02,160 --> 00:04:04,010 Ito ay hindi lalung-lalo na ng R book. 73 00:04:04,010 --> 00:04:07,130 Ito ay isang libro na mga istatistika at mga ito ay isang aklat na pagsusuri ng data. 74 00:04:07,130 --> 00:04:11,990 Ngunit ito ay napaka-access sa mga tao na Mayroon isang maliit ng kaalaman ng mga istatistika. 75 00:04:11,990 --> 00:04:13,750 >> Hindi ko na kinuha ng isang pormal na kurso. 76 00:04:13,750 --> 00:04:17,269 Alam ko lang bits at piraso mula sa iba't ibang magkakatulad paksa 77 00:04:17,269 --> 00:04:18,579 na kinuha ko na kurso sa. 78 00:04:18,579 --> 00:04:21,839 At ako ay maaaring maunawaan ito ganap na ganap na rin. 79 00:04:21,839 --> 00:04:25,630 >> Ang lahat ng mga numero ay ibinigay sa R. Sila ay ginawa sa R 80 00:04:25,630 --> 00:04:30,280 at sila rin ay may mga listahan ng code sa ibaba ng bawat figure na sabihin sa iyo 81 00:04:30,280 --> 00:04:33,270 paano gumawa ka ng bawat figure na may R code. 82 00:04:33,270 --> 00:04:37,400 At iyan ay lubhang kapaki-pakinabang kung ikaw ay sinusubukan upang tularan 83 00:04:37,400 --> 00:04:38,650 ilang figure na nakikita mo sa isang libro. 84 00:04:38,650 --> 00:04:47,840 >> At muli libreng pag-download stat.cmu.edu/cshalizi/ Paumanhin, 85 00:04:47,840 --> 00:04:50,230 na dapat ay slash tilde cshalizi. 86 00:04:50,230 --> 00:04:53,150 Kukunin ko siguraduhin na tama na kapag ang opisyal na mga slide pumunta up. 87 00:04:53,150 --> 00:04:57,000 / ADAfaEPoV na lang ang acronym ng pamagat ng libro. 88 00:04:57,000 --> 00:04:59,850 89 00:04:59,850 --> 00:05:02,500 >> Kaya pangkalahatang caveats-- R may isang pulutong ng mga kakayahan. 90 00:05:02,500 --> 00:05:05,331 Lamang ako ng pagpunta sa ma-cover sa ibabaw ng isang pulutong ng mga bagay-bagay. 91 00:05:05,331 --> 00:05:08,580 Gayundin sa unang bahagi ng seminar ay magiging isang bagay ng isang dump data. 92 00:05:08,580 --> 00:05:11,437 Ako ay lubos na paumanhin tungkol sa na. 93 00:05:11,437 --> 00:05:13,770 Karaniwang, pupuntahan ko kitang ipakilala sa isang pulutong ng mga bagay-bagay 94 00:05:13,770 --> 00:05:15,350 karapatan off ang bat, pagpunta sa lalong madaling panahon. 95 00:05:15,350 --> 00:05:17,058 At pagkatapos makuha namin sa ang masayang bahagi, na kung saan ay 96 00:05:17,058 --> 00:05:20,570 ang demo kung saan maaari kong ipakita sa iyo ang lahat ng bagay na namin ang uusapang tungkol sa screen. 97 00:05:20,570 --> 00:05:23,321 At maaari mong i-play sa paligid sa iyong sarili. 98 00:05:23,321 --> 00:05:26,070 Kaya may pagpunta sa maging isang pulutong ng teknikal na mga bagay-bagay na itinapon up sa dito. 99 00:05:26,070 --> 00:05:28,060 Huwag mag-alala tungkol sa pagkopya ng lahat na pababa. 100 00:05:28,060 --> 00:05:31,740 Dahil A, maaari kang makakuha ng lahat ng mga bagay-bagay sa CS50 website mamaya. 101 00:05:31,740 --> 00:05:37,780 At B, ito ay hindi tunay na mahalaga kabisaduhin ito mula sa mga slide. 102 00:05:37,780 --> 00:05:40,462 Ito ay mas mahalaga na makakuha ka ilang intuitive pasilidad sa mga ito 103 00:05:40,462 --> 00:05:44,220 at na nanggagaling sa pag-play lamang sa paligid. 104 00:05:44,220 --> 00:05:45,720 >> Kaya bakit gamitin R? 105 00:05:45,720 --> 00:05:49,440 Talaga, kung mayroon kang isang proyekto na nagsasangkot pagmimina malaking hanay ng data, ang data 106 00:05:49,440 --> 00:05:52,664 visualization, ikaw ay dapat gumamit R. Kung ikaw ay 107 00:05:52,664 --> 00:05:55,830 ginagawa kumplikado statistical pinag-aaralan, na magiging mahirap na sa Excel, 108 00:05:55,830 --> 00:05:58,010 halimbawa, ay ito ding good-- din 109 00:05:58,010 --> 00:06:00,506 kung ikaw ay gumagawa statistical analysis na automated. 110 00:06:00,506 --> 00:06:02,130 Sabihin nating ikaw ay pagpapanatili ng isang website. 111 00:06:02,130 --> 00:06:06,320 At gusto mong basahin ang mga log ng server araw-araw at ilista ang ilang mga listahan, 112 00:06:06,320 --> 00:06:10,320 tulad ng mga nangungunang bansa na ang iyong mga user ay nagmumula, 113 00:06:10,320 --> 00:06:15,100 ng ilang mga istatistika ng buod sa kung gaano katagal gastusin nila sa iyong website o anuman. 114 00:06:15,100 --> 00:06:16,910 At gusto mong patakbuhin ang mga ito araw-araw. 115 00:06:16,910 --> 00:06:20,280 >> Ngayon kung ikaw ay gumagawa ng ito sa Excel, gusto mo na kailangang pumunta sa mga mag-log ng iyong server, 116 00:06:20,280 --> 00:06:23,490 import na sa isang Excel spreadsheet data, 117 00:06:23,490 --> 00:06:24,910 tumakbo ang lahat ng analysis ng mano-mano. 118 00:06:24,910 --> 00:06:27,100 Sa R, maaari mo lamang na magsulat ng isa script. 119 00:06:27,100 --> 00:06:29,520 Schedule ito na tumakbo sa bawat araw mula sa iyong operating system. 120 00:06:29,520 --> 00:06:33,657 At pagkatapos ay sa bawat gabi at 2:00 AM, o kailan mo i-schedule ito na tumakbo, 121 00:06:33,657 --> 00:06:35,990 ito ay tumingin sa pamamagitan ng iyong internet trapiko para sa araw na iyon. 122 00:06:35,990 --> 00:06:39,010 At pagkatapos ay sa pamamagitan ng susunod na araw, makikita mo magkaroon ng ganitong makintab, bagong ulat 123 00:06:39,010 --> 00:06:41,710 o ano pa man sa lahat ng mga impormasyon na iyong hiniling para sa. 124 00:06:41,710 --> 00:06:44,960 125 00:06:44,960 --> 00:06:50,217 >> Kaya talaga R ay para sa Cisco programming kumpara analysis Cisco. 126 00:06:50,217 --> 00:06:51,050 Paunang ay tapos na. 127 00:06:51,050 --> 00:06:53,104 Sabihin makakuha sa ang tunay na bagay. 128 00:06:53,104 --> 00:06:55,020 Kaya may tatlong real uri sa wika. 129 00:06:55,020 --> 00:06:56,120 May type numeric. 130 00:06:56,120 --> 00:07:01,250 May mga uri ng isang pagkakaiba sa pagitan ng integer at lumulutang na puntos, 131 00:07:01,250 --> 00:07:02,769 ngunit hindi talaga. 132 00:07:02,769 --> 00:07:04,560 May isang character type, na kung saan ay mga string. 133 00:07:04,560 --> 00:07:07,100 At mayroong isang lohikal type, na kung saan ay Booleans. 134 00:07:07,100 --> 00:07:11,080 >> At maaari mong i-convert sa pagitan ng mga uri paggamit ng mga function bilang numero, 135 00:07:11,080 --> 00:07:15,220 bilang ng character, tulad ng lohikal. 136 00:07:15,220 --> 00:07:17,510 Kung tumawag ka, halimbawa, bilang numero sa isang string, 137 00:07:17,510 --> 00:07:20,030 ito ay subukan na basahin na string bilang isang numero, sa parehong paraan 138 00:07:20,030 --> 00:07:25,897 na a2i at scanf gawin, at C. Kung tumawag ka bilang numero sa totoo o hindi 139 00:07:25,897 --> 00:07:26,980 Iko-convert ito sa 1 o 0. 140 00:07:26,980 --> 00:07:29,110 Kung tumawag ka ng karakter sa anumang bagay na ito makikita 141 00:07:29,110 --> 00:07:32,550 convert na sa isang string na representasyon. 142 00:07:32,550 --> 00:07:34,990 >> At pagkatapos ay may mga vectors at matrices. 143 00:07:34,990 --> 00:07:37,580 Kaya vectors talaga 1 dimensional array. 144 00:07:37,580 --> 00:07:40,600 Ang mga ito ay kung ano ang tawag namin sa mga array in C. Matrices, 2 dimensional array. 145 00:07:40,600 --> 00:07:42,350 At pagkatapos ay mas mataas dimensional array maaari mong 146 00:07:42,350 --> 00:07:48,560 may 3, 4, 5 dimensyon o kahit na ano ng numerong halaga, ng mga string, 147 00:07:48,560 --> 00:07:52,860 ng mga lohikal na mga halaga. 148 00:07:52,860 --> 00:07:55,380 >> Mayroon ka ring mga listahan kung saan ay isang uri ng nag-uugnay array. 149 00:07:55,380 --> 00:07:57,390 Magagawa ko sa na ng kaunti. 150 00:07:57,390 --> 00:07:59,390 Kaya ang isang mahalagang bagay na biyahe up ang mga tao sa R 151 00:07:59,390 --> 00:08:01,470 ay na may mga walang real, purong atomic uri. 152 00:08:01,470 --> 00:08:05,870 Walang aktwal na pagkakaiba sa pagitan ng isang numero, tulad ng isang numerong halaga, 153 00:08:05,870 --> 00:08:07,920 at isang listahan ng mga numerong halaga. 154 00:08:07,920 --> 00:08:12,370 Numerong halaga ay aktwal na ang parehong bilang ng mga vectors ng haba 1. 155 00:08:12,370 --> 00:08:14,959 At ito ay isang bilang ng mahalagang epekto. 156 00:08:14,959 --> 00:08:17,500 One, ito ay nangangahulugan na maaari mong gawin mga bagay-bagay na tunay madali na kasangkot 157 00:08:17,500 --> 00:08:21,037 tulad ng pagdadagdag ng isang numero sa isang vector. 158 00:08:21,037 --> 00:08:23,120 R ay isa lamang figure kung ano ang ibig mong sabihin sa pamamagitan ng na. 159 00:08:23,120 --> 00:08:24,610 At makikita ko na sa na sa isang segundo. 160 00:08:24,610 --> 00:08:27,930 Ito rin ay nangangahulugan na walang paraan para sa uri checker-- sa lawak 161 00:08:27,930 --> 00:08:30,530 na ang isang bagay tulad na umiiral sa R-- upang sabihin sa 162 00:08:30,530 --> 00:08:33,780 kapag ikaw na ang pumasa sa isang halaga kapag ito inaasahan isang array o vice versa. 163 00:08:33,780 --> 00:08:39,159 At na maaaring maging sanhi ng ilang mga gansal problema na ako ang bumangga sa kapag 164 00:08:39,159 --> 00:08:42,252 Ako ay gumagamit ng R sa panahon ng aking trabaho tag-init. 165 00:08:42,252 --> 00:08:43,710 At walang mga array mixed-type. 166 00:08:43,710 --> 00:08:46,543 Kaya hindi ka maaaring magkaroon ng isang array ay ang unang elemento ay, hindi ko alam, 167 00:08:46,543 --> 00:08:49,332 ang string "John" at ang pangalawang elemento ay number 42. 168 00:08:49,332 --> 00:08:52,540 Kung susubukan mong gawin iyon, pagkatapos ay makukuha mo lahat ng bagay lamang-convert sa isang string. 169 00:08:52,540 --> 00:08:54,760 Kaya mayroon kaming string John, string 42. 170 00:08:54,760 --> 00:08:58,250 171 00:08:58,250 --> 00:09:02,025 >> Kaya hindi pangkaraniwang syntactic Mga Tampok ng karamihan ng R syntax ay halos katulad sa C. 172 00:09:02,025 --> 00:09:04,690 May ilang mahalagang pagkakaiba. 173 00:09:04,690 --> 00:09:05,620 Typing ay masyadong mahina. 174 00:09:05,620 --> 00:09:07,360 Kaya walang mga variable declarations. 175 00:09:07,360 --> 00:09:12,670 Pagtatalaga ay gumagamit ng mga kakaibang error operator mas mababa sa gitling. 176 00:09:12,670 --> 00:09:15,340 Ang mga komento ay may marka hash. 177 00:09:15,340 --> 00:09:19,230 Hulaan ko ngayon araw tinatawag namin itong hashtag kahit na hindi talaga accurate-- hindi 178 00:09:19,230 --> 00:09:21,810 ang double slash. 179 00:09:21,810 --> 00:09:24,710 >> Modular residues ay may %% palatandaan. 180 00:09:24,710 --> 00:09:30,172 Integer division ay may% /% na kung saan ay lubhang mahirap na basahin kapag ito ay inaasahang 181 00:09:30,172 --> 00:09:30,880 up sa screen. 182 00:09:30,880 --> 00:09:34,150 183 00:09:34,150 --> 00:09:37,200 Maaari kang makakuha ng mga saklaw ng integer sa colon. 184 00:09:37,200 --> 00:09:41,840 Kaya 2,5 ay magbibigay sa iyo ng isang vector ng lahat ng mga numero 2 hanggang 5. 185 00:09:41,840 --> 00:09:44,530 >> Ang mga array ay one-index, na screws ng isang pulutong ng mga tao 186 00:09:44,530 --> 00:09:47,540 up kung ang mga ito mula sa mas tipikal na mga programming languages, 187 00:09:47,540 --> 00:09:50,450 tulad ng C, kung saan karamihan bagay na ito ay zero-index. 188 00:09:50,450 --> 00:09:54,420 Muli, ito ay kung saan heritage R bilang isang wika para sa mga tulad ng hindi 189 00:09:54,420 --> 00:09:56,560 propesyonal na programmer ay sa. 190 00:09:56,560 --> 00:09:59,680 Kung ikaw ay isang sociologist o isang ekonomista o isang bagay 191 00:09:59,680 --> 00:10:01,980 at sinusubukan mong gamitin ang R talaga bilang pandagdag 192 00:10:01,980 --> 00:10:03,832 sa iyong mas mahalaga propesyonal na trabaho, 193 00:10:03,832 --> 00:10:06,040 ikaw ay pagpunta upang mahanap one-index ng mas natural ng kaunti. 194 00:10:06,040 --> 00:10:09,890 Dahil simulan mo bilangin sa 1 sa araw-araw na buhay, hindi 0. 195 00:10:09,890 --> 00:10:13,260 >> Para-loop, ito ay katulad ng ang foreach bumuo sa PHP, 196 00:10:13,260 --> 00:10:17,090 na kung saan makakakuha ka ng upang matuto in-- pretty sa lalong madaling panahon. 197 00:10:17,090 --> 00:10:22,540 Alin ang para sa mga halaga sa vector at pagkatapos ay maaari mong gawin ang mga bagay na may halaga. 198 00:10:22,540 --> 00:10:24,040 Madla: Iyan ay lumapit sa panayam. 199 00:10:24,040 --> 00:10:26,248 CONNOR HARRIS: Oh, na ang magkaroon ng panayam, excellent. 200 00:10:26,248 --> 00:10:29,815 Madla: assignment Ang, ito ay dapat na ituro mula kanan pakaliwa? 201 00:10:29,815 --> 00:10:31,440 CONNOR HARRIS: Mula sa kanan pakaliwa, yes. 202 00:10:31,440 --> 00:10:34,720 Maaari mong isipin na ito bilang ang mga halaga sa kanan shoved sa variable 203 00:10:34,720 --> 00:10:36,240 sa kaliwa. 204 00:10:36,240 --> 00:10:36,781 Madla: OK. 205 00:10:36,781 --> 00:10:39,770 206 00:10:39,770 --> 00:10:42,330 >> CONNOR HARRIS: At sa wakas function na syntax ay isang medyo kakaiba. 207 00:10:42,330 --> 00:10:48,460 Mayroon kang ang pangalan ng function foo, itinalaga to function keyword na ito, na sinusundan 208 00:10:48,460 --> 00:10:51,530 sa pamamagitan ng lahat ng mga argumento at pagkatapos ay ang katawan ng function matapos na. 209 00:10:51,530 --> 00:10:53,280 Muli ang mga bagay na maaaring tila medyo kakaiba. 210 00:10:53,280 --> 00:10:57,181 Makikita nila ang naging pangalawang kalikasan matapos trabaho sa inyo ang wika para sa isang bit. 211 00:10:57,181 --> 00:10:58,930 Kaya vectors, ang mga paraan kang bumuo ng isang vector 212 00:10:58,930 --> 00:11:04,550 ay ikaw type C, na kung saan ay ang isang keyword, at pagkatapos ay lahat ng mga numero na nais mong o mga string 213 00:11:04,550 --> 00:11:06,490 o kahit ano. 214 00:11:06,490 --> 00:11:07,995 Pangangatwiran din vectors. 215 00:11:07,995 --> 00:11:09,620 Ngunit ang mga resulta na array ay makakakuha ng pipi. 216 00:11:09,620 --> 00:11:14,385 Kaya hindi ka maaaring magkaroon ng mga array kung saan ang ilang mga elemento ay solong numero 217 00:11:14,385 --> 00:11:17,010 at ang ilang mga elemento ay array sa kanilang sarili. 218 00:11:17,010 --> 00:11:20,010 >> Kaya kung susubukan mo upang bumuo ng isang array ay ang unang elemento ay 4 219 00:11:20,010 --> 00:11:22,370 at ang pangalawang elemento ay ang array 3,5 makikita mo 220 00:11:22,370 --> 00:11:25,890 lamang makakuha ng isang array tatlong mga sangkap, 4,3,5. 221 00:11:25,890 --> 00:11:27,760 Hindi sila maaaring maging ng halo-halong uri. 222 00:11:27,760 --> 00:11:32,290 Kung susubukan mong basahin o sumulat sa labas ng hangganan ng isang vector 223 00:11:32,290 --> 00:11:36,640 makakakuha ka ng ganitong halaga na tinatawag NA isang na ang ibig sabihin para sa isang nawawalang halaga. 224 00:11:36,640 --> 00:11:39,900 At ito ay inilaan para sa tulad statisticians na 225 00:11:39,900 --> 00:11:43,080 ay nagtatrabaho sa mga hindi kumpletong hanay ng data. 226 00:11:43,080 --> 00:11:46,460 >> Kung mag-apply ka ng isang function na ay dapat upang kumuha lamang ng isang numero sa isang array 227 00:11:46,460 --> 00:11:49,220 pagkatapos ay kung ano ang makukuha mo ay, ang function na ay mapa sa ibabaw ng array. 228 00:11:49,220 --> 00:11:52,130 Kaya kung hayaan ang iyong mga pag-andar natin tumatagal isang numero at babalik ito square. 229 00:11:52,130 --> 00:11:58,170 Mag-apply ka na sa array 2,3,5 Ano ang makukuha mo ay ang array 4,9,25. 230 00:11:58,170 --> 00:12:00,010 >> At iyan ay lubhang kapaki-pakinabang dahil ito ay nangangahulugan sa iyo 231 00:12:00,010 --> 00:12:03,374 Hindi mo na kailangang isulat para sa mga loop para sa paggawa ng napaka-simpleng bagay tulad ng pag-aaplay 232 00:12:03,374 --> 00:12:05,040 isang function sa lahat ng mga miyembro ng isang set ng data. 233 00:12:05,040 --> 00:12:08,557 Aling kung ikaw ay nagtatrabaho sa mga malalaking set ng data, kailangan mong gawin ng maraming. 234 00:12:08,557 --> 00:12:10,390 Binary function ay applied entry sa pamamagitan ng entry. 235 00:12:10,390 --> 00:12:12,430 Magagawa ko na sa na. 236 00:12:12,430 --> 00:12:16,750 Maaari mong ma-access ang mga ito gamit ang mga array o vectors na may mga square bracket. 237 00:12:16,750 --> 00:12:22,300 Kaya pangalan vector square bracket 1 ay magbibigay sa iyo ang unang elemento. 238 00:12:22,300 --> 00:12:25,510 Pangalan ng Vector square bracket 2 ay magbibigay sa iyo ang pangalawang elemento. 239 00:12:25,510 --> 00:12:27,530 >> Maaari mong pumasa sa isang vector ng indeks at bibigyan ka 240 00:12:27,530 --> 00:12:29,640 makabalik out talaga ng isang sub factor. 241 00:12:29,640 --> 00:12:34,990 Kaya maaari mong gawin vector name bracket C, 2,4 at makakakuha ka ng isang vector na naglalaman ng 242 00:12:34,990 --> 00:12:38,804 ang pangalawa at ika-apat na elemento ng array. 243 00:12:38,804 --> 00:12:40,720 At kung gusto mo lamang ng isang mabilis na buod istatistika 244 00:12:40,720 --> 00:12:47,529 ng isang vector tulad interquartile hanay, panggitna, maximum, ano man, 245 00:12:47,529 --> 00:12:49,820 maaari mong i-type lamang ang buod Pangalan ng vector at makakuha ng na-out. 246 00:12:49,820 --> 00:12:52,680 Iyan ay hindi tunay na kapaki-pakinabang sa programming ngunit kung ikaw ay naglalaro 247 00:12:52,680 --> 00:12:55,990 sa paligid ng mga hanay ng data, ito ay magaling. 248 00:12:55,990 --> 00:12:58,650 >> Matrices-- talaga mas mataas dimensional array. 249 00:12:58,650 --> 00:13:01,190 Ang mga ito ay ang mga espesyal na notasyon syntax. 250 00:13:01,190 --> 00:13:07,620 Matrix sa isang array na nakukuha ng puno in-- Paumanhin, matrix na may data, 251 00:13:07,620 --> 00:13:09,780 bilang ng mga hilera, ang bilang ng mga haligi. 252 00:13:09,780 --> 00:13:13,180 Kapag mayroon kang ilang data, punan ang mga ito sa array talaga pagpunta sa itaas sa ibaba 253 00:13:13,180 --> 00:13:13,380 unang. 254 00:13:13,380 --> 00:13:14,190 Pagkatapos kaliwa papuntang kanan. 255 00:13:14,190 --> 00:13:15,030 Kaya, tulad ng. 256 00:13:15,030 --> 00:13:17,809 257 00:13:17,809 --> 00:13:19,600 At R ay may built in multiplications matrix, 258 00:13:19,600 --> 00:13:24,310 parang multo agnas, Diagonalization, ng maraming mga bagay-bagay. 259 00:13:24,310 --> 00:13:27,785 Kung nais mong mas mataas na sukat array, kaya 3, 4, 5, 260 00:13:27,785 --> 00:13:29,410 o kahit na ano na sukat na maaari mong gawin iyon. 261 00:13:29,410 --> 00:13:34,400 Ang syntax ay array dim katumbas c, pagkatapos ay ang listahan ng mga sukat. 262 00:13:34,400 --> 00:13:38,620 Kaya kung nais mong ang isang 4 dimensional array may sukat 4, 7, 8, 9, array, 263 00:13:38,620 --> 00:13:45,470 dim katumbas c (4,7,8,9). 264 00:13:45,470 --> 00:13:51,180 >> Ma-access mo single mga halaga sa loob ng mga braket unang entry comma pangalawang entry. 265 00:13:51,180 --> 00:13:54,870 Maaari kang makakuha ng buong mga hiwa ng mga hilera o haligi. 266 00:13:54,870 --> 00:13:59,900 Gamit ang hindi kumpletong syntax ito ay hilera lamang bilang kuwit o comma column 267 00:13:59,900 --> 00:14:00,400 number. 268 00:14:00,400 --> 00:14:02,874 269 00:14:02,874 --> 00:14:04,540 Kaya listahan ay isang uri ng nauugnay array. 270 00:14:04,540 --> 00:14:06,360 Sila ay may kanilang sariling mga syntax dito. 271 00:14:06,360 --> 00:14:08,320 Muli hindi frantically kopyahin ang lahat ng down na ito. 272 00:14:08,320 --> 00:14:11,370 Ito ay upang lamang na ang mga tao pagpunta sa pamamagitan ng mga slide sa ibang pagkakataon 273 00:14:11,370 --> 00:14:13,089 Mayroon ito ng lahat sa isang magandang reference. 274 00:14:13,089 --> 00:14:16,130 At ito ay naging napaka-natural-sabay Ako tunay na paglalakad sa pamamagitan ng demo. 275 00:14:16,130 --> 00:14:19,295 276 00:14:19,295 --> 00:14:20,920 Kaya mga listahan ng isang karaniwang nauugnay array. 277 00:14:20,920 --> 00:14:27,040 Maaari mong ma-access ang mga halaga sa Pangalan ng listahan, dollar sign, key. 278 00:14:27,040 --> 00:14:31,370 Kaya kung ang iyong listahan ay pinangalanan foo, pagkatapos ay maaari mong ma-access ito tulad na. 279 00:14:31,370 --> 00:14:37,032 Maaari kang makakuha ng isang buong pair ng key-value sa pamamagitan ng pagpasa sa mga square bracket index. 280 00:14:37,032 --> 00:14:39,240 Kung nabasa mo mula sa isang di-umiiral na key, makakakuha ka ng null. 281 00:14:39,240 --> 00:14:41,150 Hindi ito ay error. 282 00:14:41,150 --> 00:14:43,590 Bagay ay, R ang gaya ng magkano na may null gaya ito maaari. 283 00:14:43,590 --> 00:14:46,580 At ito ay maaaring nangangahulugan na kung ikaw ay hindi umaasa upang makakuha null out 284 00:14:46,580 --> 00:14:51,840 ng ilang mga listahan read, makakakuha ka ng ilang mahuhulaan error sa mas ibaba pa 285 00:14:51,840 --> 00:14:52,620 Ang linya. 286 00:14:52,620 --> 00:14:54,890 >> Nangyari ito sa akin ng aking kapag summer job ako ay gumagamit ng R 287 00:14:54,890 --> 00:14:58,410 kung saan ako ay nagbago kung paano ang isang tiyak na list ay tinukoy sa isang lugar 288 00:14:58,410 --> 00:15:05,410 ngunit hindi baguhin sa ibang pagkakataon sa code na basahin ang mga halaga mula sa mga ito. 289 00:15:05,410 --> 00:15:10,190 At kaya kung ano ang nangyari noon ay ako ay pagbabasa null values ​​labas ng listahan na ito, 290 00:15:10,190 --> 00:15:13,090 pagdaan ng mga ito sa pag-andar, at sa pagiging napaka-lito 291 00:15:13,090 --> 00:15:16,000 kapag ang nakuha ko ang lahat ng uri ng random infinities pagtatabas up 292 00:15:16,000 --> 00:15:16,790 sa function na ito. 293 00:15:16,790 --> 00:15:20,730 Dahil kung mag-apply ka ng ilang mga maximum o minimum function na null, 294 00:15:20,730 --> 00:15:22,570 makakakuha ka ng mga walang katapusan na mga halaga out. 295 00:15:22,570 --> 00:15:26,400 296 00:15:26,400 --> 00:15:29,180 >> Frames Data, ang mga ito ay isang subclass ng listahan. 297 00:15:29,180 --> 00:15:31,170 Bawat halaga ay isang vector ng parehong haba. 298 00:15:31,170 --> 00:15:34,220 At sila ay ginagamit para sa pagtatanghal, talaga, mga talahanayan ng data. 299 00:15:34,220 --> 00:15:36,175 Mayroong ito Pinasimulan syntax. 300 00:15:36,175 --> 00:15:38,800 Ito ay ang lahat, muli, maaaring marami mas malinaw kapag nakarating ka na sa mga demo. 301 00:15:38,800 --> 00:15:42,240 302 00:15:42,240 --> 00:15:44,240 At ang magandang bagay tungkol sa frames data ay na kayo 303 00:15:44,240 --> 00:15:49,380 ay maaaring magbigay ng pangalan sa lahat ng mga haligi at mga pangalan sa lahat ng mga hilera. 304 00:15:49,380 --> 00:15:53,890 At kaya na gumagawa ng pag-access mga ito ng kaunti sa pakikipagkaibigan. 305 00:15:53,890 --> 00:15:59,130 Gayundin ito ay kung paano karamihan sa mga function na basahin sa data mula sa mga spreadsheet sa Excel 306 00:15:59,130 --> 00:16:03,820 o mula sa mga file ng teksto, halimbawa, ay basahin sa kanilang data. 307 00:16:03,820 --> 00:16:07,555 Makikita nila ilagay ito sa ilang uri ng mga frame data. 308 00:16:07,555 --> 00:16:09,680 Kaya functions-- ang mga function syntax ay isang medyo kakaiba. 309 00:16:09,680 --> 00:16:16,160 Muli ito ay ang pangalan ng function, magtalaga, function na keyword at pagkatapos ay 310 00:16:16,160 --> 00:16:17,900 ang listahan ng mga argumento. 311 00:16:17,900 --> 00:16:24,080 Kaya may ilang mga bagay na maganda tungkol sa kung paano pag-andar magtrabaho dito. 312 00:16:24,080 --> 00:16:28,170 Para sa isa, maaari mong aktwal na magtalaga mga default na halaga sa ilang mga argumento. 313 00:16:28,170 --> 00:16:32,910 Kaya maaari mong sabihin R1 equals-- maaari mong sabihin foo 314 00:16:32,910 --> 00:16:38,290 ay isang function na kung saan ay katumbas ng R1 bagay sa pamamagitan ng default kung gumagamit ang tinutukoy 315 00:16:38,290 --> 00:16:39,090 walang argumento. 316 00:16:39,090 --> 00:16:41,932 Kung hindi man, ito ay ang anumang siya ilagay sa. 317 00:16:41,932 --> 00:16:44,140 At ito ay tunay magaling dahil ang isang pulutong ng aming mga function 318 00:16:44,140 --> 00:16:47,910 Mayroon madalas dose-dosenang o daan-daang mga argumento. 319 00:16:47,910 --> 00:16:51,210 Halimbawa ng mga para sa paglalagay sa graphs o paglalagay sa scatter plots 320 00:16:51,210 --> 00:16:54,430 may argumento na kontrol lahat ng bagay mula sa mga pamagat at ang axis 321 00:16:54,430 --> 00:16:59,512 label sa kulay ng pagbabalik ng mga linya. 322 00:16:59,512 --> 00:17:01,470 At kaya kung hindi mo nais na upang gumawa tukuyin tao 323 00:17:01,470 --> 00:17:04,050 lahat ng isa sa mga daan-daang mga argumento 324 00:17:04,050 --> 00:17:07,674 pagkontrol ng bawat solong aspeto ng isang lagay ng lupa o ng isang pagbabalik o ano man, 325 00:17:07,674 --> 00:17:09,299 ito ay magaling na magkaroon ang mga default na halaga. 326 00:17:09,299 --> 00:17:12,700 327 00:17:12,700 --> 00:17:19,146 >> At pagkatapos ay maaari mong tunay isulat ang bilang na nakita mo bumalik dito. 328 00:17:19,146 --> 00:17:22,869 O maghanap ng isang mas mahusay na halimbawa. 329 00:17:22,869 --> 00:17:28,690 Kapag tumawag ka pag-andar maaari mong talagang tawagan ang mga ito gamit ang mga pangalan ng argument. 330 00:17:28,690 --> 00:17:33,919 Kaya narito ang isang halimbawa ng tagapagbuo matrix. 331 00:17:33,919 --> 00:17:34,960 Ito ay tumatagal ng tatlong argumento. 332 00:17:34,960 --> 00:17:36,760 Karaniwan ikaw ay may data, kung saan ay isang vector. 333 00:17:36,760 --> 00:17:38,920 Mayroon kang N hilera, na ay ang bilang ng mga hilera. 334 00:17:38,920 --> 00:17:41,160 Mayroon kang N cols-- bilang ng mga haligi. 335 00:17:41,160 --> 00:17:43,920 Ang bagay ay kung type mo N hilera ay katumbas ng anuman 336 00:17:43,920 --> 00:17:46,520 at N col katumbas anuman kapag ikaw ay pagtawag sa function na ito, 337 00:17:46,520 --> 00:17:47,770 Maaari mong aktwal na ito baligtarin. 338 00:17:47,770 --> 00:17:51,590 Kaya maaari mong una at N row ilagay N col ikalawang at ito ay gumawa ng walang pagkakaiba. 339 00:17:51,590 --> 00:17:54,660 Kaya na ang isang magandang maliit na tampok na ito. 340 00:17:54,660 --> 00:17:56,260 >> Nakatulong ba import at export. 341 00:17:56,260 --> 00:18:00,010 Ito ay maaaring gawin, talaga. 342 00:18:00,010 --> 00:18:03,816 May mga pasilidad na magsulat out din arbitrary R bagay sa isang binary file 343 00:18:03,816 --> 00:18:05,190 at pagkatapos ay basahin ang mga ito pabalik sa ibang pagkakataon. 344 00:18:05,190 --> 00:18:08,030 Alin ang madaling-magamit na kung ikaw ay gumagawa isang malaking interactive session R 345 00:18:08,030 --> 00:18:12,850 at kailangan mo upang i-save ang mga bagay na masyadong mabilis. 346 00:18:12,850 --> 00:18:16,460 Sa pamamagitan ng default R ay may isang nagtatrabaho direktoryo na file na makakuha ng nakasulat na lumabas sa 347 00:18:16,460 --> 00:18:19,410 at basahin pabalik sa mula sa. 348 00:18:19,410 --> 00:18:22,350 Maaari mong makita na may getwg, baguhin ito sa setdw. 349 00:18:22,350 --> 00:18:25,630 Walang lalo na interesante dito 350 00:18:25,630 --> 00:18:28,270 >> Kaya ngayon ang aktwal na mga istatistika stuff-- multilinear pagbabalik. 351 00:18:28,270 --> 00:18:30,960 352 00:18:30,960 --> 00:18:34,910 Kaya ang karaniwang syntax ay isang bit kumplikado. 353 00:18:34,910 --> 00:18:37,260 Ang modelo ay karaniwang isang malaking bagay. 354 00:18:37,260 --> 00:18:39,910 Ito ay makakakuha itinalaga sa LM, kung saan ay isang function na tawag. 355 00:18:39,910 --> 00:18:43,840 Ang unang elemento, ang y tilde x1 plus kahit anong. 356 00:18:43,840 --> 00:18:46,574 357 00:18:46,574 --> 00:18:47,990 Aking syntax dito ay isang bit nakalilito. 358 00:18:47,990 --> 00:18:49,490 Ako ay lubos Paumanhin, ito ay ang karaniwang paraan 359 00:18:49,490 --> 00:18:50,990 na computer science libro gawin ito. 360 00:18:50,990 --> 00:18:54,890 Ngunit ito ay isang medyo kakaiba. 361 00:18:54,890 --> 00:18:58,200 >> Kaya talaga, ito ay lm panaklong, unang item 362 00:18:58,200 --> 00:19:06,730 ay variable-- Paumanhin, umaasa variable tilde x1 plus x2 plus 363 00:19:06,730 --> 00:19:10,910 subalit maraming mga independiyenteng variable na mayroon ka. 364 00:19:10,910 --> 00:19:14,240 At pagkatapos ay ang mga maaaring maging alinman sa vectors, ang lahat ng mga parehong haba. 365 00:19:14,240 --> 00:19:16,220 O maaari silang maging haligi mga header sa isang frame data 366 00:19:16,220 --> 00:19:18,553 na tinukoy mo lang sa pangalawang argumento data frame. 367 00:19:18,553 --> 00:19:23,270 368 00:19:23,270 --> 00:19:26,380 >> Maaari mo ring tukuyin isang mas kumplikadong formula 369 00:19:26,380 --> 00:19:31,990 kaya hindi mo na kailangang mag linearly urong ng isa umaasa variable, 370 00:19:31,990 --> 00:19:34,440 o isa vector sa isang pre-umiiral na mga vector. 371 00:19:34,440 --> 00:19:38,070 Maaari mong gawin, halimbawa, isang vector component y nakalapat plus 1 372 00:19:38,070 --> 00:19:42,100 at pagbalik na laban sa mag-log ng ilang iba pang mga vector. 373 00:19:42,100 --> 00:19:45,200 Maaari mong i-print ang mga buod ng mga modelo na ito command na tinatawag na 374 00:19:45,200 --> 00:19:48,607 summary-- parens buod lamang na modelo. 375 00:19:48,607 --> 00:19:50,190 Muli isang bagay pa ang dapat kong linawin. 376 00:19:50,190 --> 00:19:55,407 377 00:19:55,407 --> 00:19:58,615 May ibang tao na makakuha ng naitama kapag ang mga slide pumunta up sa internet. 378 00:19:58,615 --> 00:20:01,127 379 00:20:01,127 --> 00:20:03,210 Kung gusto mo lamang upang makalkula isang simpleng ugnayan 380 00:20:03,210 --> 00:20:09,170 maaari mong gamitin ang ugnayan vector 1 vector 2 function core. 381 00:20:09,170 --> 00:20:11,856 Pamamaraan ay sa pamamagitan ng default Pearson correlations. 382 00:20:11,856 --> 00:20:13,480 Iyon ang mga standard na mga maaari mong gawin. 383 00:20:13,480 --> 00:20:15,990 Mayroong din Spearman at Kendell correlations 384 00:20:15,990 --> 00:20:19,530 na kung saan ang ilang mga pagkakaiba-iba ng ranggo ugnayan order. 385 00:20:19,530 --> 00:20:23,600 Well hindi sila kalkulahin produkto sandali sa pagitan ng mga vectors sa kanilang sarili, 386 00:20:23,600 --> 00:20:28,511 ngunit ng ranggo ang mga order ng vector ni. 387 00:20:28,511 --> 00:20:29,510 Ipapaliwanag ko na mamaya. 388 00:20:29,510 --> 00:20:30,120 >> Madla: Mabilis na tanong 389 00:20:30,120 --> 00:20:30,360 >> CONNER HARRIS: Oo naman. 390 00:20:30,360 --> 00:20:33,151 >> Madla: Kaya kapag kayo ay pagkalkula para sa mga simpleng correlations gawin 391 00:20:33,151 --> 00:20:37,655 akala mo na may isang statistical kabuluhan sa ugnayan? 392 00:20:37,655 --> 00:20:39,030 CONNER HARRIS: Hindi mo na kailangang. 393 00:20:39,030 --> 00:20:41,840 394 00:20:41,840 --> 00:20:43,960 Isang lm ay karaniwang isang makina lamang. 395 00:20:43,960 --> 00:20:47,690 Aabutin sa dalawang bagay at ito ay sabihin ang 396 00:20:47,690 --> 00:20:49,770 coefficients para sa pinakamahusay na akma linya. 397 00:20:49,770 --> 00:20:52,310 Ito din ang mga ulat standard error sa mga coefficients. 398 00:20:52,310 --> 00:20:55,865 At ito ay magsasabi sa iyo, tulad ay ang maharang makabuluhan sa istatistika 399 00:20:55,865 --> 00:20:56,740 o pagkakaiba mula sa 0. 400 00:20:56,740 --> 00:20:59,400 Ay ang slope sa mga pinakamahusay na fit line istatistika 401 00:20:59,400 --> 00:21:01,510 naiiba mula sa zero, at iba pa. 402 00:21:01,510 --> 00:21:06,260 Kaya ito Ipinagpapalagay wala, sa palagay ko ay pinakamahusay na sagot sa iyong katanungan. 403 00:21:06,260 --> 00:21:07,410 SIGE. 404 00:21:07,410 --> 00:21:14,650 >> Plotting-- kaya ang pangunahing dahilan dapat sa iyo gamitin R, tulad multilinear pagbabalik. 405 00:21:14,650 --> 00:21:17,320 Talaga lahat ng wika ay may ilang mga pasilidad para sa na. 406 00:21:17,320 --> 00:21:21,365 At syntax matapat R para sa pagbabalik ay isang bit arcane. 407 00:21:21,365 --> 00:21:22,990 Ngunit paglalagay ay kung saan ito ay talagang kumikinang. 408 00:21:22,990 --> 00:21:28,090 >> Ang workhorse function ay plot at ito ay tumatagal ng dalawang vectors, x at y. 409 00:21:28,090 --> 00:21:33,010 At pagkatapos ay ang ellipses ibig sabihin para sa isang napaka malaking bilang ng mga opsyonal na mga argumento na 410 00:21:33,010 --> 00:21:39,190 kontrolin ang lahat ng bagay mula sa mga pamagat sa mga kulay ng iba't-ibang linya o iba't-ibang mga puntos, 411 00:21:39,190 --> 00:21:40,200 sa mga uri ng balangkas. 412 00:21:40,200 --> 00:21:42,250 Maaari kang magkaroon ng scatter plots o linya plots. 413 00:21:42,250 --> 00:21:47,900 414 00:21:47,900 --> 00:21:49,710 >> [Hindi marinig] 2 vectors ng parehong haba. 415 00:21:49,710 --> 00:21:53,780 Maaari mong pangunahan sa ilakip data frame sa iyong script. 416 00:21:53,780 --> 00:22:01,220 At ito ay nagpapahintulot sa inyo na gamitin mo lamang column mga header sa halip ng hiwalay na vectors. 417 00:22:01,220 --> 00:22:05,410 Maaari kang magdagdag ng pinakamahusay na angkop na mga linya at mga lokal na pagbabalik kurva sa iyong graph. 418 00:22:05,410 --> 00:22:09,390 >> Ang mga utos na nakalista dito, AB line at linya, 419 00:22:09,390 --> 00:22:11,640 sa pamamagitan ng default ang mga makakuha ng nakasulat sa mga bintana pop up 420 00:22:11,640 --> 00:22:15,560 dahil ito Ipinapalagay na gumagamit ka ng R interactive. 421 00:22:15,560 --> 00:22:17,310 Kung ikaw ay hindi maaari mong magsulat ng dalawang mga file na 422 00:22:17,310 --> 00:22:21,600 ay nasa tunay anumang format na gusto mo. 423 00:22:21,600 --> 00:22:25,410 Paumanhin, mayroon akong isang typo ko lamang natanto. 424 00:22:25,410 --> 00:22:30,887 425 00:22:30,887 --> 00:22:32,720 Kung nais mong buksan isa pang graphical device 426 00:22:32,720 --> 00:22:39,200 maaari mong gamitin ang function na tinatawag na PNG o JPEG o ng maraming iba pang mga format ng imahe. 427 00:22:39,200 --> 00:22:42,319 At maaari mong isulat ang mga graph sa kahit anong file name na tinukoy mo. 428 00:22:42,319 --> 00:22:45,110 Upang kanselahin na mayroon ka na use-- Hindi ko isulat ito sa slide-- 429 00:22:45,110 --> 00:22:49,650 ngunit may isang function na tinatawag na dev dot off na tumatagal ng walang argumento. 430 00:22:49,650 --> 00:22:51,517 >> Pagkatapos ay may mga pasilidad para sa 3D na paglalagay 431 00:22:51,517 --> 00:22:53,350 at para sa tabas paglalagay kung nais mong gumawa ng 432 00:22:53,350 --> 00:22:55,700 graph ng dalawang independiyenteng mga variable. 433 00:22:55,700 --> 00:22:57,150 Hindi ako makakuha ng sa mga ngayon. 434 00:22:57,150 --> 00:22:59,130 >> Mayroon ding ilang mga pasilidad para sa animation 435 00:22:59,130 --> 00:23:01,300 ang mga ito ay karaniwang pinapanatili ng mga third party. 436 00:23:01,300 --> 00:23:06,330 Ang ginawa ko animation na may R graphs, ngunit hindi ko ginagamit ang mga third party 437 00:23:06,330 --> 00:23:06,940 aklatan. 438 00:23:06,940 --> 00:23:09,929 Kaya hindi ko talaga maaaring ibunyag sa kung paano mahusay ang mga ito. 439 00:23:09,929 --> 00:23:12,220 Ano ang pinapayo ko kung gusto mong upang gumawa ng mga animation gamit R 440 00:23:12,220 --> 00:23:16,480 ay maaari mong isulat ang lahat ng ang mga frame para sa mga animation 441 00:23:16,480 --> 00:23:18,470 at pagkatapos ay maaari mong gamitin ang isang third party program-- 442 00:23:18,470 --> 00:23:23,630 tipikal na iyan ay tinatawag FFmpeg o ImageMagick-- tahiin 443 00:23:23,630 --> 00:23:26,540 ang lahat ng iyong mga frame sa isa animation. 444 00:23:26,540 --> 00:23:28,380 >> Kaya oras na para sa demo. 445 00:23:28,380 --> 00:23:31,030 446 00:23:31,030 --> 00:23:37,189 Kaya't kung ikaw ay gumagamit ng anumang Unix tulad ng sistema na kung saan ay Linux BSD ngunit na gumagamit ng BSD. 447 00:23:37,189 --> 00:23:39,730 OS X buksan ang isang terminal na window at type R sa command prompt. 448 00:23:39,730 --> 00:23:42,820 Kung ikaw ay may R studio o ang gusto, na gumagana din. 449 00:23:42,820 --> 00:23:46,270 Para sa mga gumagamit ng Windows ay dapat ikaw ay maaaring makahanap ng R sa iyong Start menu. 450 00:23:46,270 --> 00:23:50,390 Dapat ito ay tinatawag na isang bagay tulad ng R x64 3 point anuman. 451 00:23:50,390 --> 00:23:53,110 Buksan na up doon. 452 00:23:53,110 --> 00:23:58,850 >> Kaya ngayon hayaan mo akong lamang buksan ang isang terminal na window. 453 00:23:58,850 --> 00:24:02,562 Lahat ng karapatan, paghahanap. 454 00:24:02,562 --> 00:24:03,520 Madla: Command-Space 455 00:24:03,520 --> 00:24:06,675 CONNER HARRIS: Command-Space, salamat. 456 00:24:06,675 --> 00:24:10,030 Hindi ko kalimitan gamitin Mac. 457 00:24:10,030 --> 00:24:13,310 Terminal, ipakita bagong window. 458 00:24:13,310 --> 00:24:18,120 Bagong window ay settings basic, R. Kaya dapat kang makakuha ng 459 00:24:18,120 --> 00:24:22,230 isang pambungad na mensahe, ang isang bagay tulad nito. 460 00:24:22,230 --> 00:24:31,060 >> Kaya gumagamit ako ng R interactive. 461 00:24:31,060 --> 00:24:32,719 Maaari ka ring sumulat R script ng kurso. 462 00:24:32,719 --> 00:24:34,510 Talaga script tumakbo ang eksaktong parehong paraan tulad ng 463 00:24:34,510 --> 00:24:40,250 kung ikaw ay upo sa computer pag-type sa bawat linya nang paisa-isa. 464 00:24:40,250 --> 00:24:42,660 Kaya simulan sa pamamagitan ng paggawa ng isang vector ipaalam. 465 00:24:42,660 --> 00:24:46,230 Isang arrow 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 sige. 468 00:24:50,050 --> 00:24:51,630 Maaari ba akong gumawa ng mas malaki ang laki ng font. 469 00:24:51,630 --> 00:24:53,030 >> Madla: Command-Plus 470 00:24:53,030 --> 00:24:53,650 >> CONNER HARRIS: Command-Plus. 471 00:24:53,650 --> 00:24:54,191 Command-Plus. 472 00:24:54,191 --> 00:24:57,610 473 00:24:57,610 --> 00:25:00,370 Lahat ng mga karapatan, kung paano iyon? 474 00:25:00,370 --> 00:25:00,870 Good? 475 00:25:00,870 --> 00:25:01,551 SIGE. 476 00:25:01,551 --> 00:25:03,300 Kaya natin simulan sa pamamagitan ng ipaalam deklarasyon ng isang listahan vector. 477 00:25:03,300 --> 00:25:08,710 Mayroon ng isang, arrow, C 1,2,4. 478 00:25:08,710 --> 00:25:11,181 Maaari naming makita a. 479 00:25:11,181 --> 00:25:12,680 Huwag mag-alala tungkol sa mga bracket doon. 480 00:25:12,680 --> 00:25:18,590 Ang mga bracket ay kaya kung mag-print out ka masyadong mahaba ang mga array, maaari na kung saan namin kayo. 481 00:25:18,590 --> 00:25:26,987 Ang isang halimbawa ay kung ako gusto lang na hanay 2-200. 482 00:25:26,987 --> 00:25:28,820 Kung naka-print na ako ng isang napaka mahabang array, ang mga bracket 483 00:25:28,820 --> 00:25:31,060 ay lamang kaya maaari kong panatilihin subaybayan ng index 484 00:25:31,060 --> 00:25:33,250 kami ay sa kung ako naghahanap sa pamamagitan na ito biswal. 485 00:25:33,250 --> 00:25:36,570 486 00:25:36,570 --> 00:25:38,280 Kaya kahit papaano, kami ay may isang. 487 00:25:38,280 --> 00:25:43,326 >> Kaya sinabi ko bago makipag-ugnayan na array lalong mabuti sa, halimbawa, 488 00:25:43,326 --> 00:25:44,450 unary operations tulad nito. 489 00:25:44,450 --> 00:25:46,500 Kaya kung ano ang sa tingin mo makikita ko makakuha ng kung nagta-type ako ng 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 Right, ngayon kukunin ko na gumawa ito naiiba array. 493 00:25:54,250 --> 00:26:01,650 Sabihin natin na b c 20,40, 80. 494 00:26:01,650 --> 00:26:03,400 Kaya kung ano ang tingin ninyo utos na ito ay gawin? 495 00:26:03,400 --> 00:26:09,962 496 00:26:09,962 --> 00:26:10,670 Idagdag sa mga elemento. 497 00:26:10,670 --> 00:26:14,950 At kaya talaga na kung ano ang ginagawa nito. 498 00:26:14,950 --> 00:26:16,740 Kaya ito ay medyo madali. 499 00:26:16,740 --> 00:26:23,800 Kaya ako kung paano tungkol sa gagawin ko ito. c ay, sabihin nating, ng 6 na beses sa 1 hanggang 10. 500 00:26:23,800 --> 00:26:26,789 501 00:26:26,789 --> 00:26:28,830 Kaya kung ano ang gusto kong makita nilalaman, ang iyong palagay? 502 00:26:28,830 --> 00:26:37,110 503 00:26:37,110 --> 00:26:38,110 Kaya lahat ng mga multiple ng anim. 504 00:26:38,110 --> 00:26:42,170 Ngayon, kung ano ang iyong palagay ang mangyayari kung gagawin ko ito? 505 00:26:42,170 --> 00:26:48,090 Magtatagal ako gumawa ito ng kaunti mas malinaw, c, c. 506 00:26:48,090 --> 00:26:50,365 Kaya kung ano ang mangyayari, gawin mo mag-isip, kung gagawin ko ito? 507 00:26:50,365 --> 00:26:51,488 ng plus c. 508 00:26:51,488 --> 00:26:55,550 509 00:26:55,550 --> 00:26:56,050 [Hindi marinig] 510 00:26:56,050 --> 00:26:58,552 511 00:26:58,552 --> 00:27:02,350 >> Madla: Alinman sa isang error o ito nagdadagdag lang ang unang tatlong mga sangkap. 512 00:27:02,350 --> 00:27:04,510 >> CONNER HARRIS: Hindi lubos. 513 00:27:04,510 --> 00:27:05,522 Ito ay kung ano ang aming nakuha. 514 00:27:05,522 --> 00:27:08,910 Ano ang mangyayari ay isang mas maikling array, isang, got cycled. 515 00:27:08,910 --> 00:27:13,990 Kaya namin nakuha 124, 124, 124. 516 00:27:13,990 --> 00:27:15,710 Oo. 517 00:27:15,710 --> 00:27:18,940 At isa lamang, maaari mong tingnan bago ang pag-uugali, ang isang plus 1, 518 00:27:18,940 --> 00:27:22,190 bilang subclass ng pag-uugali, kung saan pinakamaikling array ay lamang ang bilang 519 00:27:22,190 --> 00:27:25,410 1, kung saan ay isang array isang elemento. 520 00:27:25,410 --> 00:27:27,740 Ako ay magiging lamang sinasabi vector lahat ang oras sa halip ng array, 521 00:27:27,740 --> 00:27:30,290 ano dahil iyon ang r Karaniwang ginagawa babasahin. 522 00:27:30,290 --> 00:27:33,070 Ito ay isang nakatanim c ugali. 523 00:27:33,070 --> 00:27:37,590 >> OK, at kaya ngayon kami ay may array na ito. 524 00:27:37,590 --> 00:27:38,830 Kaya mayroon kaming ito array, c. 525 00:27:38,830 --> 00:27:41,380 Maaari naming makakuha ng buod istatistika sa c, buod c. 526 00:27:41,380 --> 00:27:46,920 527 00:27:46,920 --> 00:27:48,280 At iyan ay nice. 528 00:27:48,280 --> 00:27:51,070 529 00:27:51,070 --> 00:27:52,670 Kaya sabihin gawin ang ilang mga bagay na matrix ngayon hayaan. 530 00:27:52,670 --> 00:27:56,160 Ipagpalagay natin na m ay isang matrix. 531 00:27:56,160 --> 00:27:57,780 Gawin itong isang tatlong sa pamamagitan ng tatlong ng isa. 532 00:27:57,780 --> 00:28:01,630 Kaya nrows katumbas ng 3, at ncols katumbas ng 3. 533 00:28:01,630 --> 00:28:04,190 534 00:28:04,190 --> 00:28:10,710 Ni do-- At para sa data ipaalam kung ano ang kaya sa tingin mo ito ay pagpunta sa gawin? 535 00:28:10,710 --> 00:28:15,310 536 00:28:15,310 --> 00:28:16,580 >> Right, ito ang susunod na isa. 537 00:28:16,580 --> 00:28:17,970 Ito ay nrow at ncolumn. 538 00:28:17,970 --> 00:28:22,164 539 00:28:22,164 --> 00:28:24,580 Kaya kung ano ang nagawa ko ay hindi ko na ipinahayag ng isang tatlong sa pamamagitan ng tatlong matrix 540 00:28:24,580 --> 00:28:26,950 at ako ang pumasa sa isang array siyam na elemento. 541 00:28:26,950 --> 00:28:30,530 Kaya ang logarithm ng lahat ng mga elemento ng isa sa pamamagitan ng siyam. 542 00:28:30,530 --> 00:28:33,400 543 00:28:33,400 --> 00:28:37,285 At ang lahat ng mga halaga punan up ang array-- sorry? 544 00:28:37,285 --> 00:28:38,660 Madla: Ang mga ay base 10 logs? 545 00:28:38,660 --> 00:28:41,284 CONNER HARRIS: Hindi, mag-log ay natural logarithms, kaya base e. 546 00:28:41,284 --> 00:28:44,886 547 00:28:44,886 --> 00:28:47,010 Oo, kung nais mo ang batayang 10 log, tingin ko gusto mong magkaroon ng 548 00:28:47,010 --> 00:28:51,620 mag ano man, na hinati sa pamamagitan log 10. 549 00:28:51,620 --> 00:28:56,750 At upang ang mga data ng [hindi marinig] lamang pinunan ang array, kaya itaas hanggang sa ibaba, 550 00:28:56,750 --> 00:28:59,490 pagkatapos ay kaliwa papuntang kanan. 551 00:28:59,490 --> 00:29:06,890 At kung gusto mong gawin ang ilang mga iba pang array, sabihin natin n ay matrix. 552 00:29:06,890 --> 00:29:10,317 Hindi ko alam, 2 hanggang 13 ay gawin Ipaalam,. 553 00:29:10,317 --> 00:29:11,900 O kailangan kong gawin ang isang bagay na mas kawili-wili. 554 00:29:11,900 --> 00:29:13,770 Kailangan kong gawin ang 2 sa 4 na. 555 00:29:13,770 --> 00:29:15,780 nrow katumbas, sabihin nating, 3. 556 00:29:15,780 --> 00:29:18,992 ncol katumbas ng 4. 557 00:29:18,992 --> 00:29:20,360 n. 558 00:29:20,360 --> 00:29:22,090 Kaya namin ang nakuha ko na ito. 559 00:29:22,090 --> 00:29:26,130 >> At ngayon kung gusto naming i-multiply ang mga ito, Gusto naming gawin n percent beses porsyento, 560 00:29:26,130 --> 00:29:27,680 dahil iyon ang n. 561 00:29:27,680 --> 00:29:30,234 562 00:29:30,234 --> 00:29:31,400 At kami ay may mga produkto ng matrix. 563 00:29:31,400 --> 00:29:33,970 564 00:29:33,970 --> 00:29:37,810 Sa pamamagitan ng mga ito ay paraan, nakita mo kung paano nang ipahayag ko n, ang 2 sa 4 565 00:29:37,810 --> 00:29:43,570 vector got cycled hanggang pinuno up ang lahat ng n? 566 00:29:43,570 --> 00:29:45,710 Kung nais mong kumuha ng eigenvalue agnas, 567 00:29:45,710 --> 00:29:46,960 ito ay isang bagay na maaari naming gawin sa lalong madaling. 568 00:29:46,960 --> 00:29:47,709 Maaari naming gawin eigen n. 569 00:29:47,709 --> 00:29:52,290 570 00:29:52,290 --> 00:29:54,600 At kaya ito ay ang aming unang nakatagpo ng isang listahan. 571 00:29:54,600 --> 00:29:57,000 >> Kaya eigen n ay isang listahan na may dalawang mga pindutan. 572 00:29:57,000 --> 00:29:58,430 Halaga, na kung saan ay ang array na ito dito. 573 00:29:58,430 --> 00:30:01,030 At vectors, na kung saan ay ang array na ito dito. 574 00:30:01,030 --> 00:30:08,240 Kaya kung nais mong kunin, sabihin nating, ikatlong hanay na ito 575 00:30:08,240 --> 00:30:13,080 mula sa eigenvectors matrix, dahil ang eigenvectors ay vectors column. 576 00:30:13,080 --> 00:30:24,400 Kaya maaari naming gawin vec eigen n dollar sign vectors, comma 3, of [hindi marinig]. 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 Ay na, tulad ng maaari mong asahan. 580 00:30:34,100 --> 00:30:39,210 >> Pagkatapos sabihin n beses porsiyento beses vec. 581 00:30:39,210 --> 00:30:42,610 582 00:30:42,610 --> 00:30:48,320 Kaya dito ay tiyak na hitsura ang resulta tulad ng kung kinuha namin ang mga third eigenvalue dito, 583 00:30:48,320 --> 00:30:50,390 na tumutugma sa ang ikatlong eigenvector. 584 00:30:50,390 --> 00:30:53,190 Multiply lang nito ang lahat sa ito eigenvector, component-pera, 585 00:30:53,190 --> 00:30:53,990 sa pamamagitan ng eigenvalue. 586 00:30:53,990 --> 00:30:57,760 At na kung ano ang aasahan naming, dahil iyon ang eigenvalues ​​ay. 587 00:30:57,760 --> 00:31:00,890 Ay kahit sino dito hindi kinuha linear algebra? 588 00:31:00,890 --> 00:31:02,530 Ang ilang mga tao, OK. 589 00:31:02,530 --> 00:31:04,030 I lamang ang iyong mga talino off para sa isang bit. 590 00:31:04,030 --> 00:31:07,490 591 00:31:07,490 --> 00:31:20,720 At sa katunayan kung lubos naming eigen n mga halaga ng dollar sign sa 3 beses vec, 592 00:31:20,720 --> 00:31:21,810 rin makuha ang parehong bagay. 593 00:31:21,810 --> 00:31:24,726 Ito ay na-format nang iba bilang isang hilera vector sa halip ng isang haligi vector, 594 00:31:24,726 --> 00:31:25,640 ngunit sang-ayon. 595 00:31:25,640 --> 00:31:29,430 596 00:31:29,430 --> 00:31:35,170 At kaya ang mga ito ay karaniwang ang ganda bagay-bagay na maaari naming gawin sa matrices, 597 00:31:35,170 --> 00:31:36,489 nagpakita list. 598 00:31:36,489 --> 00:31:39,030 Dapat kong ipakita ang ganda mga bagay-bagay tungkol sa mga function na rin. 599 00:31:39,030 --> 00:31:41,750 >> Kaya ni say-- ipaalam [hindi marinig] function, tawag ay hahayaan 600 00:31:41,750 --> 00:31:51,960 ito func laban andar n n squared-- talaga, na hindi talaga ang pinakamahusay na. 601 00:31:51,960 --> 00:31:55,632 a, b, a squared plus b. 602 00:31:55,632 --> 00:31:58,547 603 00:31:58,547 --> 00:32:00,380 Kaya isang bagay tungkol sa function, muli, ay sila 604 00:32:00,380 --> 00:32:01,963 hindi na kailangan ng tahasang pahayag return. 605 00:32:01,963 --> 00:32:04,250 Kaya maaari mong just-- ang huling pahayag sinusuri 606 00:32:04,250 --> 00:32:07,502 ay ang statement ibinalik, o ang halaga ay bumalik. 607 00:32:07,502 --> 00:32:10,460 Kaya sa kasong ito, kami lamang ay pagsusuri isang pahayag, isang squared plus b. 608 00:32:10,460 --> 00:32:12,043 Iyon ay ang halaga ng default return. 609 00:32:12,043 --> 00:32:14,530 Ito ay hindi kailanman Masakit upang ilagay sa bumalik halaga tahasan, 610 00:32:14,530 --> 00:32:16,880 lalo na kung ikaw ay pagharap sa isang function ng napaka-komplikadong lohika 611 00:32:16,880 --> 00:32:17,380 dumaloy. 612 00:32:17,380 --> 00:32:18,450 Ngunit hindi mo na kailangan ang mga ito. 613 00:32:18,450 --> 00:32:24,890 Kaya ngayon maaari naming gawin func 5, 1, at ito ay isa lamang kung ano ang gusto mong asahan. 614 00:32:24,890 --> 00:32:29,146 615 00:32:29,146 --> 00:32:31,270 Isang bagay pa ang maaari naming gawin, maaari naming talagang gawin func b 616 00:32:31,270 --> 00:32:33,260 ay katumbas ng 1, ang isang katumbas ng 5. 617 00:32:33,260 --> 00:32:36,870 618 00:32:36,870 --> 00:32:40,770 Kaya kung kami tukuyin kung aling mga numero dito, na argument ang papunta sa kung saan argument 619 00:32:40,770 --> 00:32:44,680 sa pag-andar, maaari naming i-flip sa paligid ang mga halagang ito kung saan man namin gusto. 620 00:32:44,680 --> 00:32:48,405 >> Madla: Mayroon bang isang dahilan upang isulat ang mga ito gamit ang b 621 00:32:48,405 --> 00:32:52,404 ay katumbas ng bilang laban sa lamang gamit ang mga numero at ang kuwit? 622 00:32:52,404 --> 00:32:54,820 CONNER HARRIS: Oo, karaniwang gawin ito kung ikaw ay may mga pag-andar 623 00:32:54,820 --> 00:32:58,540 na may maraming mga argumento. 624 00:32:58,540 --> 00:33:00,690 Iyon ay maaaring madalas na maging katulad flags na Gusto mo lamang 625 00:33:00,690 --> 00:33:03,130 gusto mong gamitin sa mga bihirang okasyon. 626 00:33:03,130 --> 00:33:06,740 At sa ganitong paraan maaari kang only-- mo maaaring sumangguni sa mga tiyak na argumento 627 00:33:06,740 --> 00:33:09,110 na gusto mong gamitin di-default na halaga para sa, 628 00:33:09,110 --> 00:33:14,470 at hindi mo na kailangang isulat ang isang grupo ng mga flag ay katumbas ng false matapos ang mga ito. 629 00:33:14,470 --> 00:33:19,710 O maaari kong isulat ito muli gamit isang default na halaga tulad ng b ay katumbas ng 2. 630 00:33:19,710 --> 00:33:26,289 At pagkatapos ay maaari kong gawin f func, Makikita ko ang 4, 1 oras na ito. 631 00:33:26,289 --> 00:33:28,580 At 17, na kung saan ay 4 nakalapat plus 1, tulad ng maaari mong asahan. 632 00:33:28,580 --> 00:33:34,290 >> Ngunit maaari din ko lang tumawag sa func 4, 633 00:33:34,290 --> 00:33:36,970 at magagawa ko na 18, dahil Hindi ko tukuyin b. 634 00:33:36,970 --> 00:33:38,550 Kaya b nakukuha ang mga default na halaga ng 2. 635 00:33:38,550 --> 00:33:41,700 636 00:33:41,700 --> 00:33:47,200 >> OK, kaya ngayon kung ikaw ay sumusunod na kasama ang demo, 637 00:33:47,200 --> 00:33:51,010 type ang linyang ito sa iyong mga utos prompt at makita kung ano ang dumating up. 638 00:33:51,010 --> 00:33:52,090 Sa totoo lang, huwag gawin iyon. 639 00:33:52,090 --> 00:33:52,590 I-type ito. 640 00:33:52,590 --> 00:33:57,780 641 00:33:57,780 --> 00:34:01,000 Dapat kang makakuha ng isang bagay na katulad nito. 642 00:34:01,000 --> 00:34:04,780 Kaya mtcars ay isang itinayo sa data itinakda para sa pagtatanghal na ito 643 00:34:04,780 --> 00:34:13,550 mga layunin na nanggagaling with-- na nanggagaling sa pamamagitan ng default sa iyong pamamahagi r. 644 00:34:13,550 --> 00:34:19,211 Ito ay isang kalipunan ng mga istatistika mula sa isang 1974 isyu ng magazine Motor Trend ni 645 00:34:19,211 --> 00:34:20,710 sa isang bilang ng iba't ibang mga modelo ng kotse. 646 00:34:20,710 --> 00:34:28,270 >> Kaya may mga milya kada galon, cylinders-- Nakalimutan ko kung ano disp is-- lakas-kabayo. 647 00:34:28,270 --> 00:34:31,610 648 00:34:31,610 --> 00:34:32,420 Marahil. 649 00:34:32,420 --> 00:34:36,920 Kung kamakailan mo lamang Google MT cars, pagkatapos ay isa sa mga unang mga resulta 650 00:34:36,920 --> 00:34:38,730 ay mula sa mga opisyal na dokumentasyon r 651 00:34:38,730 --> 00:34:41,080 at ito ay ipaliwanag ang lahat ng mga patlang ng data. 652 00:34:41,080 --> 00:34:47,020 Kaya timbang is-- wt ay bigat ng kotse sa tonelada. 653 00:34:47,020 --> 00:34:48,880 Q sec na ang oras quarter mile. 654 00:34:48,880 --> 00:34:52,409 655 00:34:52,409 --> 00:34:55,850 Kaya ngayon maaari naming gawin ang ilang mga bagay na masaya tungkol MT cars ay isang patlang ng data. 656 00:34:55,850 --> 00:35:01,640 >> Kaya maaari naming gawin ang mga bagay tulad ng mga pangalan hilera, Mt cars. 657 00:35:01,640 --> 00:35:05,490 At ito ay isang listahan ng lahat ng mga hilera sa ang data set na kung saan ay mga pangalan ng mga sasakyan. 658 00:35:05,490 --> 00:35:10,780 Maaari naming gawin colnames, Mt cars na ito. 659 00:35:10,780 --> 00:35:15,500 Kung gagawin mo Mt cars, sub-numerical index, tulad ng 2. 660 00:35:15,500 --> 00:35:18,177 makuha namin ang pangalawang haligi ng na ito, kung saan ay magiging cylinders. 661 00:35:18,177 --> 00:35:19,370 >> Madla: Ano ang ginawa mo? 662 00:35:19,370 --> 00:35:21,570 >> CONNER HARRIS: I-type Mt cars, bracket e, 663 00:35:21,570 --> 00:35:24,180 na ibinigay sa akin ang pangalawang haligi ng Mt cars. 664 00:35:24,180 --> 00:35:34,501 665 00:35:34,501 --> 00:35:38,110 O kung gusto naming ng isang hilera, maaari kong i-type mtcars kuwit 2, halimbawa. 666 00:35:38,110 --> 00:35:41,850 667 00:35:41,850 --> 00:35:46,390 Iba pang mga round 2 kuwit, tulad na. 668 00:35:46,390 --> 00:35:48,880 At na napupunta sa iyong hilera. 669 00:35:48,880 --> 00:35:54,680 Ito dito lamang ay nagbibigay sa iyo ng isang haligi, ngunit column bilang vector. 670 00:35:54,680 --> 00:36:04,634 671 00:36:04,634 --> 00:36:06,425 Ko lamang natanto ko ngayon nakalimutan upang ipakita 672 00:36:06,425 --> 00:36:09,150 ang ilang mga cool na bagay tungkol sa vectors na maaari mong gawin sa mga indeks. 673 00:36:09,150 --> 00:36:10,480 Kaya hayaan mo akong gawin iyon ngayon. 674 00:36:10,480 --> 00:36:17,130 Kaya sabihin gawin c gets-- paglagay ito sa pause-- 2 beses sa 1 hanggang 10. 675 00:36:17,130 --> 00:36:21,360 Kaya c ay lamang ang pagpunta sa maging ang vector 2 hanggang 20. 676 00:36:21,360 --> 00:36:24,640 Maaari bang kumuha ng mga sangkap na ito, ang C2. 677 00:36:24,640 --> 00:36:30,942 Maaari ko bang ipasa sa isang vector tulad nito, c-- ipaalam sa akin 678 00:36:30,942 --> 00:36:34,470 gumamit ng ibang pangalan kaysa c, tulad ng vec c. 679 00:36:34,470 --> 00:36:37,591 680 00:36:37,591 --> 00:36:39,340 Talaga, ako ng paggawa ito upang hindi mo na makakuha ng 681 00:36:39,340 --> 00:36:45,010 nalilito sa pagitan c bilang vector konstruksiyon function, 682 00:36:45,010 --> 00:36:48,800 at pagkatapos ay c bilang isang pangalan ng variable. 683 00:36:48,800 --> 00:36:53,120 Vec bracket c 4, 5, 7. 684 00:36:53,120 --> 00:36:56,540 Makikita ito makakuha ako out sa ika-apat, ikalima, at pitong elemento ng array. 685 00:36:56,540 --> 00:37:01,740 Ang maaari kong gawin vec, ilagay sa isang negatibong index, tulad ng mga negatibong 4. 686 00:37:01,740 --> 00:37:06,500 Iyon ay makakakuha ng sa akin mula sa dahil ang ika-apat na elemento. 687 00:37:06,500 --> 00:37:10,140 Pagkatapos kung Nais kong gawin hiwa, Ang maaari kong gawin vec 2 hanggang 6. 688 00:37:10,140 --> 00:37:15,480 2 colon 6 ay lamang ng isa pang vector, kung saan ay 2, 3, 4, 5, 6. 689 00:37:15,480 --> 00:37:18,230 Spits out na. 690 00:37:18,230 --> 00:37:20,770 >> Kaya kahit papaano, bumalik sa Mt cars. 691 00:37:20,770 --> 00:37:26,650 692 00:37:26,650 --> 00:37:28,450 Kaya sabihin gawin ang ilang mga regressions. 693 00:37:28,450 --> 00:37:34,240 Ipagpalagay natin na model gets-- sabihin linearly regress-- hindi ko alam. 694 00:37:34,240 --> 00:37:41,780 Ni huwag ilakip mtcars, siyempre unang hayaan mo. 695 00:37:41,780 --> 00:37:44,870 696 00:37:44,870 --> 00:38:00,010 Kaya [hindi marinig] lm modelo, ni-urong ipaalam milya kada galon sa tilde timbang. 697 00:38:00,010 --> 00:38:03,300 At pagkatapos frame data ay mtcars. 698 00:38:03,300 --> 00:38:06,830 Kaya model buod. 699 00:38:06,830 --> 00:38:12,900 700 00:38:12,900 --> 00:38:15,595 >> OK, kaya ito ang hitsura ng isang bit kumplikado. 701 00:38:15,595 --> 00:38:19,380 Ngunit talaga, nakikita bilang kung namin subukan upang ipahayag milya kada galon 702 00:38:19,380 --> 00:38:23,970 bilang linear function ng timbang, pagkatapos ay nakuha namin ang linyang ito dito, 703 00:38:23,970 --> 00:38:28,730 saan intercepts sa 37.28. 704 00:38:28,730 --> 00:38:33,830 37.28 ay ang panteorya milya bawat galon ng isang kotse na may bigat na zero. 705 00:38:33,830 --> 00:38:41,210 At pagkatapos ay para sa bawat karagdagang tonelada, mong magpatumba tungkol sa limang milya kada galon 706 00:38:41,210 --> 00:38:42,440 off na. 707 00:38:42,440 --> 00:38:45,120 Pareho sa mga coefficients mo maaaring makita, karaniwang mga error doon. 708 00:38:45,120 --> 00:38:47,870 At sila ay lubhang makabuluhan sa istatistika. 709 00:38:47,870 --> 00:38:55,740 >> Kaya maaari naming maging napaka tiyak na 1 e 10 na ang mga negatibong 10. 710 00:38:55,740 --> 00:38:59,510 Kaya 1 beses isang bagay upang ang mga negatibong 10, na kung gumawa ka ng isang mas mabibigat na sasakyan, 711 00:38:59,510 --> 00:39:01,440 ito ay magkakaroon ng mas masahol milya kada galon. 712 00:39:01,440 --> 00:39:04,940 713 00:39:04,940 --> 00:39:07,250 O maaari naming subukan ang ilang iba pang mga modelo. 714 00:39:07,250 --> 00:39:09,230 Tulad ng sa halip ng regressing ito sa timbang, 715 00:39:09,230 --> 00:39:12,600 urong ng ito sa pag-log ng timbang ipaalam, dahil siguro sa mabisang pagbaba 716 00:39:12,600 --> 00:39:15,690 on mileage sa anuman ay hindi linear. 717 00:39:15,690 --> 00:39:18,540 >> Ito ay nagbigay sa amin ng isang r nakalapat ng 0.7528. 718 00:39:18,540 --> 00:39:19,610 Kaya sabihin subukan ito. 719 00:39:19,610 --> 00:39:21,485 Ang oras na ito ay hahayaan gawin ang isang iba't-ibang mga variable, masyadong. 720 00:39:21,485 --> 00:39:22,500 Model2. 721 00:39:22,500 --> 00:39:24,800 Kaya buod, model2. 722 00:39:24,800 --> 00:39:28,200 723 00:39:28,200 --> 00:39:31,390 Lahat ng karapatan, kaya muli, kami ay nakuha ang aming pinakamahusay na akma linya dito. 724 00:39:31,390 --> 00:39:36,160 At ito time-- ito ay nagsasabi, talaga na ang bawat panahon na kayo 725 00:39:36,160 --> 00:39:38,090 dagdagan ang bigat ng isang kotse sa pamamagitan ng isang kadahilanan ng e 726 00:39:38,090 --> 00:39:40,580 nawala mo ito sa maraming mga milya kada galon. 727 00:39:40,580 --> 00:39:43,210 728 00:39:43,210 --> 00:39:50,326 >> At kaya oras na ito ang aming mga tira standard error it-- na hindi bagay, talaga. 729 00:39:50,326 --> 00:39:53,540 Ang tira standard error ay talaga lang ang standard na error 730 00:39:53,540 --> 00:39:57,760 na iyong iniwan pagkatapos mong mag-alis ng linya ng trend. 731 00:39:57,760 --> 00:40:02,805 At ang aming r nakalapat dito ay 0.81, kung saan ay isang bit mas mahusay kaysa sa kung ano ang 732 00:40:02,805 --> 00:40:07,640 kami ay nagkaroon ng bago, 0.52. 733 00:40:07,640 --> 00:40:09,750 >> At kaya ngayon sabihin magdagdag ng isang kataga na ito pagbabalik. 734 00:40:09,750 --> 00:40:13,020 Kaya sabihin urong milya kada galon ang pareho sa mga log ng mga weights 735 00:40:13,020 --> 00:40:21,130 at, sabihin gawin, q miles ipaalam, quarter time na milya. 736 00:40:21,130 --> 00:40:26,190 OK, ito ay dapat magkaroon the-- lahat ng karapatan, 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-- sorry, ano? 740 00:40:35,000 --> 00:40:37,000 Ipaalam sa akin ang tawag na ito sa isang bagay ibang tao bukod sa model2. 741 00:40:37,000 --> 00:40:38,000 Hayaan akong itawag sa model3. 742 00:40:38,000 --> 00:40:40,860 743 00:40:40,860 --> 00:40:42,900 At kaya ngayon maaari naming gawin buod model3. 744 00:40:42,900 --> 00:40:46,850 745 00:40:46,850 --> 00:40:49,100 At kaya muli, ito ay isa lamang kung ano ang maaari mong asahan. 746 00:40:49,100 --> 00:40:51,750 Mayroon kang positibong maharang. 747 00:40:51,750 --> 00:40:54,550 Ang epektibong pagtaas timbang ay negatibo. 748 00:40:54,550 --> 00:40:58,490 At ang epektibong pagtaas quarter milya oras 749 00:40:58,490 --> 00:41:02,420 ay positibo, ngunit kahit mas mababa ito kaysa sa timbang. 750 00:41:02,420 --> 00:41:06,010 Ngayon intuitively, maaari mong magkaroon ng kahulugan ng ito sa pamamagitan ng pagsasabi sa tingin tungkol sa sports cars. 751 00:41:06,010 --> 00:41:08,950 May isang napakabilis na acceleration, isang napaka-ikling oras quarter mile. 752 00:41:08,950 --> 00:41:13,729 Sila ay pagpunta rin na gumamit ng mas maraming gas, samantalang mas kapansin-pansin ang mga kotse ay pagpunta 753 00:41:13,729 --> 00:41:16,020 upang magkaroon ng mas mabagal na bilis, mas mataas beses kapat na milya, 754 00:41:16,020 --> 00:41:20,890 at gumamit ng mas kaunting gas ,, kaya mas mataas milya kada galon. 755 00:41:20,890 --> 00:41:21,390 Great. 756 00:41:21,390 --> 00:41:23,431 At kaya ngayon ay ang panahon para I-plot ang isang bagay tulad nito. 757 00:41:23,431 --> 00:41:27,810 Kaya sabihin do-- kaya hubad buto ang maaari naming gawin plots-- 758 00:41:27,810 --> 00:41:35,280 dahil naka-attach ko ang data frame na ito before-- maaari naming lamang gawin plots, wt mpg. 759 00:41:35,280 --> 00:41:38,762 760 00:41:38,762 --> 00:41:39,720 Gawin itong isang bit mas malaki. 761 00:41:39,720 --> 00:41:55,050 762 00:41:55,050 --> 00:41:57,350 Doon, talaga kami ay may isang scatter plot, ngunit ang mga puntos 763 00:41:57,350 --> 00:41:58,690 mga uri ng matapang na upang makita na ito. 764 00:41:58,690 --> 00:42:04,860 765 00:42:04,860 --> 00:42:10,900 >> Hindi ko matandaan biglaan kung ano ang syntax ay para sa pagpapalit ng mga balangkas. 766 00:42:10,900 --> 00:42:14,100 Kaya ako hulaan ito ay magiging isang magandang panahon upang ilabas, 767 00:42:14,100 --> 00:42:18,000 may isang napakabuti builtin tulong tampok na ito, sa tulong quotes gumana name. 768 00:42:18,000 --> 00:42:21,690 Susubukan naming ilabas ang talaga anumang gusto mo. 769 00:42:21,690 --> 00:42:28,010 770 00:42:28,010 --> 00:42:32,730 Isip ko na talagang gawin ito type katumbas p para sa mga puntos plots. 771 00:42:32,730 --> 00:42:34,369 Ba na baguhin ang anumang bagay? 772 00:42:34,369 --> 00:42:35,160 At hindi, hindi talaga. 773 00:42:35,160 --> 00:42:39,160 774 00:42:39,160 --> 00:42:39,660 Lahat tama. 775 00:42:39,660 --> 00:42:46,760 776 00:42:46,760 --> 00:42:49,580 >> Para sa ilang mga dahilan, kapag ginawa ko ito sa aking sariling computer kanina, 777 00:42:49,580 --> 00:42:52,080 lahat ng mga scatter puntos ay mas malinaw. 778 00:42:52,080 --> 00:43:06,390 779 00:43:06,390 --> 00:43:13,970 Sa papaano mang paraan, ay ang mga scatter uri ng nakikita? 780 00:43:13,970 --> 00:43:15,124 May isa doon. 781 00:43:15,124 --> 00:43:16,165 Ang ilang doon, ilang doon. 782 00:43:16,165 --> 00:43:18,860 783 00:43:18,860 --> 00:43:21,185 Maaari mong uri ng makita ang mga ito, i-right? 784 00:43:21,185 --> 00:43:24,310 Kaya kung nais namin na magdagdag ng isang pinakamahusay na angkop na linya sa balangkas na ito dito, kung saan ay isang bit hubad 785 00:43:24,310 --> 00:43:29,290 bones-- hayaan mo akong gawin itong isang bit nicer. 786 00:43:29,290 --> 00:43:38,075 Main katumbas kumpara timbang. 787 00:43:38,075 --> 00:43:46,322 788 00:43:46,322 --> 00:43:49,740 Milya bawat galon. 789 00:43:49,740 --> 00:43:53,570 Muli, maaari mong makita kung paano ang mga kapaki-pakinabang opsyonal na argumento ay dito sa din 790 00:43:53,570 --> 00:43:58,090 hindi pagkakaroon upang ilagay ang mga bagay sa isang tiyak na order ng mga pangangatuwiran keyboard 791 00:43:58,090 --> 00:44:01,600 kapag ikaw ay may plots, dahil mga kumuha ng isang pulutong ng mga argumento. 792 00:44:01,600 --> 00:44:07,490 >> Xlab katumbas na timbang, timbang, tonelada. 793 00:44:07,490 --> 00:44:10,091 794 00:44:10,091 --> 00:44:10,590 Lahat tama. 795 00:44:10,590 --> 00:44:17,340 796 00:44:17,340 --> 00:44:21,480 OK, oo, ang aparato na ito ay ang pagiging isang bit nakakainis. 797 00:44:21,480 --> 00:44:30,160 Ngunit maaari mong makita ang uri ng mga up doon, mayroong isang pamagat graph sa gilid. 798 00:44:30,160 --> 00:44:35,260 Higit dito there's-- sa ibaba dito may mga label axis. 799 00:44:35,260 --> 00:44:37,700 Hindi ko matandaan biglaan kung ano ang mga utos ars-- 800 00:44:37,700 --> 00:44:41,000 ano ang mga function ay upang madagdagan ang laki ng mga etiketa at mga pamagat, 801 00:44:41,000 --> 00:44:43,110 ngunit ang mga ito doon. 802 00:44:43,110 --> 00:44:46,625 >> At kaya kung gusto naming idagdag ang pinakamahusay na akma line, 803 00:44:46,625 --> 00:44:49,250 maaari naming gawin isang bagay tulad ng ko may syntax na nakasulat dito. 804 00:44:49,250 --> 00:44:52,280 805 00:44:52,280 --> 00:45:11,130 Kaya tandaan idagdag lamang namin model ay mpg, timbang, mtcars. 806 00:45:11,130 --> 00:45:16,470 At kaya kung gusto ko upang magdagdag ng isang pinakamahusay na akma line, maaari kong gawin a, model b linya. 807 00:45:16,470 --> 00:45:18,556 And boom, kami ay may isang pinakamahusay na akma linya. 808 00:45:18,556 --> 00:45:19,970 Ito ay uri ng husto upang makita muli. 809 00:45:19,970 --> 00:45:22,178 Ako ay lubos na paumanhin tungkol sa paghihirap teknolohikal. 810 00:45:22,178 --> 00:45:25,230 Ngunit ito ay tumatakbo talaga itaas na kaliwang sa ilalim kanan. 811 00:45:25,230 --> 00:45:27,550 >> At kung ang laki ay mas malaki, maaari mong makita ang 812 00:45:27,550 --> 00:45:31,260 na ang punto ng pagtawid ay kung ano ang maaari mong hanapin mula sa mga istatistika ng buod 813 00:45:31,260 --> 00:45:34,790 kung nag-type ka ng mga modelo ng buod. 814 00:45:34,790 --> 00:45:40,130 OK, kaya Umaasa ako makakakuha ng lahat ng tao isang bagay ng isang katinuan kung ano 815 00:45:40,130 --> 00:45:42,030 R ay, kung ano ito ay mabuti para sa. 816 00:45:42,030 --> 00:45:45,520 Maaari kang gumawa ng malayo nicer plots sa ito sa iyong sariling oras, kung gusto mo. 817 00:45:45,520 --> 00:45:50,100 818 00:45:50,100 --> 00:45:53,950 >> Kaya ang mga banyagang function na interface. 819 00:45:53,950 --> 00:46:00,330 Ito ang isang bagay na hindi karaniwan sakop sa pambungad na mga aralin 820 00:46:00,330 --> 00:46:03,560 o pambungad na kahit ano para sa r. 821 00:46:03,560 --> 00:46:05,584 Ito ay malamang na ikaw ay pagpunta sa kailangan ito hindi. 822 00:46:05,584 --> 00:46:08,000 Gayunpaman, natagpuan ko ito kapaki-pakinabang sa aking sariling mga proyekto sa nakaraan. 823 00:46:08,000 --> 00:46:10,984 At walang mabuting tutorial para sa mga ito online. 824 00:46:10,984 --> 00:46:12,900 Kaya ako lamang ang pagpunta sa sumugod ka sa lahat ng ito sa pamamagitan ng 825 00:46:12,900 --> 00:46:16,606 at pagkatapos ikaw ay libre upang mag-iwan. 826 00:46:16,606 --> 00:46:18,480 At upang ang mga banyagang function na interface ay kung ano ang 827 00:46:18,480 --> 00:46:23,130 maaari mong gamitin upang tumawag out upang makita ang mga function na may isang R. Sa loob, 828 00:46:23,130 --> 00:46:29,850 R ay binuo sa arithmetic C. R ay lamang C 64-bit lumulutang point arithmetic, 829 00:46:29,850 --> 00:46:32,852 na kung saan ay i-type double [hindi marinig]. 830 00:46:32,852 --> 00:46:35,060 At baka gusto mong gawin na ito para sa isang grupo ng mga kadahilanan. 831 00:46:35,060 --> 00:46:39,250 Para sa isa, R ay kahulugan, ito ay hindi naipon pababa sa machine code. 832 00:46:39,250 --> 00:46:42,170 Kaya maaari mong muling isulat ang iyong inner loop sa C at pagkatapos ay kumuha 833 00:46:42,170 --> 00:46:45,920 ang bentahe ng paggamit R. Tulad ito ay isang bit mas maginhawa kaysa sa C. 834 00:46:45,920 --> 00:46:48,899 Ito ay may mas mahusay na graphing pasilidad at watnat. 835 00:46:48,899 --> 00:46:51,690 At habang pa rin ng kakayahang makakuha ng pinakamataas na tulin sa labas ng inner loop, 836 00:46:51,690 --> 00:46:53,650 na kung saan ay kung saan talagang kailangan mo ito. 837 00:46:53,650 --> 00:46:56,330 >> Reusing umiiral C aklatan, na mahalaga din. 838 00:46:56,330 --> 00:47:00,320 Kung mayroon kang ilang C library para sa tulad ng, Hindi ko alam, Fourier transform, 839 00:47:00,320 --> 00:47:05,190 o ilang mga napaka Arkien procedure istatistika na ginagamit 840 00:47:05,190 --> 00:47:09,470 sa mataas na enerhiya astrophysics o isang bagay, hindi ko alam. 841 00:47:09,470 --> 00:47:13,058 Mataas na enerhiya astrophysics ay hindi kahit isang tingin, tingin ko. 842 00:47:13,058 --> 00:47:16,480 Ngunit maaari mong gawin iyon sa halip ng pagkakaroon sumulat ng isang katutubong R port ng mga ito. 843 00:47:16,480 --> 00:47:22,725 At sa the-- at muli, tulad ng kung ikaw Tumingin sa karamihan ng default aklatan R, 844 00:47:22,725 --> 00:47:25,600 sa internals, ang internals ay pupunta sa paggamit ng function na foreign 845 00:47:25,600 --> 00:47:26,724 interface napaka malawakan. 846 00:47:26,724 --> 00:47:31,630 Makikita nila ang mga bagay tulad Fourier transform o computing ugnayan 847 00:47:31,630 --> 00:47:34,890 coefficients nakasulat sa C, at ang mga ito lamang magkaroon ng R wrappers sa kanilang paligid. 848 00:47:34,890 --> 00:47:38,230 Ang interface ay isang mahirap bit. Sa tingin ko 849 00:47:38,230 --> 00:47:43,750 kahirapan nito ay pinalaking sa isang pulutong ng mga tagubilin na makikita ninyo. 850 00:47:43,750 --> 00:47:46,200 Ngunit gayon pa man, ito ay isang bit nakalilito. 851 00:47:46,200 --> 00:47:48,650 At hindi ko pa magawang makahanap ng isang mahusay na tutorial para dito, 852 00:47:48,650 --> 00:47:51,980 kaya ito ay ito ngayon. 853 00:47:51,980 --> 00:47:55,360 Muli, ito buong segment ay higit pa para sa mamaya reference. 854 00:47:55,360 --> 00:47:57,687 Huwag mag-alala tungkol sa pagkopya lahat ng bagay down ngayon. 855 00:47:57,687 --> 00:48:00,020 Kaya ang mga sumusunod na mga tagubilin ay para sa Unix-tulad ng sistema, 856 00:48:00,020 --> 00:48:05,150 Linux, BSD, OS X. Hindi ko alam kung paano ito gumagana sa Windows, 857 00:48:05,150 --> 00:48:08,280 ngunit huwag gawin lamang ang iyong huling proyekto sa Windows. 858 00:48:08,280 --> 00:48:10,790 859 00:48:10,790 --> 00:48:12,460 Ikaw ay talagang hindi nais na. 860 00:48:12,460 --> 00:48:14,770 Unix ay lubhang mas mahusay na set up para sa mga kaswal na programming. 861 00:48:14,770 --> 00:48:19,320 862 00:48:19,320 --> 00:48:21,390 Kaya, karaniwang mga banyagang function na interface. 863 00:48:21,390 --> 00:48:24,420 Kung nais mong magsulat ng isang C pag-andar para sa paggamit na may R, 864 00:48:24,420 --> 00:48:27,250 ito ay upang gawin ang lahat ng argumento bilang payo. 865 00:48:27,250 --> 00:48:30,666 >> Kaya para sa mga isahang mga halaga, ito ang ibig sabihin nito ay itinuturo sa mga halaga. 866 00:48:30,666 --> 00:48:33,040 Para sa mga array, ito ay isang pointer sa unang elemento, na kung saan 867 00:48:33,040 --> 00:48:36,750 ay kung ano ang tunay na ibig sabihin ng mga pangalan array. 868 00:48:36,750 --> 00:48:40,140 Muli, ito ay isang bagay na dapat mong magkaroon ng pretty ganap down pagkatapos p set lima. 869 00:48:40,140 --> 00:48:43,334 Pangalan Array ay lamang payo sa unang elemento, 870 00:48:43,334 --> 00:48:44,750 Ang uri ng lumulutang-point ay double. 871 00:48:44,750 --> 00:48:47,310 At ang iyong mga function ay may upang bumalik walang bisa. 872 00:48:47,310 --> 00:48:50,810 Ang tanging paraan na maaari ito talagang sabihin sa R ​​kung ano ang nangyari 873 00:48:50,810 --> 00:48:54,410 ay sa pamamagitan ng pagbabago ng memory na ibinigay R na ito sa pamamagitan ng function na foreign 874 00:48:54,410 --> 00:48:54,910 interface. 875 00:48:54,910 --> 00:48:58,180 876 00:48:58,180 --> 00:49:00,127 >> Kaya ako ng nakasulat na ito halimbawa dito, ito ay 877 00:49:00,127 --> 00:49:02,460 isang function na computes paggamit tuldok produkto ng dalawang vectors. 878 00:49:02,460 --> 00:49:05,060 Ito ay tumatagal ng dalawang argumento, vec1, vec2, na kung saan ay ang mga vectors sa kanilang sarili, 879 00:49:05,060 --> 00:49:06,934 at pagkatapos n, kung saan ay isang haba, dahil muli, 880 00:49:06,934 --> 00:49:12,630 R ay itinayo sa [hindi marinig] upang malaman kung ang haba ng vectors, ngunit C ay hindi. 881 00:49:12,630 --> 00:49:16,182 Sa C, vectors ay isang arbitrary delimited tipak ng memory. 882 00:49:16,182 --> 00:49:17,890 Kaya ang paraan na kaya mo kalkulahin produkto dot 883 00:49:17,890 --> 00:49:23,470 ay naka-set na lang this out parameter sa zero at pagkatapos ay ulitin sa pamamagitan ng 884 00:49:23,470 --> 00:49:28,760 mula sa 1 upang lagyan ng star n, dahil n ay isang pointer sa ang haba, 885 00:49:28,760 --> 00:49:32,929 idagdag lamang ang isang bagay na this out parameter. 886 00:49:32,929 --> 00:49:34,970 At maaari itong maging mahusay na kasanayan kung ikaw ay pagpunta sa gawin 887 00:49:34,970 --> 00:49:37,270 na ito upang magsulat ng dalawang magkahiwalay C function. 888 00:49:37,270 --> 00:49:41,970 Isa sa mga ito has-- Isa sa mga ito lamang tumatagal ng mga argumento at ang mga uri 889 00:49:41,970 --> 00:49:43,970 na kalimitan sila ay sa C. 890 00:49:43,970 --> 00:49:47,780 >> Kaya ito ay tumatagal ng isang array argumento bilang payo. 891 00:49:47,780 --> 00:49:57,090 Ngunit arguments single-halaga tulad n, ito lamang ay tumatagal ng mga halaga sa pamamagitan ng kopya, 892 00:49:57,090 --> 00:49:57,917 walang mga payo. 893 00:49:57,917 --> 00:49:59,750 At pagkatapos ay ito ay hindi [Hindi marinig] out pointer. 894 00:49:59,750 --> 00:50:01,290 At pagkatapos ay maaari kang magkaroon ng ibang, karaniwang, 895 00:50:01,290 --> 00:50:03,623 wrapper ng function na talaga humahawak ng mga kinakailangan 896 00:50:03,623 --> 00:50:07,740 ng pag-andar foreign interface para sa iyo. 897 00:50:07,740 --> 00:50:11,840 >> Ang paraan mo tawag na ito sa R ​​ay, sa sandaling mayroon ka sa iyong function na nakasulat sa C, 898 00:50:11,840 --> 00:50:17,770 nagta-type ka R cmd shlib, R utos shared library, 899 00:50:17,770 --> 00:50:20,110 foo dot c, o kahit anong iyong pangalan ng file ay, 900 00:50:20,110 --> 00:50:23,020 at ang OS shell wala sa R ​​terminal. 901 00:50:23,020 --> 00:50:25,200 At ito ay lumikha ng isang library na tinatawag na foo tuldok ito. 902 00:50:25,200 --> 00:50:28,180 At pagkatapos ay maaari mong i-load ito sa aming script o interactive 903 00:50:28,180 --> 00:50:32,310 may load utos dyn dot. 904 00:50:32,310 --> 00:50:35,720 Pagkatapos doon ay isang function sa R tinatawag dot c. 905 00:50:35,720 --> 00:50:39,310 >> Ito ay tumatagal ng mga argumento na muna ang pangalan ng function sa C 906 00:50:39,310 --> 00:50:40,970 na nais mong tawagan. 907 00:50:40,970 --> 00:50:43,920 At pagkatapos ang lahat ng mga parameter sa na function, 908 00:50:43,920 --> 00:50:45,420 mayroon sila upang maging sa tamang pagkakasunod-sunod. 909 00:50:45,420 --> 00:50:48,580 Kailangan mong gamitin ang mga uri pamimilit pag-andar bilang integer, tulad ng 910 00:50:48,580 --> 00:50:52,050 double, tulad ng mga karakter, at ang lohikal. 911 00:50:52,050 --> 00:50:54,710 At pagkatapos ay kapag ito ay nagbabalik ng mga list, na muli ay isa lamang 912 00:50:54,710 --> 00:50:57,550 isang kaugnay na hanay ng mga parameter pangalan at ang mga halaga 913 00:50:57,550 --> 00:51:00,950 pagkatapos na tumakbo ang function. 914 00:51:00,950 --> 00:51:08,520 >> Kaya sa kasong ito, dahil dot udyok ay argumento vec1, vec2, at int n, n out. 915 00:51:08,520 --> 00:51:11,980 Upang dot c kami ay may tuldok na mag-udyok, ang pangalan ng function 916 00:51:11,980 --> 00:51:16,250 kami ay pagtawag, vec1, vec2, uri pumilit. 917 00:51:16,250 --> 00:51:20,060 Ang haba ng mag vector, Ako lang ang pinili vec1 nagkataon. 918 00:51:20,060 --> 00:51:25,479 Ito ay magiging mas matatag na sabihin s integer haba min ng vec1, haba vec2. 919 00:51:25,479 --> 00:51:27,520 Pagkatapos lamang bilang double zero, dahil hindi namin talagang 920 00:51:27,520 --> 00:51:29,644 aalaga kung ano ang napupunta sa out parameter dahil kami 921 00:51:29,644 --> 00:51:32,270 setting na ito sa zero pa rin. 922 00:51:32,270 --> 00:51:37,560 >> At pagkatapos ang mga resulta ay magiging isang malaking kaugnay na hanay ng mga karaniwang 923 00:51:37,560 --> 00:51:42,090 vec1 ay kahit na ano, vec2 ay anumang. 924 00:51:42,090 --> 00:51:44,330 Ngunit kami ay interesado sa out, upang maaari naming makakuha ng na out. 925 00:51:44,330 --> 00:51:47,780 Ito ay muli, isang napaka halimbawa toy ng isang dayuhang function na interface. 926 00:51:47,780 --> 00:51:54,160 Ngunit kung mayroon kang mag-compute dot mga produkto ng napakalaking vectors sa loop, 927 00:51:54,160 --> 00:51:56,960 o kung kailangan mong gawin ibang bagay sa isang loop, 928 00:51:56,960 --> 00:51:59,850 at hindi mo nais na umaasa sa R, na kung saan ay mayroon ng isang piraso ng overhead 929 00:51:59,850 --> 00:52:02,830 binuo sa mga ito, ito ay maaaring maging kapaki-pakinabang. 930 00:52:02,830 --> 00:52:05,870 >> Muli, ito ay hindi karaniwan ng isang pambungad na topic na R. 931 00:52:05,870 --> 00:52:08,571 Ito ay hindi masyadong mahusay na dokumentado. 932 00:52:08,571 --> 00:52:11,070 Tingin lang ako sa kabilang ang mga ito dahil Natagpuan ko itong kapaki-pakinabang sa nakaraan. 933 00:52:11,070 --> 00:52:13,654 Kaya, masamang gawi. 934 00:52:13,654 --> 00:52:15,820 Nabanggit ko na mayroong isang para sa loop sa function. 935 00:52:15,820 --> 00:52:21,150 Sa pangkalahatan ay hindi mo dapat, sa ang wika, hindi ito ginagamit. 936 00:52:21,150 --> 00:52:26,100 Batay sa kung paano ipinapatupad R-ulit sa loob, ito ay maaaring maging mabagal. 937 00:52:26,100 --> 00:52:28,540 Sila lamang din tumingin pangit. 938 00:52:28,540 --> 00:52:32,410 >> R humahawak vectors napaka mabuti, sa gayon malimit na hindi mo kailangang gamitin ito. 939 00:52:32,410 --> 00:52:35,050 940 00:52:35,050 --> 00:52:38,900 Pagkatapos ay maaari mong karaniwang palitan ang isang vector madalas 941 00:52:38,900 --> 00:52:42,490 na may mga pag-andar na tinatawag na mataas function order, Map, Bawasan, 942 00:52:42,490 --> 00:52:44,404 Maghanap, o Filter. 943 00:52:44,404 --> 00:52:46,320 Kukunin ko na lang magbigay ng ilang mga halimbawa ng kung ano ang mga dapat gawin. 944 00:52:46,320 --> 00:52:49,957 Mapa ay isang mas mataas na pag-andar ng order dahil ito ay tumatagal ng isang pag-andar bilang isang argument. 945 00:52:49,957 --> 00:52:52,290 Kaya maaari mong bigyan ito ng isang function, maaari mong bigyan ito ng isang array, 946 00:52:52,290 --> 00:52:54,640 at ito ay nalalapat sa mga function sa bawat elemento ng array 947 00:52:54,640 --> 00:52:55,681 at bumalik sa bagong array. 948 00:52:55,681 --> 00:52:58,035 949 00:52:58,035 --> 00:53:00,160 Bawasan, talaga kang magbigay ng ito ay isang array, bigyan mo ito 950 00:53:00,160 --> 00:53:02,930 isang function na tumatagal ng dalawang argumento. 951 00:53:02,930 --> 00:53:07,100 Ito ay una, ang mga mag-aplay ang mga function unang argumento sa ilang mga halaga ng starter. 952 00:53:07,100 --> 00:53:09,440 Pagkatapos sa na resulta sa pangalawang. 953 00:53:09,440 --> 00:53:12,590 Pagkatapos sa resultang iyon sa ikatlong, pagkatapos ay sa na resulta sa ika-apat. 954 00:53:12,590 --> 00:53:14,870 At pagkatapos ay bumalik kapag ito ay makakakuha ng hanggang sa dulo. 955 00:53:14,870 --> 00:53:17,620 Kaya halimbawa, kung nais mong compute ang kabuuan ng lahat ng mga elemento 956 00:53:17,620 --> 00:53:23,240 sa isang array, kaysa sa maaari mong tawagan mabawasan gamit ang [hindi marinig] mabawasan isang karagdagan 957 00:53:23,240 --> 00:53:26,620 function, tulad ng func a, b, magbalik ng plus b. 958 00:53:26,620 --> 00:53:28,960 At pagkatapos ay simulan ang isang halaga ng 0. 959 00:53:28,960 --> 00:53:32,950 >> At lahat ng ito, maaari mong mahanap ang mga ito inilarawan sa dokumentasyon R, 960 00:53:32,950 --> 00:53:35,720 sa anumang aklat-aralin sa functional programming. 961 00:53:35,720 --> 00:53:38,330 Mayroon din ng ganitong klase ng mga function na tinatawag na mag-apply pag-andar, 962 00:53:38,330 --> 00:53:42,807 kung saan ako do not na ang mga ito medyo mahirap ipaliwanag, 963 00:53:42,807 --> 00:53:45,640 ngunit kung titingnan mo sa [hindi marinig] naka-book na nabanggit ko sa simula, 964 00:53:45,640 --> 00:53:48,615 Ipinaliliwanag niya ang mga ito nang mahusay sa kanyang apendiks sa R ​​programming. 965 00:53:48,615 --> 00:53:51,599 966 00:53:51,599 --> 00:53:53,390 Higit pa tungkol sa mga kasanayan, pagdagdag sa vectors. 967 00:53:53,390 --> 00:53:57,570 968 00:53:57,570 --> 00:53:58,070 Oo? 969 00:53:58,070 --> 00:54:01,651 970 00:54:01,651 --> 00:54:02,900 Isip ko ay tama na. 971 00:54:02,900 --> 00:54:07,450 Sa unang linya, vec arrow, arrow na hindi dapat doon. 972 00:54:07,450 --> 00:54:10,920 Maaari mong italaga sa isang vector, muli, sa pamamagitan tumagal ang haba nito plus 1 973 00:54:10,920 --> 00:54:13,220 at pagtatalaga ng ilang mga halaga na iyon. 974 00:54:13,220 --> 00:54:18,970 Iyon ay pahabain ang vector, o mo maaaring gawin vec equals c, vec newvalue. 975 00:54:18,970 --> 00:54:21,540 Muli, kung ikaw ay gumagamit ng C sa isang argument bilang vector, 976 00:54:21,540 --> 00:54:23,300 ang resultang hierarchy makakakuha pipi. 977 00:54:23,300 --> 00:54:27,160 Kaya makikita lamang kang makakuha ng isang vector na palugit sa pamamagitan ng 1. 978 00:54:27,160 --> 00:54:30,410 Huwag kailanman gawin ito. 979 00:54:30,410 --> 00:54:33,330 >> Ang dahilan kung bakit mo hindi dapat gawin ito ay na ito. 980 00:54:33,330 --> 00:54:37,430 Kapag maglaan ka ng isang vector, ito ito ay nagbibigay ng isang tiyak na tipak ng memory. 981 00:54:37,430 --> 00:54:40,680 Kung tataasan mo na sukat vector, ito ay upang reallocate ang vector 982 00:54:40,680 --> 00:54:43,820 sa ibang lugar. 983 00:54:43,820 --> 00:54:46,980 At kaya muling paglalaan ay medyo mahal. 984 00:54:46,980 --> 00:54:50,530 Hindi ko ay pumunta sa mga detalye ng kung paano memory allocators ay ipinatupad 985 00:54:50,530 --> 00:54:57,280 sa antas ng operating system, ngunit ito ay tumatagal ng maraming oras 986 00:54:57,280 --> 00:54:58,962 upang mahanap ang isang bagong tipak ng memory. 987 00:54:58,962 --> 00:55:00,920 At din, kung ikaw ay re-paglaan ng maraming at maraming 988 00:55:00,920 --> 00:55:03,500 ng progressively mas malaking chunks, tapusin mo up 989 00:55:03,500 --> 00:55:06,420 na may isang bagay na tinatawag na memory piraso, 990 00:55:06,420 --> 00:55:09,390 kung saan ang mga magagamit na memory ay nahahati sa maraming maliit na mga bloke 991 00:55:09,390 --> 00:55:11,500 sa memory allocators punto ng view. 992 00:55:11,500 --> 00:55:15,340 At ito ay makakakuha ng mas mahirap at mas mahirap upang maghanap ng memory para sa iba pang mga bagay. 993 00:55:15,340 --> 00:55:19,455 Kaya sa halip, kung kailangan mong gawin ito, kung ang kailangan mo upang maging isang vector mula sa isang dulo 994 00:55:19,455 --> 00:55:24,240 sa susunod na, sa halip ng pagdagdag sa mga ito Patuloy, dapat mong i-pre-allocate ito. 995 00:55:24,240 --> 00:55:29,310 Vec arrow, haba vector ay katumbas ng 1000, o ano pa man. 996 00:55:29,310 --> 00:55:33,200 >> At pagkatapos ay maaari mo lamang magtalaga sa mga halaga ng isa sa mga vector ni 997 00:55:33,200 --> 00:55:36,000 isang oras matapos mong inilalaan ito nang isang beses. 998 00:55:36,000 --> 00:55:40,140 Ako ang bumangga sa mga ito, muli, ang aking trabaho summer kapag ako ay sumusulat NRA kaugalian 999 00:55:40,140 --> 00:55:42,120 equation Solver. 1000 00:55:42,120 --> 00:55:43,180 Hindi symbolic numerical. 1001 00:55:43,180 --> 00:55:49,290 Ang ideya ay na sa sandaling ikaw ay isang halaga para sa iyong mga solusyon, 1002 00:55:49,290 --> 00:55:51,240 gamitin mo na mag-compute ang kasunod. 1003 00:55:51,240 --> 00:55:53,700 Kaya natural ang aking walang muwang pagyuko ay sabihin OK, 1004 00:55:53,700 --> 00:55:56,930 kaya ko na magsimula sa isang vector na ang isang malaking halaga. 1005 00:55:56,930 --> 00:56:01,260 Compute mula sa na ang susunod na halaga na napupunta papunta sa aking solusyon vector, 1006 00:56:01,260 --> 00:56:02,630 at ikakabit na. 1007 00:56:02,630 --> 00:56:05,290 >> Lumikha ng isang bagay pa, isama na. 1008 00:56:05,290 --> 00:56:08,120 Ito napaka, napakabagal nagpunta. 1009 00:56:08,120 --> 00:56:11,540 At minsan napagtanto ko na ito at binago ko ang aking sistema 1010 00:56:11,540 --> 00:56:16,020 mula sa pagdagdag sa ang vector tulad ng 10,000 sa 100,000 beses, 1011 00:56:16,020 --> 00:56:18,910 na lang pre-paglaan ng isang vector at tumatakbo lamang sa mga iyon. 1012 00:56:18,910 --> 00:56:22,100 Nakatanggap ako ng higit sa 1,000 fold speed up. 1013 00:56:22,100 --> 00:56:26,280 Kaya ito ay isang napaka-pangkaraniwan bitag para sa R ​​programming. 1014 00:56:26,280 --> 00:56:31,560 Kung kailangan mo upang bumuo ng isang vector piraso ng piraso, pre-allocate ito. 1015 00:56:31,560 --> 00:56:35,360 1016 00:56:35,360 --> 00:56:40,240 >> Isa pang mga karaniwang trip up-- ito ay ang aking huling slide, hindi worry-- ay paghawak ng error. 1017 00:56:40,240 --> 00:56:42,890 R, upang maging lantad, ay hindi talagang gawin ito nang mahusay. 1018 00:56:42,890 --> 00:56:45,010 Mayroong maraming mga problema na maaaring i-crop up. 1019 00:56:45,010 --> 00:56:48,360 Halimbawa, kung ikaw ay makakuha ng isang array o isang vector sa labas ng isang function 1020 00:56:48,360 --> 00:56:52,377 na kayo ay umaasa sa isang solong halaga na dumating mula sa, o vice versa, 1021 00:56:52,377 --> 00:56:55,460 at pumasa ka na sa isang function na ikaw ay nagsulat umaasa sa isang solong halaga, 1022 00:56:55,460 --> 00:56:57,270 na maaaring maging isang problema. 1023 00:56:57,270 --> 00:57:01,440 >> Ang ilang function bumalik null tulad ng ginagawa ng, sabihin nating, 1024 00:57:01,440 --> 00:57:05,560 pagbabasa mula sa isang nonexistent key sa isang listahan. 1025 00:57:05,560 --> 00:57:08,527 Ngunit null ay hindi tulad ng C kung saan kung subukan mong basahin 1026 00:57:08,527 --> 00:57:11,360 mula sa isang lumang pointer, [hindi marinig] na null pointer, ito seg lamang pagkakamali 1027 00:57:11,360 --> 00:57:14,109 at kung ikaw ay nasa iyong debugger ito ay nagsasabi sa iyo nang eksakto kung nasaan ka. 1028 00:57:14,109 --> 00:57:17,080 1029 00:57:17,080 --> 00:57:20,772 Sa halip, null ay do-- function ay gawin mahuhulaan bagay 1030 00:57:20,772 --> 00:57:21,730 kung ang mga ito dala null. 1031 00:57:21,730 --> 00:57:24,575 Tulad ng kung ikaw ay ipinasa max null, ito ay magbibigay sa iyo ng mga negatibong infinity. 1032 00:57:24,575 --> 00:57:27,230 1033 00:57:27,230 --> 00:57:28,190 At ito, oo. 1034 00:57:28,190 --> 00:57:30,880 1035 00:57:30,880 --> 00:57:32,630 At kaya ito nangyari sa akin isang beses kapag ako ay 1036 00:57:32,630 --> 00:57:34,771 nagbago ng grupo ng mga patlang sa aking listahan ng istraktura 1037 00:57:34,771 --> 00:57:37,520 sabay na walang pagbabago ng mga ito sa ibang lugar kapag ako ay pagbabasa mula sa kanila. 1038 00:57:37,520 --> 00:57:40,670 At pagkatapos ay nakuha ko ang lahat ng uri ng mga random resulta infinity pagtatabas up 1039 00:57:40,670 --> 00:57:43,080 at ako ay walang ideya kung saan sila nanggaling. 1040 00:57:43,080 --> 00:57:45,310 At sa kasamaang palad, may walang tunay R mahigpit na mode 1041 00:57:45,310 --> 00:57:48,940 kung saan maaari mong sabihin kung ang isang bagay Mukhang maaaring ito ay isang error, 1042 00:57:48,940 --> 00:57:51,960 ihinto lamang doon upang maaari kong maging disiplinahin at ayusin na. 1043 00:57:51,960 --> 00:57:55,282 1044 00:57:55,282 --> 00:57:57,240 Gayunpaman, mayroong isang bagay tinatawag na stop kung hindi. 1045 00:57:57,240 --> 00:58:00,480 Ito ay katumbas ng igiit C, kung na-uusapang tungkol sa na. 1046 00:58:00,480 --> 00:58:02,690 Hindi sa tingin ko C igiit ay isang panayam topic, 1047 00:58:02,690 --> 00:58:06,370 ngunit ang iyong mga lider ng seksyon maaaring wala na sa ibabaw nito. 1048 00:58:06,370 --> 00:58:10,393 At itigil kung hindi talaga tumatagal ng anumang tambalan, kaya ang anumang mga pahayag na 1049 00:58:10,393 --> 00:58:11,824 ay maaaring maging totoo o hindi. 1050 00:58:11,824 --> 00:58:13,490 At kung ito ay hindi totoo, ito hihinto programa nito. 1051 00:58:13,490 --> 00:58:18,260 Ito ay nagsasabi sa iyo kung ano mismo ka linya ay sa at kung ano ang kalagayan ay hindi nagtagumpay. 1052 00:58:18,260 --> 00:58:21,910 >> At ito lubhang kapaki-pakinabang, halimbawa, kaliwanagan ng isip checking, function input. 1053 00:58:21,910 --> 00:58:25,110 Kaya kung mayroon kang isang function at asahan mo, sabihin nating, 1054 00:58:25,110 --> 00:58:29,640 kung ikaw ay dapat magbigay sa akin ng isang petsa, gusto ko ang petsa ay lamang ng isang vector ng haba 1 1055 00:58:29,640 --> 00:58:31,735 at saanman sa pagitan ng 1 at 31. 1056 00:58:31,735 --> 00:58:34,420 1057 00:58:34,420 --> 00:58:36,170 At kung hindi, alam ko isang bagay ay nawala maling. 1058 00:58:36,170 --> 00:58:40,280 At pinili kong tumigil doon bago ito may random kumatok sa epekto sa code 1059 00:58:40,280 --> 00:58:44,190 na ito ay mas mahirap na bakas sa pamamagitan ng. 1060 00:58:44,190 --> 00:58:47,170 Kaya na ang isa sa mga posibleng gamitin para sa stop kung hindi. 1061 00:58:47,170 --> 00:58:48,660 >> Sa papaano mang paraan, OK. 1062 00:58:48,660 --> 00:58:49,690 Kaya iyon ang katapusan. 1063 00:58:49,690 --> 00:58:51,290 Salamat sa iyo kaya magkano para sa pagdating. 1064 00:58:51,290 --> 00:58:53,710 Ako ay ranggo amateur na ito. 1065 00:58:53,710 --> 00:58:57,270 Kaya paumanhin kung ikaw ay nababato o naguguluhan o kung ano ang mayroon ka. 1066 00:58:57,270 --> 00:59:01,670 Ikinagagalak kong kumuha ng mga katanungan sa pamamagitan ng email ko sa connorharris@college.harvard.edu. 1067 00:59:01,670 --> 00:59:07,230 Dumadaan ang din para sa lahat ng tao nanonood ito nakatira o sa susunod. 1068 00:59:07,230 --> 00:59:10,190 Gayundin, kahit na ako ay hindi ako isang TF, Ako din napaka 1069 00:59:10,190 --> 00:59:13,900 handang maglingkod bilang isang hindi opisyal na tagapayo para sa kahit sinuman na 1070 00:59:13,900 --> 00:59:15,460 gamit R sa isang pangwakas na proyekto. 1071 00:59:15,460 --> 00:59:19,900 >> Kung gusto mo na iyon, pagkatapos ay makipag-usap lamang sa iyong TF 1072 00:59:19,900 --> 00:59:23,750 at pagkatapos ay sumulat sa akin ng isang email upang Alam ko kung ano ang gumagawa ka sa 1073 00:59:23,750 --> 00:59:26,680 at para makita ako magse-set up ng pulong beses sa iyo kung gusto mo. 1074 00:59:26,680 --> 00:59:27,990 Kaya muli, maraming salamat. 1075 00:59:27,990 --> 00:59:28,960 Umaasa ako sa iyo Tatangkilikin ang mga ito. 1076 00:59:28,960 --> 00:59:29,450 >> Madla: [hindi marinig]. 1077 00:59:29,450 --> 00:59:30,617 >> CONNER HARRIS: Siyempre. 1078 00:59:30,617 --> 00:59:34,910 >> Madla: Anong uri ng isang proyekto Gusto ng isang CS ng mag-aaral na gamitin ang R para sa? 1079 00:59:34,910 --> 00:59:37,427 1080 00:59:37,427 --> 00:59:40,510 CONNER HARRIS: Kaya kung hindi ka na gawin isang bagay na pulos sa pagmimina ng data, 1081 00:59:40,510 --> 00:59:43,790 halimbawa, at doon maraming mga bagay 1082 00:59:43,790 --> 00:59:46,692 maaari mong gawin sa mga na may data pagmimina at pag-aaral ng machine. 1083 00:59:46,692 --> 00:59:48,900 Baka gusto mong gamitin ang R para sa isang bahagi ng isang bagay. 1084 00:59:48,900 --> 00:59:52,022 Isinampa ko, na orihinal na, ang halimbawa ng kung ikaw ay sumusulat ng isang website 1085 00:59:52,022 --> 00:59:54,730 at gusto mong patakbuhin ang automated statistical pagsusuri ng iyong server 1086 00:59:54,730 --> 00:59:57,990 logs sa isang tiyak na oras bawat araw, na maaaring maging isang bagay na 1087 00:59:57,990 --> 01:00:01,260 napakadaling gawin sa isang maikling lamang R script na maaari mong iskedyul 1088 01:00:01,260 --> 01:00:04,200 upang magpatakbo ng gabi-gabi, halimbawa. 1089 01:00:04,200 --> 01:00:06,550 >> At ako sigurado, kung mayroong anumang kadahilanan na iyong 1090 01:00:06,550 --> 01:00:11,520 Gusto istatistika o kakayahan graphing at magkaroon ng ganitong run awtomatikong halip 1091 01:00:11,520 --> 01:00:13,790 ng pagkakaroon upang makipag-ugnayan may mga bagay sa Excel, 1092 01:00:13,790 --> 01:00:16,750 halimbawa, na ang isang bagay baka gusto mong gamitin ang R para sa. 1093 01:00:16,750 --> 01:00:21,190 Kaya ang anumang higit pang mga tanong bago ako umalis? 1094 01:00:21,190 --> 01:00:21,690 Hindi? 1095 01:00:21,690 --> 01:00:24,960 Lahat ng mga karapatan, well, Muli, salamat sa inyo para pagdating. 1096 01:00:24,960 --> 01:00:29,417