1 00:00:00,000 --> 00:00:05,691 2 00:00:05,691 --> 00:00:07,690 CONNOR HARRIS: Still I rasa beberapa video yang menarik 3 00:00:07,690 --> 00:00:12,570 dihasilkan oleh sebuah syarikat perunding profesional yang menggunakan R banyak dalam tugasnya. 4 00:00:12,570 --> 00:00:16,329 >> Pencerita: Apa yang di belakang statistik, analisis, dan penggambaran 5 00:00:16,329 --> 00:00:19,770 saintis data terang bahawa hari ini dan pemimpin perniagaan bergantung kepada 6 00:00:19,770 --> 00:00:22,012 untuk membuat keputusan yang berkuasa? 7 00:00:22,012 --> 00:00:23,540 Anda mungkin tidak selalu melihatnya. 8 00:00:23,540 --> 00:00:24,790 Tetapi ianya ada. 9 00:00:24,790 --> 00:00:29,460 Ia dipanggil R, sumber terbuka yang R-- bahasa pengaturcaraan statistik 10 00:00:29,460 --> 00:00:32,630 bahawa pakar-pakar data dunia atas penggunaan untuk segala-galanya 11 00:00:32,630 --> 00:00:35,350 dari luas pemetaan sosial dan trend pemasaran dalam talian 12 00:00:35,350 --> 00:00:39,210 untuk membangunkan kewangan dan iklim model yang membantu memacu ekonomi kita 13 00:00:39,210 --> 00:00:40,780 dan masyarakat. 14 00:00:40,780 --> 00:00:44,910 >> Tetapi apa sebenarnya R dan di mana R bermula? 15 00:00:44,910 --> 00:00:48,620 Well asalnya, R mula di sini dengan dua profesor 16 00:00:48,620 --> 00:00:51,950 yang mahu statistik yang lebih baik platform untuk pelajar mereka. 17 00:00:51,950 --> 00:00:56,030 Jadi mereka mencipta satu model selepas bahasa statistik S. 18 00:00:56,030 --> 00:01:00,480 Mereka, bersama-sama dengan lain-lain lagi, disimpan bekerja pada dan menggunakan R, 19 00:01:00,480 --> 00:01:05,489 mewujudkan alat-alat untuk R dan mencari tempat permohonan baru untuk R setiap hari. 20 00:01:05,489 --> 00:01:07,750 >> Terima kasih kepada ini adalah usaha masyarakat di seluruh dunia, 21 00:01:07,750 --> 00:01:11,850 R disimpan berkembang dengan beribu-ribu perpustakaan dibuat pengguna dibina 22 00:01:11,850 --> 00:01:15,500 untuk meningkatkan fungsi R dan pengesahan kualiti orang ramai-sumber 23 00:01:15,500 --> 00:01:19,740 dan sokongan yang paling diiktiraf pemimpin industri dalam setiap bidang yang 24 00:01:19,740 --> 00:01:25,040 menggunakan R. Yang besar, kerana R adalah yang terbaik pada apa yang dilakukan. 25 00:01:25,040 --> 00:01:28,540 Tunas pakar-pakar dengan cepat dan mudah mentafsir, berinteraksi dengan, 26 00:01:28,540 --> 00:01:33,790 dan menggambarkan data yang menunjukkan mereka dengan cepat masyarakat yang semakin meningkat dari pengguna R di seluruh dunia 27 00:01:33,790 --> 00:01:36,380 dan melihat bagaimana sumber terbuka R terus membentuk 28 00:01:36,380 --> 00:01:39,340 masa depan statistik analisis dan sains data. 29 00:01:39,340 --> 00:01:44,660 30 00:01:44,660 --> 00:01:47,710 >> CONNOR HARRIS: OK, yang besar. 31 00:01:47,710 --> 00:01:50,360 Jadi persembahan saya sendiri akan menjadi sedikit lebih tenang. 32 00:01:50,360 --> 00:01:54,380 Ia tidak akan melibatkan sebanyak itu Muzik latar belakang yang menarik. 33 00:01:54,380 --> 00:01:59,160 Tetapi seperti yang anda lihat dalam video, R adalah jenis daripada bahasa program kegunaan am. 34 00:01:59,160 --> 00:02:03,720 Tetapi ia dibuat kebanyakannya untuk kerja-kerja statistik. 35 00:02:03,720 --> 00:02:07,980 >> Jadi ia direka untuk statistik, untuk analisis data, untuk perlombongan data. 36 00:02:07,980 --> 00:02:12,420 Dan supaya anda boleh melihat ini dalam banyak pilihan reka bentuk yang pembuat R 37 00:02:12,420 --> 00:02:13,320 dibuat. 38 00:02:13,320 --> 00:02:15,472 Ia direka untuk sebahagian besarnya, orang yang tidak 39 00:02:15,472 --> 00:02:17,930 pakar-pakar dalam pengaturcaraan, yang hanya mengambil program 40 00:02:17,930 --> 00:02:23,460 di sebelah supaya mereka boleh melakukan kerja mereka dalam bidang sains sosial atau dalam statistik 41 00:02:23,460 --> 00:02:25,440 atau apa sahaja. 42 00:02:25,440 --> 00:02:27,850 >> Ia mempunyai banyak sangat perbezaan yang penting dari C. 43 00:02:27,850 --> 00:02:33,200 Tetapi sintaks dan paradigma bahawa ia menggunakan secara meluas yang sama. 44 00:02:33,200 --> 00:02:36,830 Dan anda perlu berasa cukup banyak di rumah hak off kelawar. 45 00:02:36,830 --> 00:02:38,520 Ia merupakan satu bahasa penting. 46 00:02:38,520 --> 00:02:40,260 >> Jangan bimbang terlalu banyak tentang itu jika anda tidak tahu istilah. 47 00:02:40,260 --> 00:02:42,676 Tetapi ada perbezaan yang antara penting, perisytiharan, 48 00:02:42,676 --> 00:02:43,810 dan berfungsi. 49 00:02:43,810 --> 00:02:47,600 Imperative hanya bermakna anda membuat kenyataan-kenyataan yang pada dasarnya menyuruh. 50 00:02:47,600 --> 00:02:52,340 Dan kemudian jurubahasa atau yang komputer mengikuti mereka satu demi satu. 51 00:02:52,340 --> 00:02:56,630 Ia lemah ditaip, terdapat tiada perisytiharan taip R. 52 00:02:56,630 --> 00:02:59,130 >> Dan kemudian garis antara pelbagai jenis 53 00:02:59,130 --> 00:03:03,920 agak lebih longgar daripada mereka berada dalam C, sebagai contoh. 54 00:03:03,920 --> 00:03:06,450 Dan seperti yang saya katakan terdapat Kemudahan yang sangat luas 55 00:03:06,450 --> 00:03:15,610 untuk grafik, untuk statistik analisis, untuk perlombongan data. 56 00:03:15,610 --> 00:03:19,540 Ini adalah kedua-dua yang dibina ke dalam bahasa dan, kerana video tersebut, 57 00:03:19,540 --> 00:03:23,680 beribu-ribu perpustakaan pihak ketiga yang Muat turun dan gunakan secara percuma 58 00:03:23,680 --> 00:03:25,340 syarat-syarat lesen yang sangat longgar. 59 00:03:25,340 --> 00:03:28,800 60 00:03:28,800 --> 00:03:31,500 >> Jadi secara umum, saya akan mengesyorkan bahawa anda melihat kedua buku ini 61 00:03:31,500 --> 00:03:34,610 jika anda akan bekerja pada R. Satu daripada mereka adalah rasmi R pemula 62 00:03:34,610 --> 00:03:35,110 membimbing. 63 00:03:35,110 --> 00:03:38,660 Ia diselenggarakan oleh pemaju teras R. 64 00:03:38,660 --> 00:03:42,400 Anda boleh memuat turun lagi, bebas daripada mengenakan dan secara sah di link yang di sana. 65 00:03:42,400 --> 00:03:45,430 66 00:03:45,430 --> 00:03:49,869 Semua kuliah ini akan pergi di internet, di laman web CS50 67 00:03:49,869 --> 00:03:50,660 selepas ini dilakukan. 68 00:03:50,660 --> 00:03:53,690 Jadi tidak perlu untuk menyalin perkara turun dgn penuh ketakutan. 69 00:03:53,690 --> 00:03:56,800 >> Yang satu lagi ialah buku teks oleh Cosma Shalizi, 70 00:03:56,800 --> 00:04:00,100 yang merupakan seorang profesor statistik di Carnegie Mellon, yang dipanggil Advanced Data 71 00:04:00,100 --> 00:04:02,160 Analisis daripada Point of View rendah. 72 00:04:02,160 --> 00:04:04,010 Ini bukan merupakan sebuah buku R. 73 00:04:04,010 --> 00:04:07,130 Ia sebuah buku statistik dan ia adalah sebuah buku analisis data. 74 00:04:07,130 --> 00:04:11,990 Tetapi ia sangat mudah untuk orang yang mempunyai jumlah sedikit statistik pengetahuan. 75 00:04:11,990 --> 00:04:13,750 >> Saya tidak pernah mengambil kursus formal. 76 00:04:13,750 --> 00:04:17,269 Saya hanya tahu bit dan keping dari pelbagai subjek bersekutu 77 00:04:17,269 --> 00:04:18,579 bahawa saya telah mengambil kursus dalam. 78 00:04:18,579 --> 00:04:21,839 Dan saya dapat memahami ia dengan baik. 79 00:04:21,839 --> 00:04:25,630 >> Semua angka diberi dalam R. Mereka adalah dibuat dalam R 80 00:04:25,630 --> 00:04:30,280 dan mereka juga mempunyai penyenaraian kod bawah setiap angka yang memberitahu anda 81 00:04:30,280 --> 00:04:33,270 bagaimana anda membuat setiap angka dengan kod R. 82 00:04:33,270 --> 00:04:37,400 Dan itu sangat berguna jika anda cuba untuk mencontohi 83 00:04:37,400 --> 00:04:38,650 beberapa angka yang anda lihat di dalam buku. 84 00:04:38,650 --> 00:04:47,840 >> Dan turun lagi bebas stat.cmu.edu/cshalizi/ Maaf, 85 00:04:47,840 --> 00:04:50,230 yang perlu mengurangkan cshalizi tilde. 86 00:04:50,230 --> 00:04:53,150 Saya akan pastikan untuk membetulkan yang apabila slaid rasmi naik. 87 00:04:53,150 --> 00:04:57,000 / ADAfaEPoV yang hanya singkatan tajuk buku ini. 88 00:04:57,000 --> 00:04:59,850 89 00:04:59,850 --> 00:05:02,500 >> Jadi umum caveats-- R mempunyai banyak keupayaan. 90 00:05:02,500 --> 00:05:05,331 Saya hanya akan dapat menampung permukaan banyak perkara. 91 00:05:05,331 --> 00:05:08,580 Juga bahagian pertama seminar akan menjadi sesuatu tempat pembuangan data. 92 00:05:08,580 --> 00:05:11,437 Saya agak maaf tentang itu. 93 00:05:11,437 --> 00:05:13,770 Pada asasnya, saya akan memperkenalkan anda kepada banyak perkara 94 00:05:13,770 --> 00:05:15,350 hak off kelawar, pergi secepat yang mungkin. 95 00:05:15,350 --> 00:05:17,058 Dan kemudian kita dapat bahagian yang menyeronokkan, yang 96 00:05:17,058 --> 00:05:20,570 demo di mana saya boleh menunjukkan kesemuanya yang kita telah bercakap tentang di skrin. 97 00:05:20,570 --> 00:05:23,321 Dan anda boleh bermain-main sendiri. 98 00:05:23,321 --> 00:05:26,070 Jadi ada akan menjadi banyak barangan teknikal dibuang di sini. 99 00:05:26,070 --> 00:05:28,060 Jangan bimbang tentang menyalin semua yang turun. 100 00:05:28,060 --> 00:05:31,740 Oleh kerana A, anda boleh mendapatkan semua barangan di laman web CS50 kemudian. 101 00:05:31,740 --> 00:05:37,780 Dan B, ia tidak benar-benar bahawa yang penting menghafal ini dari slaid. 102 00:05:37,780 --> 00:05:40,462 Ia lebih penting bahawa anda mendapatkan beberapa kemudahan intuitif dengannya 103 00:05:40,462 --> 00:05:44,220 dan yang datang dari hanya bermain-main. 104 00:05:44,220 --> 00:05:45,720 >> Jadi mengapa menggunakan R? 105 00:05:45,720 --> 00:05:49,440 Pada asasnya, jika anda mempunyai projek yang melibatkan perlombongan set data yang besar, data 106 00:05:49,440 --> 00:05:52,664 visualisasi, anda perlu menggunakan R. Jika anda 107 00:05:52,664 --> 00:05:55,830 melakukan analisis statistik rumit, yang akan menjadi sukar untuk dalam Excel, 108 00:05:55,830 --> 00:05:58,010 sebagai contoh, ia akan juga good-- juga 109 00:05:58,010 --> 00:06:00,506 jika anda lakukan statistik analisis yang yang automatik. 110 00:06:00,506 --> 00:06:02,130 Katakan anda mengekalkan laman web. 111 00:06:02,130 --> 00:06:06,320 Dan anda mahu membaca log pelayan setiap hari dan menyusun senarai beberapa, 112 00:06:06,320 --> 00:06:10,320 seperti negara teratas yang pengguna anda datang dari, 113 00:06:10,320 --> 00:06:15,100 beberapa statistik ringkasan kepada berapa lama mereka menghabiskan di laman web anda atau apa sahaja. 114 00:06:15,100 --> 00:06:16,910 Dan anda mahu menjalankan ini setiap hari. 115 00:06:16,910 --> 00:06:20,280 >> Sekarang jika anda melakukan ini dalam Excel, anda akan mempunyai untuk pergi ke log pelayan anda, 116 00:06:20,280 --> 00:06:23,490 mengimport ke dalam Excel spreadsheet data, 117 00:06:23,490 --> 00:06:24,910 menjalankan semua analisis secara manual. 118 00:06:24,910 --> 00:06:27,100 Dengan R, anda hanya boleh menulis satu skrip. 119 00:06:27,100 --> 00:06:29,520 Berjadual untuk berjalan setiap hari daripada sistem pengendalian anda. 120 00:06:29,520 --> 00:06:33,657 Dan kemudian setiap malam pada 2:00 AM, atau apabila anda menjadualkan ia untuk menjalankan, 121 00:06:33,657 --> 00:06:35,990 ia akan melihat melalui anda trafik internet untuk hari itu. 122 00:06:35,990 --> 00:06:39,010 Dan kemudian oleh hari esok, anda akan mempunyai berkilat, laporan baru ini 123 00:06:39,010 --> 00:06:41,710 atau apa sahaja dengan semua maklumat yang anda minta. 124 00:06:41,710 --> 00:06:44,960 125 00:06:44,960 --> 00:06:50,217 >> Jadi, pada asasnya R adalah untuk Cisco pengaturcaraan berbanding analisis Cisco. 126 00:06:50,217 --> 00:06:51,050 Awal dilakukan. 127 00:06:51,050 --> 00:06:53,104 Mari kita masuk ke dalam perkara yang sebenar. 128 00:06:53,104 --> 00:06:55,020 Jadi, ada tiga sebenar jenis dalam bahasa. 129 00:06:55,020 --> 00:06:56,120 Ada jenis angka. 130 00:06:56,120 --> 00:07:01,250 Ada semacam perbezaan antara bilangan bulat dan mata terapung, 131 00:07:01,250 --> 00:07:02,769 tetapi tidak benar-benar. 132 00:07:02,769 --> 00:07:04,560 Ada watak yang menaip, yang merupakan tali. 133 00:07:04,560 --> 00:07:07,100 Dan ada yang logik menaip, yang Booleans. 134 00:07:07,100 --> 00:07:11,080 >> Dan anda boleh menukar antara jenis menggunakan fungsi-fungsi ini sebagai angka, 135 00:07:11,080 --> 00:07:15,220 sebagai watak, kerana logik. 136 00:07:15,220 --> 00:07:17,510 Jika anda membuat panggilan, sebagai contoh, sebagai angka pada tali, 137 00:07:17,510 --> 00:07:20,030 ia akan cuba untuk membaca rentetan yang seperti nombor, dengan cara yang sama 138 00:07:20,030 --> 00:07:25,897 yang a2i dan scanf lakukan, dan C. Jika anda memanggil sebagai berangka pada benar atau palsu 139 00:07:25,897 --> 00:07:26,980 ia akan bertukar kepada 1 atau 0. 140 00:07:26,980 --> 00:07:29,110 Jika anda membuat panggilan sebagai watak pada apa-apa IA AKAN 141 00:07:29,110 --> 00:07:32,550 menukar yang ke perwakilan rentetan. 142 00:07:32,550 --> 00:07:34,990 >> Dan kemudian ada vektor dan matriks. 143 00:07:34,990 --> 00:07:37,580 Jadi vektor pada dasarnya 1 tatasusunan dimensi. 144 00:07:37,580 --> 00:07:40,600 Mereka adalah apa yang kita panggil tatasusunan dalam C. Matrices, 2 tatasusunan dimensi. 145 00:07:40,600 --> 00:07:42,350 Dan kemudian yang lebih tinggi tatasusunan dimensi yang anda boleh 146 00:07:42,350 --> 00:07:48,560 3, 4, 5 dimensi atau apa sahaja nilai angka, tali, 147 00:07:48,560 --> 00:07:52,860 nilai-nilai logik. 148 00:07:52,860 --> 00:07:55,380 >> Anda juga mempunyai senarai yang sejenis pelbagai bersekutu. 149 00:07:55,380 --> 00:07:57,390 Saya akan masuk ke dalam yang sedikit. 150 00:07:57,390 --> 00:07:59,390 Jadi satu perkara penting yang dengan lawatan-lawatan orang dalam R 151 00:07:59,390 --> 00:08:01,470 adalah bahawa tidak ada sebenar, jenis atom yang tulen. 152 00:08:01,470 --> 00:08:05,870 Tidak ada perbezaan sebenar antara nombor, seperti nilai berangka, 153 00:08:05,870 --> 00:08:07,920 dan senarai nilai angka. 154 00:08:07,920 --> 00:08:12,370 Nilai angka sebenarnya yang sama seperti vektor panjang 1. 155 00:08:12,370 --> 00:08:14,959 Dan ini mempunyai beberapa implikasi yang penting. 156 00:08:14,959 --> 00:08:17,500 Satu, ia bermakna bahawa anda boleh lakukan perkara yang sangat mudah yang melibatkan 157 00:08:17,500 --> 00:08:21,037 seperti menambah nombor kepada vektor. 158 00:08:21,037 --> 00:08:23,120 R akan pada dasarnya angka apa yang anda maksudkan dengan itu. 159 00:08:23,120 --> 00:08:24,610 Dan saya akan mendapat itu dalam satu saat. 160 00:08:24,610 --> 00:08:27,930 Ia juga bermakna bahawa tidak ada cara untuk jenis yang checker-- setakat 161 00:08:27,930 --> 00:08:30,530 sesuatu yang seperti itu wujud dalam R-- untuk memberitahu 162 00:08:30,530 --> 00:08:33,780 apabila anda telah diluluskan pada nilai tunggal apabila ia menjangka pelbagai atau sebaliknya. 163 00:08:33,780 --> 00:08:39,159 Dan yang boleh menyebabkan beberapa ganjil masalah yang saya berlari ke dalam apabila 164 00:08:39,159 --> 00:08:42,252 Saya menggunakan R semasa kerja musim panas saya. 165 00:08:42,252 --> 00:08:43,710 Dan tidak ada array bercampur jenis. 166 00:08:43,710 --> 00:08:46,543 Jadi, anda tidak boleh mempunyai array adalah unsur-unsur yang pertama, saya tidak tahu, 167 00:08:46,543 --> 00:08:49,332 rentetan "John" dan Elemen kedua adalah nombor 42. 168 00:08:49,332 --> 00:08:52,540 Jika anda cuba untuk berbuat demikian, maka anda akan mendapat segala-galanya hanya ditukar kepada rentetan. 169 00:08:52,540 --> 00:08:54,760 Oleh itu, kita mempunyai rentetan John, tali 42. 170 00:08:54,760 --> 00:08:58,250 171 00:08:58,250 --> 00:09:02,025 >> Sintaksis begitu luar biasa features-- paling R sintaks hampir sama dengan C. 172 00:09:02,025 --> 00:09:04,690 Terdapat beberapa perbezaan yang penting. 173 00:09:04,690 --> 00:09:05,620 Menaip adalah sangat lemah. 174 00:09:05,620 --> 00:09:07,360 Jadi tidak ada perisytiharan berubah-ubah. 175 00:09:07,360 --> 00:09:12,670 Tugasan menggunakan pelik pengendali ralat kurang daripada sempang. 176 00:09:12,670 --> 00:09:15,340 Komen adalah dengan tanda hash. 177 00:09:15,340 --> 00:09:19,230 Saya rasa sekarang hari kita panggil ia hashtag walaupun itu bukan benar-benar tidak accurate-- 178 00:09:19,230 --> 00:09:21,810 yang palang berganda. 179 00:09:21,810 --> 00:09:24,710 >> Sisa risau, dengan tanda-tanda %%. 180 00:09:24,710 --> 00:09:30,172 Bahagian integer adalah dengan% /% yang sangat sukar untuk dibaca apabila ia dijangka 181 00:09:30,172 --> 00:09:30,880 pada skrin. 182 00:09:30,880 --> 00:09:34,150 183 00:09:34,150 --> 00:09:37,200 Anda boleh mendapatkan julat bilangan bulat dengan kolon. 184 00:09:37,200 --> 00:09:41,840 Jadi 2,5 akan memberikan anda vektor semua nombor 2 hingga 5. 185 00:09:41,840 --> 00:09:44,530 >> Tatasusunan adalah satu-diindeks, yang skru ramai orang 186 00:09:44,530 --> 00:09:47,540 sehingga jika mereka dari lebih bahasa pengaturcaraan biasa, 187 00:09:47,540 --> 00:09:50,450 seperti C, di mana kebanyakan perkara-perkara yang sifar diindeks. 188 00:09:50,450 --> 00:09:54,420 Sekali lagi, ini adalah di mana warisan R sebagai bahasa seperti tidak 189 00:09:54,420 --> 00:09:56,560 pengaturcara profesional datang. 190 00:09:56,560 --> 00:09:59,680 Jika anda ahli sosiologi atau seorang pakar ekonomi atau sesuatu 191 00:09:59,680 --> 00:10:01,980 dan anda cuba untuk menggunakan R pada dasarnya sebagai adjung yang 192 00:10:01,980 --> 00:10:03,832 untuk anda lebih penting kerja profesional, 193 00:10:03,832 --> 00:10:06,040 anda akan mencari satu mengindeks sedikit lebih semula jadi. 194 00:10:06,040 --> 00:10:09,890 Kerana anda mula mengira pada 1 dalam kehidupan seharian, bukan 0. 195 00:10:09,890 --> 00:10:13,260 >> For-gelung, ini adalah sama dengan foreach yang membina dalam PHP, 196 00:10:13,260 --> 00:10:17,090 yang anda akan dapat belajar dalam- cantik tidak lama lagi. 197 00:10:17,090 --> 00:10:22,540 Yang adalah untuk nilai dalam vektor dan maka anda boleh melakukan perkara-perkara dengan nilai. 198 00:10:22,540 --> 00:10:24,040 PENONTON: Itu datang dalam kuliah. 199 00:10:24,040 --> 00:10:26,248 CONNOR HARRIS: Oh, itu datang kuliah, sangat baik. 200 00:10:26,248 --> 00:10:29,815 PENONTON: Tugasan ini, adakah sepatutnya menunjukkan dari kanan ke kiri? 201 00:10:29,815 --> 00:10:31,440 CONNOR HARRIS: Dari kanan ke kiri, ya. 202 00:10:31,440 --> 00:10:34,720 Anda boleh menganggapnya sebagai nilai pada kanan ditolak ke dalam pembolehubah 203 00:10:34,720 --> 00:10:36,240 disebelah kiri. 204 00:10:36,240 --> 00:10:36,781 PENONTON: OK. 205 00:10:36,781 --> 00:10:39,770 206 00:10:39,770 --> 00:10:42,330 >> CONNOR HARRIS: Dan akhirnya Sintaks fungsi agak pelik. 207 00:10:42,330 --> 00:10:48,460 Anda mempunyai foo nama tugas, yang diberikan fungsi kata kunci ini, diikuti 208 00:10:48,460 --> 00:10:51,530 oleh semua hujah-hujah dan kemudian badan fungsi selepas itu. 209 00:10:51,530 --> 00:10:53,280 Sekali lagi perkara-perkara ini boleh kelihatan agak pelik. 210 00:10:53,280 --> 00:10:57,181 Mereka akan menjadi sifat kedua selepas anda bekerja dengan bahasa untuk sedikit. 211 00:10:57,181 --> 00:10:58,930 Jadi vektor, cara anda membina vektor 212 00:10:58,930 --> 00:11:04,550 adalah anda jenis C, yang merupakan kata kunci, kemudian semua nombor yang anda mahu atau tali 213 00:11:04,550 --> 00:11:06,490 atau apa sahaja. 214 00:11:06,490 --> 00:11:07,995 Hujah-hujah juga menjadi vektor. 215 00:11:07,995 --> 00:11:09,620 Tetapi lokasi yang terhasil mendapat diratakan. 216 00:11:09,620 --> 00:11:14,385 Jadi, anda tidak boleh mempunyai array mana beberapa elemen adalah nombor tunggal 217 00:11:14,385 --> 00:11:17,010 dan beberapa elemen tatasusunan diri mereka sendiri. 218 00:11:17,010 --> 00:11:20,010 >> Jadi, jika anda cuba untuk membina sebuah lokasi adalah elemen pertama adalah 4 219 00:11:20,010 --> 00:11:22,370 dan elemen kedua adalah 3,5 array anda akan 220 00:11:22,370 --> 00:11:25,890 hanya mendapatkan pelbagai tiga elemen, 4,3,5. 221 00:11:25,890 --> 00:11:27,760 Mereka tidak boleh daripada jenis campuran. 222 00:11:27,760 --> 00:11:32,290 Jika anda cuba untuk membaca atau menulis di luar batas-batas vektor 223 00:11:32,290 --> 00:11:36,640 anda akan mendapat nilai ini dipanggil NA yang yang bermaksud nilai yang hilang. 224 00:11:36,640 --> 00:11:39,900 Dan ini adalah bertujuan untuk seperti statistik yang 225 00:11:39,900 --> 00:11:43,080 bekerja dengan tidak lengkap set data. 226 00:11:43,080 --> 00:11:46,460 >> Jika anda memohon satu fungsi yang sepatutnya mengambil hanya satu nombor untuk array 227 00:11:46,460 --> 00:11:49,220 maka apa yang anda akan mendapat adalah, fungsi akan memetakan lebih array. 228 00:11:49,220 --> 00:11:52,130 Jadi, jika fungsi anda katakan mengambil beberapa dan pulangan ia persegi. 229 00:11:52,130 --> 00:11:58,170 Anda memohon itu untuk array 2,3,5 Apa yang anda dapat adalah array 4,9,25. 230 00:11:58,170 --> 00:12:00,010 >> Dan itu sangat berguna kerana ia bermakna anda 231 00:12:00,010 --> 00:12:03,374 tidak perlu menulis untuk gelung untuk melakukan perkara-perkara yang sangat mudah seperti menyapu 232 00:12:03,374 --> 00:12:05,040 fungsi kepada semua ahli satu set data. 233 00:12:05,040 --> 00:12:08,557 Yang jika anda bekerja dengan besar set data, anda perlu melakukan banyak. 234 00:12:08,557 --> 00:12:10,390 Fungsi binari adalah kemasukan gunaan oleh penyertaan. 235 00:12:10,390 --> 00:12:12,430 Saya akan masuk ke dalam itu. 236 00:12:12,430 --> 00:12:16,750 Anda boleh mengaksesnya dengan pameran atau vektor dengan kurungan persegi. 237 00:12:16,750 --> 00:12:22,300 Kurungan Jadi nama vektor persegi 1 akan memberikan anda elemen pertama. 238 00:12:22,300 --> 00:12:25,510 Nama Vector kurungan persegi 2 akan memberikan anda elemen kedua. 239 00:12:25,510 --> 00:12:27,530 >> Anda boleh memindahkan vektor indeks dan anda akan 240 00:12:27,530 --> 00:12:29,640 kembali keluar pada dasarnya faktor sub. 241 00:12:29,640 --> 00:12:34,990 Jadi, anda boleh melakukan vektor kurungan nama C, 2,4 dan anda akan keluar vektor yang mengandungi 242 00:12:34,990 --> 00:12:38,804 kedua dan keempat elemen array. 243 00:12:38,804 --> 00:12:40,720 Dan jika anda mahu hanya statistik ringkasan cepat 244 00:12:40,720 --> 00:12:47,529 vektor seperti antara kuartil pelbagai, median, maksimum, apa sahaja, 245 00:12:47,529 --> 00:12:49,820 anda hanya boleh menaip ringkasan nama vektor dan mendapatkan yang keluar. 246 00:12:49,820 --> 00:12:52,680 Bukan itu benar-benar berguna dalam pengaturcaraan tetapi jika anda bermain 247 00:12:52,680 --> 00:12:55,990 sekitar set data, ia adalah berguna. 248 00:12:55,990 --> 00:12:58,650 >> Matrices-- pada dasarnya tatasusunan dimensi yang lebih tinggi. 249 00:12:58,650 --> 00:13:01,190 Mereka mempunyai ini notasi sintaks khas. 250 00:13:01,190 --> 00:13:07,620 Matrix dengan pelbagai yang mendapat diisi dalam- maaf, matriks dengan data, 251 00:13:07,620 --> 00:13:09,780 bilangan baris, bilangan lajur. 252 00:13:09,780 --> 00:13:13,180 Apabila anda mempunyai beberapa data, ia memenuhi dalam array pada dasarnya akan atas ke bawah 253 00:13:13,180 --> 00:13:13,380 pertama. 254 00:13:13,380 --> 00:13:14,190 Kemudian kiri ke kanan. 255 00:13:14,190 --> 00:13:15,030 Jadi, seperti itu. 256 00:13:15,030 --> 00:13:17,809 257 00:13:17,809 --> 00:13:19,600 Dan R telah dibina di pendaraban matriks, 258 00:13:19,600 --> 00:13:24,310 penguraian spektrum, pempepenjuruan, banyak perkara. 259 00:13:24,310 --> 00:13:27,785 Jika anda mahu lebih tinggi dimensi tatasusunan, jadi 3, 4, 5, 260 00:13:27,785 --> 00:13:29,410 atau apa sahaja dimensi anda boleh berbuat demikian. 261 00:13:29,410 --> 00:13:34,400 Sintaksis adalah pelbagai samar-samar sama c, maka senarai dimensi. 262 00:13:34,400 --> 00:13:38,620 Jadi, jika anda mahu 4 pelbagai dimensi dengan dimensi 4, 7, 8, 9, array, 263 00:13:38,620 --> 00:13:45,470 samar-samar sama c (4,7,8,9). 264 00:13:45,470 --> 00:13:51,180 >> Anda mengakses nilai tunggal dengan kurungan kemasukan koma pertama kemasukan kedua. 265 00:13:51,180 --> 00:13:54,870 Anda boleh mendapatkan keseluruhan keping baris atau lajur. 266 00:13:54,870 --> 00:13:59,900 Dengan sintaks tidak lengkap ini ia hanya baris nombor koma atau lajur koma 267 00:13:59,900 --> 00:14:00,400 nombor. 268 00:14:00,400 --> 00:14:02,874 269 00:14:02,874 --> 00:14:04,540 Jadi senarai adalah sejenis array yang berkaitan. 270 00:14:04,540 --> 00:14:06,360 Mereka mempunyai sintaks mereka sendiri di sini. 271 00:14:06,360 --> 00:14:08,320 Sekali lagi tidak panik menyalin semua bawah ini. 272 00:14:08,320 --> 00:14:11,370 Ini hanyalah supaya orang melalui slaid kemudian 273 00:14:11,370 --> 00:14:13,089 ada ini semua dalam sebutan bagus. 274 00:14:13,089 --> 00:14:16,130 Dan ini akan menjadi sekali sangat semula jadi Saya benar-benar berjalan dalam demo. 275 00:14:16,130 --> 00:14:19,295 276 00:14:19,295 --> 00:14:20,920 Jadi menyenaraikan tatasusunan pada dasarnya berkaitan. 277 00:14:20,920 --> 00:14:27,040 Anda boleh mengakses nilai dengan senarai nama, tanda dolar, kunci. 278 00:14:27,040 --> 00:14:31,370 Jadi, jika senarai anda dinamakan foo, maka anda boleh mengaksesnya seperti itu. 279 00:14:31,370 --> 00:14:37,032 Anda boleh mendapatkan pasangan kunci nilai keseluruhan dengan melepaskan dalam indeks kurungan persegi. 280 00:14:37,032 --> 00:14:39,240 Jika anda membaca daripada tidak wujud utama, anda akan mendapat null. 281 00:14:39,240 --> 00:14:41,150 Ia tidak akan kesilapan. 282 00:14:41,150 --> 00:14:43,590 Perkara adalah, R akan berbuat banyak dengan null kerana ia boleh. 283 00:14:43,590 --> 00:14:46,580 Dan ini boleh bermakna bahawa jika anda berada tidak mengharapkan untuk mendapatkan null keluar 284 00:14:46,580 --> 00:14:51,840 beberapa senarai dibaca, anda akan mendapat beberapa kesilapan tidak dapat diramalkan lebih bawah 285 00:14:51,840 --> 00:14:52,620 garisan itu. 286 00:14:52,620 --> 00:14:54,890 >> Ini berlaku kepada saya saya pekerjaan musim panas apabila saya menggunakan R 287 00:14:54,890 --> 00:14:58,410 di mana saya berubah bagaimana tertentu senarai ditakrifkan di satu tempat 288 00:14:58,410 --> 00:15:05,410 tetapi tidak mengubah kelak pada kod yang membaca nilai daripadanya. 289 00:15:05,410 --> 00:15:10,190 Dan jadi apa yang berlaku ialah saya membaca nilai null daripada senarai ini, 290 00:15:10,190 --> 00:15:13,090 lulus mereka ke dalam fungsi, dan sangat keliru 291 00:15:13,090 --> 00:15:16,000 apabila saya mendapat pelbagai infiniti-infiniti rawak tanaman sehingga 292 00:15:16,000 --> 00:15:16,790 dalam fungsi ini. 293 00:15:16,790 --> 00:15:20,730 Kerana jika anda memohon maksimum yang tertentu atau fungsi minimum untuk batal, 294 00:15:20,730 --> 00:15:22,570 anda akan mendapat nilai yang tak terhingga keluar. 295 00:15:22,570 --> 00:15:26,400 296 00:15:26,400 --> 00:15:29,180 >> Bingkai data, mereka subkelas senarai. 297 00:15:29,180 --> 00:15:31,170 Setiap nilai adalah vektor panjang yang sama. 298 00:15:31,170 --> 00:15:34,220 Dan mereka digunakan untuk menyampaikan, pada dasarnya, jadual data. 299 00:15:34,220 --> 00:15:36,175 Ada sintaks pengawalan ini. 300 00:15:36,175 --> 00:15:38,800 Ini semua, sekali lagi, lebih lebih jelas apabila anda sampai ke demo. 301 00:15:38,800 --> 00:15:42,240 302 00:15:42,240 --> 00:15:44,240 Dan perkara yang baik tentang bingkai data adalah bahawa anda 303 00:15:44,240 --> 00:15:49,380 boleh memberi nama kepada segala ruangan dan nama-nama kepada semua baris. 304 00:15:49,380 --> 00:15:53,890 Dan sebagainya yang menjadikan mengakses mereka sedikit mesra. 305 00:15:53,890 --> 00:15:59,130 Juga ini adalah bagaimana kebanyakan fungsi-fungsi yang membaca data dari spreadsheet Excel 306 00:15:59,130 --> 00:16:03,820 atau dari fail teks, sebagai contoh, akan membaca dalam data mereka. 307 00:16:03,820 --> 00:16:07,555 Mereka akan memasukkannya ke dalam semacam bingkai data. 308 00:16:07,555 --> 00:16:09,680 Jadi functions-- Fungsi sintaks agak pelik. 309 00:16:09,680 --> 00:16:16,160 Sekali lagi, ia adalah nama majlis itu, menyerahhakkan, fungsi kata kunci ini dan kemudian 310 00:16:16,160 --> 00:16:17,900 senarai hujah. 311 00:16:17,900 --> 00:16:24,080 Jadi, terdapat beberapa perkara yang baik tentang bagaimana fungsi bekerja di sini. 312 00:16:24,080 --> 00:16:28,170 Untuk satu, anda sebenarnya boleh menetapkan nilai lalai kepada hujah-hujah tertentu. 313 00:16:28,170 --> 00:16:32,910 Jadi, anda boleh mengatakan R1 equals-- anda boleh mengatakan foo 314 00:16:32,910 --> 00:16:38,290 adalah fungsi mana R1 sama sesuatu secara lalai jika pengguna menentukan 315 00:16:38,290 --> 00:16:39,090 tiada hujah. 316 00:16:39,090 --> 00:16:41,932 Jika tidak, ia adalah apa yang akan dimasukkan ke dalam. 317 00:16:41,932 --> 00:16:44,140 Dan ini adalah sangat berguna kerana banyak fungsi kami 318 00:16:44,140 --> 00:16:47,910 mempunyai berpuluh-puluh atau sering beratus-ratus hujah. 319 00:16:47,910 --> 00:16:51,210 Sebagai contoh yang untuk merancang graf atau merancang plot berselerak 320 00:16:51,210 --> 00:16:54,430 mempunyai hujah-hujah yang mengawal segala-galanya daripada tajuk dan paksi 321 00:16:54,430 --> 00:16:59,512 label dengan warna garisan regresi. 322 00:16:59,512 --> 00:17:01,470 Dan jadi jika anda tidak mahu untuk membuat orang menentukan 323 00:17:01,470 --> 00:17:04,050 setiap seorang daripada ini beratus-ratus hujah 324 00:17:04,050 --> 00:17:07,674 mengawal setiap aspek tunggal plot atau regresi atau apa sahaja, 325 00:17:07,674 --> 00:17:09,299 ia adalah baik untuk mempunyai nilai-nilai lalai. 326 00:17:09,299 --> 00:17:12,700 327 00:17:12,700 --> 00:17:19,146 >> Dan kemudian anda boleh sebenarnya menulis seperti yang anda lihat ke sini. 328 00:17:19,146 --> 00:17:22,869 Atau mencari contoh yang lebih baik. 329 00:17:22,869 --> 00:17:28,690 Apabila anda memanggil fungsi yang anda boleh sebenarnya memanggil mereka menggunakan nama-nama hujah. 330 00:17:28,690 --> 00:17:33,919 Jadi di sini adalah satu contoh pembina matriks. 331 00:17:33,919 --> 00:17:34,960 Ia mengambil masa tiga hujah. 332 00:17:34,960 --> 00:17:36,760 Biasanya anda mempunyai data, yang merupakan vektor. 333 00:17:36,760 --> 00:17:38,920 Anda mempunyai N berturut-turut, yang ialah bilangan baris. 334 00:17:38,920 --> 00:17:41,160 Anda mempunyai N cols-- beberapa tiang. 335 00:17:41,160 --> 00:17:43,920 Masalahnya ialah jika anda menaip Berturut-turut N sama dengan apa sahaja 336 00:17:43,920 --> 00:17:46,520 dan N col sama apa sahaja apabila anda memanggil fungsi ini, 337 00:17:46,520 --> 00:17:47,770 anda sebenarnya boleh menterbalikkan mereka. 338 00:17:47,770 --> 00:17:51,590 Jadi anda boleh meletakkan N col pertama dan baris N kedua dan ia akan membuat perbezaan. 339 00:17:51,590 --> 00:17:54,660 Jadi, itu ciri-ciri kecil yang bagus. 340 00:17:54,660 --> 00:17:56,260 >> Adakah import dan eksport. 341 00:17:56,260 --> 00:18:00,010 Ini boleh dilakukan, pada asasnya. 342 00:18:00,010 --> 00:18:03,816 Terdapat juga kemudahan untuk menulis sewenang-wenangnya R objek ke fail binari 343 00:18:03,816 --> 00:18:05,190 dan kemudian membacanya kembali kemudian. 344 00:18:05,190 --> 00:18:08,030 Yang berguna jika anda lakukan sesi interaktif besar R 345 00:18:08,030 --> 00:18:12,850 dan anda perlu untuk menyelamatkan perkara yang sangat cepat. 346 00:18:12,850 --> 00:18:16,460 Secara lalai R mempunyai senarai kerja bahawa fail Dapatkan ditulis ke dalam 347 00:18:16,460 --> 00:18:19,410 dan membaca kembali dari. 348 00:18:19,410 --> 00:18:22,350 Anda boleh melihat bahawa dengan getwg, mengubahnya dengan setdw. 349 00:18:22,350 --> 00:18:25,630 Tiada apa-apa terutama menarik di sini 350 00:18:25,630 --> 00:18:28,270 >> Jadi sekarang statistik sebenar stuff-- regresi multilinear. 351 00:18:28,270 --> 00:18:30,960 352 00:18:30,960 --> 00:18:34,910 Jadi sintaks biasa adalah sedikit rumit. 353 00:18:34,910 --> 00:18:37,260 Model ini adalah objek yang besar pada asasnya. 354 00:18:37,260 --> 00:18:39,910 Ia akan diberikan kepada LM, yang merupakan panggilan fungsi. 355 00:18:39,910 --> 00:18:43,840 Elemen pertama, y x1 tilde ditambah apa sahaja. 356 00:18:43,840 --> 00:18:46,574 357 00:18:46,574 --> 00:18:47,990 Sintaks saya di sini adalah sedikit mengelirukan. 358 00:18:47,990 --> 00:18:49,490 Saya agak maaf, ini adalah cara yang standard 359 00:18:49,490 --> 00:18:50,990 bahawa buku-buku sains komputer melakukan ini. 360 00:18:50,990 --> 00:18:54,890 Tetapi ia agak pelik. 361 00:18:54,890 --> 00:18:58,200 >> Jadi, pada asasnya, ia adalah lm kurungan, perkara pertama 362 00:18:58,200 --> 00:19:06,730 adalah variable-- maaf, bergantung x1 tilde berubah ditambah x2 ditambah 363 00:19:06,730 --> 00:19:10,910 namun ramai bebas pembolehubah yang anda ada. 364 00:19:10,910 --> 00:19:14,240 Dan kemudian ini sama ada boleh menjadi vektor, semua panjang yang sama. 365 00:19:14,240 --> 00:19:16,220 Atau mereka boleh menjadi ruang pengepala dalam rangka data 366 00:19:16,220 --> 00:19:18,553 bahawa anda hanya menentukan dalam kedua bingkai data hujah. 367 00:19:18,553 --> 00:19:23,270 368 00:19:23,270 --> 00:19:26,380 >> Anda juga boleh menentukan formula yang lebih kompleks 369 00:19:26,380 --> 00:19:31,990 supaya anda tidak perlu secara linear mundur satu pembolehubah bersandar, 370 00:19:31,990 --> 00:19:34,440 atau salah satu vektor pada vektor yang sedia ada. 371 00:19:34,440 --> 00:19:38,070 Anda boleh melakukan, sebagai contoh, komponen vektor y kuasa dua tambah 1 372 00:19:38,070 --> 00:19:42,100 dan mundur itu terhadap log beberapa vektor lain. 373 00:19:42,100 --> 00:19:45,200 Anda boleh mencetak ringkasan dari model dengan arahan ini dipanggil 374 00:19:45,200 --> 00:19:48,607 summary-- hanya ringkasan parens model. 375 00:19:48,607 --> 00:19:50,190 Sekali lagi sesuatu yang lain saya perlu menjelaskan. 376 00:19:50,190 --> 00:19:55,407 377 00:19:55,407 --> 00:19:58,615 Sesuatu yang lain yang akan dibetulkan apabila slaid naik ke internet. 378 00:19:58,615 --> 00:20:01,127 379 00:20:01,127 --> 00:20:03,210 Jika anda hanya mahu untuk mengira korelasi yang mudah 380 00:20:03,210 --> 00:20:09,170 anda boleh menggunakan vektor korelasi 1 vektor 2 fungsi teras. 381 00:20:09,170 --> 00:20:11,856 Kaedah adalah secara lalai Korelasi Pearson. 382 00:20:11,856 --> 00:20:13,480 Mereka adalah orang-orang standard yang anda boleh lakukan. 383 00:20:13,480 --> 00:20:15,990 Terdapat juga Spearman dan Korelasi Kendell 384 00:20:15,990 --> 00:20:19,530 yang merupakan antara pelbagai korelasi perintah pangkat. 385 00:20:19,530 --> 00:20:23,600 Baik mereka tidak mengira produk detik-detik di antara vektor diri mereka sendiri, 386 00:20:23,600 --> 00:20:28,511 tetapi pesanan pangkat vektor ini. 387 00:20:28,511 --> 00:20:29,510 Saya akan menjelaskan yang kemudian. 388 00:20:29,510 --> 00:20:30,120 >> PENONTON: Soalan Pantas 389 00:20:30,120 --> 00:20:30,360 >> CONNER HARRIS: Pasti. 390 00:20:30,360 --> 00:20:33,151 >> PENONTON: Oleh itu, apabila anda mengira bagi korelasi mudah melakukan 391 00:20:33,151 --> 00:20:37,655 anda menganggap bahawa terdapat statistik makna kepada korelasi? 392 00:20:37,655 --> 00:20:39,030 CONNER HARRIS: Anda tidak perlu. 393 00:20:39,030 --> 00:20:41,840 394 00:20:41,840 --> 00:20:43,960 An lm pada dasarnya hanya mesin. 395 00:20:43,960 --> 00:20:47,690 Ia akan mengambil masa dalam dua perkara dan ia akan meludah keluar 396 00:20:47,690 --> 00:20:49,770 pekali bagi talian patut terbaik. 397 00:20:49,770 --> 00:20:52,310 Ia juga melaporkan standard kesilapan kepada orang-orang pekali. 398 00:20:52,310 --> 00:20:55,865 Dan ia akan berkata kepadamu, seperti adalah memintas statistik yang signifikan 399 00:20:55,865 --> 00:20:56,740 atau perbezaan dari 0. 400 00:20:56,740 --> 00:20:59,400 Apakah cerun yang terbaik garis patut statistik 401 00:20:59,400 --> 00:21:01,510 berbeza daripada sifar, dan sebagainya. 402 00:21:01,510 --> 00:21:06,260 Jadi ia menganggap apa-apa, saya fikir adalah jawapan terbaik untuk soalan anda. 403 00:21:06,260 --> 00:21:07,410 OKEY. 404 00:21:07,410 --> 00:21:14,650 >> Plotting-- jadi sebab utama anda perlu menggunakan R, seperti regresi multilinear. 405 00:21:14,650 --> 00:21:17,320 Pada dasarnya setiap bahasa mempunyai beberapa kemudahan untuk itu. 406 00:21:17,320 --> 00:21:21,365 Dan sintaks jujur ​​R untuk regresi adalah sukar difahami bit. 407 00:21:21,365 --> 00:21:22,990 Tetapi rancangan jahat adalah di mana ia benar-benar bersinar. 408 00:21:22,990 --> 00:21:28,090 >> Fungsi kuda beban adalah plot dan ia mengambil masa dua vektor, x dan y. 409 00:21:28,090 --> 00:21:33,010 Kemudian elips bermaksud yang sangat Sebilangan besar hujah-hujah pilihan yang 410 00:21:33,010 --> 00:21:39,190 mengawal segala-galanya dari tajuk kepada warna pelbagai baris atau pelbagai mata, 411 00:21:39,190 --> 00:21:40,200 dengan jenis plot. 412 00:21:40,200 --> 00:21:42,250 Anda boleh mempunyai berselerak plot atau plot garis. 413 00:21:42,250 --> 00:21:47,900 414 00:21:47,900 --> 00:21:49,710 >> [Didengar] 2 vektor panjang yang sama. 415 00:21:49,710 --> 00:21:53,780 Anda boleh mendahului ini dengan melampirkan Rangka data dalam skrip anda. 416 00:21:53,780 --> 00:22:01,220 Dan ini akan membolehkan anda hanya menggunakan ruangan tajuk dan bukan vektor berasingan. 417 00:22:01,220 --> 00:22:05,410 Anda boleh menambah garis lurus penyuaian terbaik dan tempatan lengkung regresi untuk graf anda. 418 00:22:05,410 --> 00:22:09,390 >> Arahan ini disenaraikan di sini, ab garis dan garis, 419 00:22:09,390 --> 00:22:11,640 secara lalai ini mendapat ditulis dalam bentuk pop up windows 420 00:22:11,640 --> 00:22:15,560 kerana ia mengandaikan bahawa anda menggunakan R interaktif. 421 00:22:15,560 --> 00:22:17,310 Jika anda tidak anda boleh menulis dua fail yang 422 00:22:17,310 --> 00:22:21,600 benar-benar berada di dalam mana-mana format yang anda suka. 423 00:22:21,600 --> 00:22:25,410 Maaf, saya mempunyai kesilapan menaip Saya hanya sedar. 424 00:22:25,410 --> 00:22:30,887 425 00:22:30,887 --> 00:22:32,720 Jika anda ingin membuka satu lagi peranti grafik 426 00:22:32,720 --> 00:22:39,200 anda boleh menggunakan fungsi ini dipanggil PNG atau JPEG atau banyak format imej yang lain. 427 00:22:39,200 --> 00:22:42,319 Dan anda boleh menulis graf untuk apa jua nama fail yang anda tentukan. 428 00:22:42,319 --> 00:22:45,110 Untuk membatalkan yang anda perlu use-- Saya tidak menulis ini dalam slide-- yang 429 00:22:45,110 --> 00:22:49,650 tetapi ada satu dev fungsi dipanggil dot luar bahawa tidak menjadi hujah. 430 00:22:49,650 --> 00:22:51,517 >> Maka ada kemudahan untuk rancangan jahat 3D 431 00:22:51,517 --> 00:22:53,350 dan untuk kontur berkomplot jika anda ingin 432 00:22:53,350 --> 00:22:55,700 graf bagi dua pembolehubah bebas. 433 00:22:55,700 --> 00:22:57,150 Saya tidak akan masuk ke dalam sekarang. 434 00:22:57,150 --> 00:22:59,130 >> Terdapat juga beberapa kemudahan untuk animasi 435 00:22:59,130 --> 00:23:01,300 mereka biasanya yang diselenggara oleh pihak ketiga. 436 00:23:01,300 --> 00:23:06,330 Yang saya telah lakukan animasi dengan graf R, tetapi saya tidak menggunakan ini pihak ketiga 437 00:23:06,330 --> 00:23:06,940 perpustakaan. 438 00:23:06,940 --> 00:23:09,929 Jadi saya tidak boleh benar-benar membuktikan bagaimana baik mereka. 439 00:23:09,929 --> 00:23:12,220 Apa yang saya cadangkan jika anda mahu untuk membuat animasi menggunakan R 440 00:23:12,220 --> 00:23:16,480 adalah anda boleh menulis semua papan-papan untuk animasi 441 00:23:16,480 --> 00:23:18,470 dan kemudian anda boleh menggunakan pihak program-- ketiga 442 00:23:18,470 --> 00:23:23,630 orang-orang yang biasa dipanggil FFmpeg atau ImageMagick-- untuk menjahit 443 00:23:23,630 --> 00:23:26,540 semua bingkai anda ke dalam satu animasi. 444 00:23:26,540 --> 00:23:28,380 >> Jadi masa untuk demo. 445 00:23:28,380 --> 00:23:31,030 446 00:23:31,030 --> 00:23:37,189 Jadi, jika anda menggunakan mana-mana Unix seperti sistem yang Linux BSD tetapi yang menggunakan BSD. 447 00:23:37,189 --> 00:23:39,730 OS X membuka tetingkap terminal dan menaip R pada command prompt. 448 00:23:39,730 --> 00:23:42,820 Jika anda mempunyai R studio atau seperti, yang juga bekerja. 449 00:23:42,820 --> 00:23:46,270 Bagi pengguna Windows anda harus dapat mencari R dalam menu Mula anda. 450 00:23:46,270 --> 00:23:50,390 Ia harus dipanggil sesuatu seperti R x64 3 titik apa sahaja. 451 00:23:50,390 --> 00:23:53,110 Buka bahawa di sana. 452 00:23:53,110 --> 00:23:58,850 >> Jadi sekarang biarlah saya membuka tetingkap terminal. 453 00:23:58,850 --> 00:24:02,562 Baiklah, carian. 454 00:24:02,562 --> 00:24:03,520 PENONTON: Perintah-Space 455 00:24:03,520 --> 00:24:06,675 CONNER HARRIS: Perintah-Space, terima kasih. 456 00:24:06,675 --> 00:24:10,030 Saya tidak biasanya menggunakan Mac. 457 00:24:10,030 --> 00:24:13,310 Terminal, menunjukkan tetingkap baru. 458 00:24:13,310 --> 00:24:18,120 Tetingkap baru adalah tetapan asas, R. Oleh itu, anda perlu mendapatkan 459 00:24:18,120 --> 00:24:22,230 mesej selamat datang, sesuatu seperti ini. 460 00:24:22,230 --> 00:24:31,060 >> Jadi, saya menggunakan R interaktif. 461 00:24:31,060 --> 00:24:32,719 Anda juga boleh menulis R skrip sudah tentu. 462 00:24:32,719 --> 00:24:34,510 Pada asasnya skrip berjalan cara yang sama seperti 463 00:24:34,510 --> 00:24:40,250 jika anda sedang duduk di komputer menaip dalam setiap baris satu demi satu. 464 00:24:40,250 --> 00:24:42,660 Jadi mari kita mulakan dengan membuat vektor. 465 00:24:42,660 --> 00:24:46,230 Panah 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, pasti. 468 00:24:50,050 --> 00:24:51,630 Saya boleh membuat saiz fon yang lebih besar. 469 00:24:51,630 --> 00:24:53,030 >> PENONTON: Perintah-Plus 470 00:24:53,030 --> 00:24:53,650 >> CONNER HARRIS: Perintah-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 Baiklah, bagaimana itu? 474 00:25:00,370 --> 00:25:00,870 Baik? 475 00:25:00,870 --> 00:25:01,551 OKEY. 476 00:25:01,551 --> 00:25:03,300 Jadi mari kita mulakan dengan mengisytiharkan senarai vektor. 477 00:25:03,300 --> 00:25:08,710 Lakukan, anak panah, C 1,2,4. 478 00:25:08,710 --> 00:25:11,181 Kita dapat melihat. 479 00:25:11,181 --> 00:25:12,680 Jangan bimbang tentang kurungan di sana. 480 00:25:12,680 --> 00:25:18,590 Kurungan begitu jika anda mencetak tatasusunan yang panjang, kita boleh mana anda berada. 481 00:25:18,590 --> 00:25:26,987 Satu contoh ialah jika saya hanya ingin julat 2-200. 482 00:25:26,987 --> 00:25:28,820 Jika saya dicetak yang sangat pelbagai panjang, kurungan 483 00:25:28,820 --> 00:25:31,060 hanya jadi saya boleh menyimpan mengesan yang indeks 484 00:25:31,060 --> 00:25:33,250 kita berada di jika saya mencari melalui ini secara visual. 485 00:25:33,250 --> 00:25:36,570 486 00:25:36,570 --> 00:25:38,280 Jadi bagaimanapun, kita mempunyai. 487 00:25:38,280 --> 00:25:43,326 >> Jadi saya katakan sebelum ini bahawa tatasusunan berinteraksi sangat baik dengan, sebagai contoh, 488 00:25:43,326 --> 00:25:44,450 operasi unari seperti ini. 489 00:25:44,450 --> 00:25:46,500 Jadi apa yang anda fikir saya akan dapat jika saya menaip tambah 1? 490 00:25:46,500 --> 00:25:49,630 491 00:25:49,630 --> 00:25:51,140 Ya. 492 00:25:51,140 --> 00:25:54,250 Baiklah, sekarang saya akan membuat lokasi yang berbeza ini. 493 00:25:54,250 --> 00:26:01,650 Katakan b c 20,40, 80. 494 00:26:01,650 --> 00:26:03,400 Jadi, apa yang anda fikir arahan ini akan lakukan? 495 00:26:03,400 --> 00:26:09,962 496 00:26:09,962 --> 00:26:10,670 Menambah unsur-unsur. 497 00:26:10,670 --> 00:26:14,950 Dan jadi pada dasarnya itulah apa yang dilakukan. 498 00:26:14,950 --> 00:26:16,740 Jadi ini adalah agak mudah. 499 00:26:16,740 --> 00:26:23,800 Jadi saya bagaimana pula saya lakukan ini. c adalah, katakan, 6 kali 1-10. 500 00:26:23,800 --> 00:26:26,789 501 00:26:26,789 --> 00:26:28,830 Jadi apa yang saya mahu melihat terkandung, yang anda fikir? 502 00:26:28,830 --> 00:26:37,110 503 00:26:37,110 --> 00:26:38,110 Jadi semua gandaan enam. 504 00:26:38,110 --> 00:26:42,170 Kini, apa yang anda fikir yang akan berlaku jika saya lakukan ini? 505 00:26:42,170 --> 00:26:48,090 Saya akan membuat ini lebih jelas sedikit, c, c. 506 00:26:48,090 --> 00:26:50,365 Jadi apa yang berlaku, adakah anda berfikir, jika saya melakukan ini? 507 00:26:50,365 --> 00:26:51,488 tambah c. 508 00:26:51,488 --> 00:26:55,550 509 00:26:55,550 --> 00:26:56,050 [Didengar] 510 00:26:56,050 --> 00:26:58,552 511 00:26:58,552 --> 00:27:02,350 >> PENONTON: Sama ada kesilapan atau ia hanya menambah tiga elemen pertama. 512 00:27:02,350 --> 00:27:04,510 >> CONNER HARRIS: Tidak cukup. 513 00:27:04,510 --> 00:27:05,522 Ini adalah apa yang kita dapat. 514 00:27:05,522 --> 00:27:08,910 Apa yang berlaku ialah yang lebih pendek pelbagai, yang, tidak perlu lagi berkedudukan tinggi menggunakan basikal. 515 00:27:08,910 --> 00:27:13,990 Oleh itu, kita mendapat 124, 124, 124. 516 00:27:13,990 --> 00:27:15,710 Yeah. 517 00:27:15,710 --> 00:27:18,940 Dan pada dasarnya, anda boleh melihat tingkah laku ini sebelum ini, campur 1, 518 00:27:18,940 --> 00:27:22,190 sebagai subkelas tingkah laku ini, di mana lokasi yang singkat sahaja pada angka 519 00:27:22,190 --> 00:27:25,410 1, yang merupakan lokasi satu elemen. 520 00:27:25,410 --> 00:27:27,740 Saya hanya menjadi vektor berkata semua kali dan bukan pelbagai, 521 00:27:27,740 --> 00:27:30,290 kerana itulah yang r dokumentasi biasanya tidak. 522 00:27:30,290 --> 00:27:33,070 Ia merupakan satu c berakar umbi kebiasaan. 523 00:27:33,070 --> 00:27:37,590 >> OK, dan jadi sekarang kita mempunyai pelbagai ini. 524 00:27:37,590 --> 00:27:38,830 Oleh itu, kita mempunyai ini pelbagai, c. 525 00:27:38,830 --> 00:27:41,380 Kita boleh mendapatkan ringkasan statistik c, ringkasan c. 526 00:27:41,380 --> 00:27:46,920 527 00:27:46,920 --> 00:27:48,280 Dan itu bagus. 528 00:27:48,280 --> 00:27:51,070 529 00:27:51,070 --> 00:27:52,670 Jadi sekarang mari kita melakukan beberapa perkara matriks. 530 00:27:52,670 --> 00:27:56,160 Katakan m adalah matriks. 531 00:27:56,160 --> 00:27:57,780 Mari kita membuat ia satu tiga oleh tiga satu. 532 00:27:57,780 --> 00:28:01,630 Jadi nrows sama dengan 3, dan ncols bersamaan 3. 533 00:28:01,630 --> 00:28:04,190 534 00:28:04,190 --> 00:28:10,710 Dan bagi data mari do-- jadi apa yang anda fikir ini akan lakukan? 535 00:28:10,710 --> 00:28:15,310 536 00:28:15,310 --> 00:28:16,580 >> Betul, ia adalah satu depan. 537 00:28:16,580 --> 00:28:17,970 Ia nrow dan ncolumn. 538 00:28:17,970 --> 00:28:22,164 539 00:28:22,164 --> 00:28:24,580 Jadi apa yang saya lakukan ialah saya telah mengisytiharkan tiga oleh tiga matriks 540 00:28:24,580 --> 00:28:26,950 dan saya telah diluluskan pada pelbagai sembilan elemen. 541 00:28:26,950 --> 00:28:30,530 Jadi logaritma semua elemen satu melalui sembilan. 542 00:28:30,530 --> 00:28:33,400 543 00:28:33,400 --> 00:28:37,285 Dan nilai-nilai mengisi sehingga maaf array--? 544 00:28:37,285 --> 00:28:38,660 PENONTON: Mereka adalah asas 10 balak? 545 00:28:38,660 --> 00:28:41,284 CONNER HARRIS: Tiada log adalah logaritma asli, jadi asas e. 546 00:28:41,284 --> 00:28:44,886 547 00:28:44,886 --> 00:28:47,010 Ya, jika anda mahu asas 10 log, saya rasa anda akan mempunyai 548 00:28:47,010 --> 00:28:51,620 log apa sahaja, dibahagikan dengan log 10. 549 00:28:51,620 --> 00:28:56,750 Dan sebagainya data daripada [didengar] hanya mengisi pelbagai, jadi atas ke bawah, 550 00:28:56,750 --> 00:28:59,490 kemudian kiri ke kanan. 551 00:28:59,490 --> 00:29:06,890 Dan jika anda mahu untuk melakukan beberapa lain lokasi, katakan n adalah matriks. 552 00:29:06,890 --> 00:29:10,317 Mari kita buat, saya tidak tahu, 2 hingga 13. 553 00:29:10,317 --> 00:29:11,900 Atau saya akan melakukan sesuatu yang lebih menarik. 554 00:29:11,900 --> 00:29:13,770 Saya akan melakukan 2 hingga 4. 555 00:29:13,770 --> 00:29:15,780 nrow sekutu-sekutu, katakan, 3. 556 00:29:15,780 --> 00:29:18,992 ncol bersamaan 4. 557 00:29:18,992 --> 00:29:20,360 n. 558 00:29:20,360 --> 00:29:22,090 Oleh itu, kita telah mendapat ini. 559 00:29:22,090 --> 00:29:26,130 >> Dan sekarang jika kita mahu untuk membiak ini, yang kita akan lakukan n peratus kali peratus, 560 00:29:26,130 --> 00:29:27,680 kerana itulah n. 561 00:29:27,680 --> 00:29:30,234 562 00:29:30,234 --> 00:29:31,400 Dan kami mempunyai produk matriks. 563 00:29:31,400 --> 00:29:33,970 564 00:29:33,970 --> 00:29:37,810 Dengan cara mereka, adakah anda melihat bagaimana apabila saya mengisytiharkan n, 2 hingga 4 565 00:29:37,810 --> 00:29:43,570 vektor mendapat dikitar sehingga itu penuh sehingga semua n? 566 00:29:43,570 --> 00:29:45,710 Jika anda mahu mengambil penguraian nilai eigen, 567 00:29:45,710 --> 00:29:46,960 ini adalah sesuatu yang boleh kita lakukan dengan mudah. 568 00:29:46,960 --> 00:29:47,709 Kita boleh melakukan eigen n. 569 00:29:47,709 --> 00:29:52,290 570 00:29:52,290 --> 00:29:54,600 Dan jadi ini adalah pertama kami hadapi dengan senarai. 571 00:29:54,600 --> 00:29:57,000 >> Jadi eigen n adalah senarai dengan dua kunci. 572 00:29:57,000 --> 00:29:58,430 Nilai-nilai, yang merupakan lokasi ini di sini. 573 00:29:58,430 --> 00:30:01,030 Dan vektor, yang pelbagai ini di sini. 574 00:30:01,030 --> 00:30:08,240 Jadi, jika anda mahu untuk mendapatkan, katakan, lajur ketiga ini 575 00:30:08,240 --> 00:30:13,080 dari matriks vektor eigen, kerana yang vektor eigen adalah vektor lajur. 576 00:30:13,080 --> 00:30:24,400 Oleh itu, kita boleh lakukan eigen vec tanda n dolar vektor, koma 3, dari [didengar]. 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 Ialah, seperti yang anda jangkakan. 580 00:30:34,100 --> 00:30:39,210 >> Maka katakanlah n kali peratus kali vec. 581 00:30:39,210 --> 00:30:42,610 582 00:30:42,610 --> 00:30:48,320 Jadi keputusan di sini pasti kelihatan seperti jika kita mengambil nilai eigen yang ketiga di sini, 583 00:30:48,320 --> 00:30:50,390 yang sepadan dengan yang vektor eigen ketiga. 584 00:30:50,390 --> 00:30:53,190 Ia hanya didarab segala-galanya dalam vektor eigen ini, komponen-bijak, 585 00:30:53,190 --> 00:30:53,990 dengan nilai eigen yang. 586 00:30:53,990 --> 00:30:57,760 Dan itulah yang kita jangkakan, kerana itulah yang eigen adalah. 587 00:30:57,760 --> 00:31:00,890 Adakah sesiapa di sini tidak diambil algebra linear? 588 00:31:00,890 --> 00:31:02,530 Beberapa orang, OK. 589 00:31:02,530 --> 00:31:04,030 Hanya menghidupkan otak anda daripada untuk sedikit. 590 00:31:04,030 --> 00:31:07,490 591 00:31:07,490 --> 00:31:20,720 Dan sesungguhnya jika kita mengambil eigen n nilai tanda dolar 3 kali vec, 592 00:31:20,720 --> 00:31:21,810 juga mendapatkan perkara yang sama. 593 00:31:21,810 --> 00:31:24,726 Ia diformat berbeza kerana berturut-turut vektor dan bukan vektor lajur, 594 00:31:24,726 --> 00:31:25,640 tetapi masalah besar. 595 00:31:25,640 --> 00:31:29,430 596 00:31:29,430 --> 00:31:35,170 Dan supaya orang-orang pada dasarnya yang baik perkara-perkara yang boleh kita lakukan dengan matriks, 597 00:31:35,170 --> 00:31:36,489 senarai ditunjukkan. 598 00:31:36,489 --> 00:31:39,030 Saya harus menunjukkan yang bagus perkara tentang fungsi juga. 599 00:31:39,030 --> 00:31:41,750 >> Jadi mari kita iaitu- [didengar] fungsi, panggilan mari 600 00:31:41,750 --> 00:31:51,960 ia func terhadap fungsi n n squared-- sebenarnya, itu bukan benar-benar terbaik. 601 00:31:51,960 --> 00:31:55,632 a, b, a b kuasa dua plus. 602 00:31:55,632 --> 00:31:58,547 603 00:31:58,547 --> 00:32:00,380 Jadi satu perkara tentang fungsi, sekali lagi, adalah mereka 604 00:32:00,380 --> 00:32:01,963 tidak perlu penyata pulangan yang jelas. 605 00:32:01,963 --> 00:32:04,250 Jadi, anda boleh just-- yang Kenyataan terakhir dinilai 606 00:32:04,250 --> 00:32:07,502 akan menjadi kenyataan kembali, atau nilai yang dikembalikan. 607 00:32:07,502 --> 00:32:10,460 Jadi dalam kes ini, kita hanya menilai satu pernyataan, a kuasa + b. 608 00:32:10,460 --> 00:32:12,043 Yang akan menjadi nilai pulangan lalai. 609 00:32:12,043 --> 00:32:14,530 Tidak ada salahnya untuk dimasukkan ke dalam mengembalikan nilai dengan jelas, 610 00:32:14,530 --> 00:32:16,880 terutamanya jika anda sedang berhadapan dengan fungsi logik sangat rumit 611 00:32:16,880 --> 00:32:17,380 mengalir. 612 00:32:17,380 --> 00:32:18,450 Tetapi anda tidak memerlukannya. 613 00:32:18,450 --> 00:32:24,890 Jadi sekarang kita boleh lakukan func 5, 1, dan ini adalah pada dasarnya apa yang anda harapkan. 614 00:32:24,890 --> 00:32:29,146 615 00:32:29,146 --> 00:32:31,270 Sesuatu yang lain yang boleh kita lakukan, kita sebenarnya boleh melakukan func b 616 00:32:31,270 --> 00:32:33,260 sama dengan 1, yang sama dengan 5. 617 00:32:33,260 --> 00:32:36,870 618 00:32:36,870 --> 00:32:40,770 Jadi, jika kita menentukan nombor di sini, mana hujah pergi ke mana hujah 619 00:32:40,770 --> 00:32:44,680 fungsi, kita boleh flip sekitar nilai-nilai ini di mana sahaja kami mahu. 620 00:32:44,680 --> 00:32:48,405 >> PENONTON: Adakah terdapat sebab yang untuk menulis keluar dengan b 621 00:32:48,405 --> 00:32:52,404 sama berbanding dengan hanya menggunakan nombor dan koma? 622 00:32:52,404 --> 00:32:54,820 CONNER HARRIS: Ya, biasanya melakukan ini jika anda mempunyai fungsi 623 00:32:54,820 --> 00:32:58,540 dengan banyak hujah. 624 00:32:58,540 --> 00:33:00,690 Yang sering mungkin menjadi seperti bendera yang anda akan hanya 625 00:33:00,690 --> 00:33:03,130 hendak gunakan dalam masa yang jarang berlaku. 626 00:33:03,130 --> 00:33:06,740 Dan cara ini, anda boleh only-- anda boleh merujuk kepada hujah-hujah tertentu 627 00:33:06,740 --> 00:33:09,110 yang anda hendak gunakan nilai-nilai bukan lalai-untuk, 628 00:33:09,110 --> 00:33:14,470 dan anda tidak perlu untuk menulis satu sekumpulan bendera sama palsu selepas mereka. 629 00:33:14,470 --> 00:33:19,710 Atau saya boleh menulis ini lagi dengan nilai lalai seperti b bersamaan 2. 630 00:33:19,710 --> 00:33:26,289 Dan kemudian saya boleh lakukan f func, Saya akan melakukan 4, 1 kali ini. 631 00:33:26,289 --> 00:33:28,580 Dan 17, yang 4 kuasa dua campur 1, seperti yang anda jangkakan. 632 00:33:28,580 --> 00:33:34,290 >> Tetapi saya juga boleh hanya panggilan ini dengan func 4, 633 00:33:34,290 --> 00:33:36,970 dan saya akan mendapat 18, kerana Saya tidak menentukan b. 634 00:33:36,970 --> 00:33:38,550 Jadi b mendapat nilai lalai 2. 635 00:33:38,550 --> 00:33:41,700 636 00:33:41,700 --> 00:33:47,200 >> OK, jadi sekarang jika anda berikut bersama-sama dengan demo, 637 00:33:47,200 --> 00:33:51,010 menaip baris ini pada perintah anda meminta dan melihat apa yang datang. 638 00:33:51,010 --> 00:33:52,090 Sebenarnya, tidak berbuat demikian. 639 00:33:52,090 --> 00:33:52,590 Jenis ini. 640 00:33:52,590 --> 00:33:57,780 641 00:33:57,780 --> 00:34:01,000 Anda perlu mendapatkan sesuatu seperti ini. 642 00:34:01,000 --> 00:34:04,780 Jadi mtcars ialah dibina pada data ditetapkan untuk demonstrasi ini 643 00:34:04,780 --> 00:34:13,550 tujuan yang datang with-- yang datang dalam secara lalai dengan r pengagihan anda. 644 00:34:13,550 --> 00:34:19,211 Ini adalah himpunan statistik isu 1974 majalah Motor Trend 645 00:34:19,211 --> 00:34:20,710 pada beberapa model kereta yang berbeza. 646 00:34:20,710 --> 00:34:28,270 >> Jadi ada batu segelen, cylinders-- Saya terlupa apa disp is-- kuasa kuda. 647 00:34:28,270 --> 00:34:31,610 648 00:34:31,610 --> 00:34:32,420 Mungkin. 649 00:34:32,420 --> 00:34:36,920 Jika anda hanya kereta Google MT, maka salah satu keputusan pertama 650 00:34:36,920 --> 00:34:38,730 adalah daripada r dokumentasi rasmi 651 00:34:38,730 --> 00:34:41,080 dan ia akan menjelaskan semua bidang-bidang data. 652 00:34:41,080 --> 00:34:47,020 Jadi berat badan is-- berat adalah berat kereta di tan. 653 00:34:47,020 --> 00:34:48,880 Q sec adalah kali suku batu. 654 00:34:48,880 --> 00:34:52,409 655 00:34:52,409 --> 00:34:55,850 Jadi sekarang kita boleh melakukan beberapa perkara yang menyeronokkan tentang kereta MT adalah satu bidang data. 656 00:34:55,850 --> 00:35:01,640 >> Oleh itu, kita boleh melakukan perkara-perkara seperti nama berturut-turut, kereta mt. 657 00:35:01,640 --> 00:35:05,490 Dan ini adalah senarai semua baris dalam set data yang nama-nama kereta. 658 00:35:05,490 --> 00:35:10,780 Kita boleh melakukan colnames, mt kereta ini. 659 00:35:10,780 --> 00:35:15,500 Jika anda melakukan kereta mt, indeks sub-berangka, seperti 2. 660 00:35:15,500 --> 00:35:18,177 kita akan mendapat ruang kedua daripada ini, yang akan menjadi silinder. 661 00:35:18,177 --> 00:35:19,370 >> PENONTON: Apakah yang kamu lakukan? 662 00:35:19,370 --> 00:35:21,570 >> CONNER HARRIS: saya menaip mt kereta, kurungan e, 663 00:35:21,570 --> 00:35:24,180 yang memberikan saya yang kedua ruangan keluar dari kereta mt. 664 00:35:24,180 --> 00:35:34,501 665 00:35:34,501 --> 00:35:38,110 Atau jika kita mahu berturut-turut, saya boleh menaip mtcars koma 2, sebagai contoh. 666 00:35:38,110 --> 00:35:41,850 667 00:35:41,850 --> 00:35:46,390 Sebaliknya 2 koma, seperti itu. 668 00:35:46,390 --> 00:35:48,880 Dan yang masuk dalam berturut-turut anda. 669 00:35:48,880 --> 00:35:54,680 Ini di sini hanya memberikan anda ruang, tetapi ruang sebagai vektor. 670 00:35:54,680 --> 00:36:04,634 671 00:36:04,634 --> 00:36:06,425 Saya hanya menyedari sekarang saya terlupa untuk menunjukkan 672 00:36:06,425 --> 00:36:09,150 beberapa perkara yang sejuk kira-kira vektor yang anda boleh lakukan dengan indeks. 673 00:36:09,150 --> 00:36:10,480 Jadi biarlah saya melakukannya sekarang. 674 00:36:10,480 --> 00:36:17,130 Jadi mari kita buat c gets-- meletakkan ini di pause-- 2 kali 1 hingga 10. 675 00:36:17,130 --> 00:36:21,360 Jadi c hanya akan menjadi vektor 2 hingga 20. 676 00:36:21,360 --> 00:36:24,640 Saya boleh mengambil unsur-unsur seperti ini, c2. 677 00:36:24,640 --> 00:36:30,942 Saya boleh lulus dalam vektor seperti ini, c-- biarlah saya 678 00:36:30,942 --> 00:36:34,470 menggunakan nama yang berbeza daripada c, seperti vec c. 679 00:36:34,470 --> 00:36:37,591 680 00:36:37,591 --> 00:36:39,340 Pada asasnya, saya lakukan ini supaya anda tidak mendapat 681 00:36:39,340 --> 00:36:45,010 keliru c sebagai fungsi pembinaan vektor, 682 00:36:45,010 --> 00:36:48,800 dan kemudian c sebagai nama berubah-ubah. 683 00:36:48,800 --> 00:36:53,120 Kurungan Vec c 4, 5, 7. 684 00:36:53,120 --> 00:36:56,540 Ini akan mendapat saya keluar keempat, kelima, dan tujuh elemen array. 685 00:36:56,540 --> 00:37:01,740 Yang boleh saya lakukan vec, dimasukkan ke dalam negatif indeks, seperti negatif 4. 686 00:37:01,740 --> 00:37:06,500 Yang akan mendapatkan saya keluar ini dengan elemen keempat dikeluarkan. 687 00:37:06,500 --> 00:37:10,140 Kemudian jika saya mahu lakukan keping, Yang boleh saya lakukan vec 2 hingga 6. 688 00:37:10,140 --> 00:37:15,480 2 kolon 6 adalah hanya satu lagi vektor, 2, 3, 4, 5, 6. 689 00:37:15,480 --> 00:37:18,230 Memuntahkannya keluar itu. 690 00:37:18,230 --> 00:37:20,770 >> Jadi bagaimanapun, kembali ke kereta mt. 691 00:37:20,770 --> 00:37:26,650 692 00:37:26,650 --> 00:37:28,450 Jadi mari kita buat beberapa terurus. 693 00:37:28,450 --> 00:37:34,240 Katakan model gets-- mari linear regress-- Saya tidak tahu. 694 00:37:34,240 --> 00:37:41,780 Pertama mari kita jangan melampirkan mtcars, sudah tentu. 695 00:37:41,780 --> 00:37:44,870 696 00:37:44,870 --> 00:38:00,010 Jadi [didengar] model lm, mari kita mundur batu segelen berat badan tilde. 697 00:38:00,010 --> 00:38:03,300 Dan kemudian bingkai data adalah mtcars. 698 00:38:03,300 --> 00:38:06,830 Jadi model ringkasan. 699 00:38:06,830 --> 00:38:12,900 700 00:38:12,900 --> 00:38:15,595 >> OK, jadi ini kelihatan agak rumit. 701 00:38:15,595 --> 00:38:19,380 Tetapi pada dasarnya, melihat seolah-olah kita cuba untuk menyatakan batu segelen 702 00:38:19,380 --> 00:38:23,970 sebagai fungsi linear berat badan, kemudian kami mendapat talian ini di sini, 703 00:38:23,970 --> 00:38:28,730 yang memintas di 37,28. 704 00:38:28,730 --> 00:38:33,830 37,28 akan menjadi batu teori segelen kereta yang mempunyai berat sifar. 705 00:38:33,830 --> 00:38:41,210 Dan kemudian untuk setiap tan tambahan, anda mengetuk kira-kira lima batu segelen 706 00:38:41,210 --> 00:38:42,440 kira itu. 707 00:38:42,440 --> 00:38:45,120 Kedua-dua pekali ini anda lihat, kesilapan standard di sana. 708 00:38:45,120 --> 00:38:47,870 Dan mereka sangat statistik yang signifikan. 709 00:38:47,870 --> 00:38:55,740 >> Oleh itu, kita boleh menjadi sangat tertentu untuk 1 e 10 kepada negatif 10. 710 00:38:55,740 --> 00:38:59,510 Jadi 1 kali sesuatu yang negatif 10, bahawa jika anda membuat kereta yang lebih berat, 711 00:38:59,510 --> 00:39:01,440 ia akan mempunyai batu buruk segelen. 712 00:39:01,440 --> 00:39:04,940 713 00:39:04,940 --> 00:39:07,250 Atau kita boleh menguji beberapa model lain. 714 00:39:07,250 --> 00:39:09,230 Suka dan bukannya merosot ini di berat badan, 715 00:39:09,230 --> 00:39:12,600 mari kita mundur pada log berat badan, kerana mungkin berat badan yang berkesan 716 00:39:12,600 --> 00:39:15,690 berkenaan panjang adalah entah bagaimana tidak linear. 717 00:39:15,690 --> 00:39:18,540 >> Ini memberikan kita satu r kuasa dua daripada 0,7528. 718 00:39:18,540 --> 00:39:19,610 Jadi mari kita cuba ini. 719 00:39:19,610 --> 00:39:21,485 Kali ini mari kita buat satu pembolehubah yang berbeza juga. 720 00:39:21,485 --> 00:39:22,500 Model2. 721 00:39:22,500 --> 00:39:24,800 Jadi ringkasnya, model2. 722 00:39:24,800 --> 00:39:28,200 723 00:39:28,200 --> 00:39:31,390 Baiklah, jadi sekali lagi, kita mendapat garis lurus penyuaian terbaik kami di sini. 724 00:39:31,390 --> 00:39:36,160 Dan ini time-- ini mengatakan, pada dasarnya bahawa setiap kali anda 725 00:39:36,160 --> 00:39:38,090 meningkatkan berat sebuah kereta dengan faktor e 726 00:39:38,090 --> 00:39:40,580 anda kehilangan ini banyak batu per galon. 727 00:39:40,580 --> 00:39:43,210 728 00:39:43,210 --> 00:39:50,326 >> Dan jadi kali ini standard sisa kami kesilapan kitab itu yang tidak penting, benar-benar. 729 00:39:50,326 --> 00:39:53,540 Kesilapan sisa standard pada dasarnya hanya ralat piawai 730 00:39:53,540 --> 00:39:57,760 yang anda telah meninggalkan selepas anda mengambil garis arah aliran. 731 00:39:57,760 --> 00:40:02,805 Dan r kami kuasa dua di sini adalah 0.81, yang agak lebih baik daripada apa 732 00:40:02,805 --> 00:40:07,640 kita ada sebelum, 0.52. 733 00:40:07,640 --> 00:40:09,750 >> Dan sekarang mari kita menambah jangka regresi ini. 734 00:40:09,750 --> 00:40:13,020 Jadi mari kita mundur batu segelen kedua-dua di log berat 735 00:40:13,020 --> 00:40:21,130 dan, mari kita buat, q batu, suku masa batu. 736 00:40:21,130 --> 00:40:26,190 OK, ia mesti mempunyai the-- semua hak, 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-- maaf, apa? 740 00:40:35,000 --> 00:40:37,000 Biar saya memanggil ini sesuatu lain selain model2. 741 00:40:37,000 --> 00:40:38,000 Biar saya memanggil model3 ini. 742 00:40:38,000 --> 00:40:40,860 743 00:40:40,860 --> 00:40:42,900 Dan sekarang kita boleh melakukan ringkasan model3. 744 00:40:42,900 --> 00:40:46,850 745 00:40:46,850 --> 00:40:49,100 Dan sebagainya lagi, ini adalah pada dasarnya apa yang anda jangkakan. 746 00:40:49,100 --> 00:40:51,750 Anda perlu memintas positif. 747 00:40:51,750 --> 00:40:54,550 Berkesan meningkatkan berat badan adalah negatif. 748 00:40:54,550 --> 00:40:58,490 Dan berkesan meningkatkan suku masa batu 749 00:40:58,490 --> 00:41:02,420 adalah positif, tetapi walaupun kurang lagi daripada berat badan. 750 00:41:02,420 --> 00:41:06,010 Sekarang intuitif, anda boleh memahami ini dengan mengatakan berfikir tentang sukan kereta. 751 00:41:06,010 --> 00:41:08,950 Ada pecutan yang sangat cepat, yang singkat kali suku batu. 752 00:41:08,950 --> 00:41:13,729 Mereka juga akan menggunakan lebih banyak gas, manakala kereta yang lebih wajar akan 753 00:41:13,729 --> 00:41:16,020 untuk mempunyai pecutan yang lebih perlahan, kali suku batu yang lebih tinggi, 754 00:41:16,020 --> 00:41:20,890 dan menggunakan gas kurang ,, jadi batu lebih tinggi bagi setiap gelen. 755 00:41:20,890 --> 00:41:21,390 Yang besar. 756 00:41:21,390 --> 00:41:23,431 Dan sekarang sudah tiba masanya untuk merancang sesuatu seperti ini. 757 00:41:23,431 --> 00:41:27,810 Jadi mari kita do-- supaya terdedah tulang yang boleh kita lakukan plots-- 758 00:41:27,810 --> 00:41:35,280 kerana saya telah dilampirkan bingkai data ini sebelum itu kita hanya boleh melakukan plot, mpg wt. 759 00:41:35,280 --> 00:41:38,762 760 00:41:38,762 --> 00:41:39,720 Jadikan ini sedikit lebih besar. 761 00:41:39,720 --> 00:41:55,050 762 00:41:55,050 --> 00:41:57,350 Di sana, kita pada dasarnya mempunyai plot berselerak, tetapi mata 763 00:41:57,350 --> 00:41:58,690 adalah jenis sukar untuk melihat perkara ini. 764 00:41:58,690 --> 00:42:04,860 765 00:42:04,860 --> 00:42:10,900 >> Saya tidak ingat begitu saja apa yang sintaks adalah untuk menukar plot. 766 00:42:10,900 --> 00:42:14,100 Jadi saya rasa ini akan menjadi masa yang baik untuk membawa, 767 00:42:14,100 --> 00:42:18,000 ada bantuan builtin sangat bagus ciri, petikan bantuan berfungsi nama. 768 00:42:18,000 --> 00:42:21,690 Kami akan membawa pada dasarnya apa sahaja yang anda suka. 769 00:42:21,690 --> 00:42:28,010 770 00:42:28,010 --> 00:42:32,730 Saya rasa saya benar-benar akan melakukan ini jenis sama p untuk mata plot. 771 00:42:32,730 --> 00:42:34,369 Adakah yang mengubah apa-apa? 772 00:42:34,369 --> 00:42:35,160 Dan tidak, tidak benar-benar. 773 00:42:35,160 --> 00:42:39,160 774 00:42:39,160 --> 00:42:39,660 Baiklah. 775 00:42:39,660 --> 00:42:46,760 776 00:42:46,760 --> 00:42:49,580 >> Untuk sebab-sebab tertentu, apabila saya melakukan ini pada komputer saya sendiri manakala yang lalu, 777 00:42:49,580 --> 00:42:52,080 semua mata berselerak adalah lebih jelas. 778 00:42:52,080 --> 00:43:06,390 779 00:43:06,390 --> 00:43:13,970 Walau bagaimanapun, adalah jenis serakan yang boleh dilihat? 780 00:43:13,970 --> 00:43:15,124 Ada satu di sana. 781 00:43:15,124 --> 00:43:16,165 Beberapa di sana, beberapa tempat di sana. 782 00:43:16,165 --> 00:43:18,860 783 00:43:18,860 --> 00:43:21,185 Anda jenis boleh melihat mereka, bukan? 784 00:43:21,185 --> 00:43:24,310 Jadi, jika kita ingin menambah baris terbaik patut plot ini di sini, yang agak terdedah 785 00:43:24,310 --> 00:43:29,290 bones-- izinkan saya membuat ia sedikit lebih bagus. 786 00:43:29,290 --> 00:43:38,075 Sama utama berbanding berat badan. 787 00:43:38,075 --> 00:43:46,322 788 00:43:46,322 --> 00:43:49,740 Batu per galon. 789 00:43:49,740 --> 00:43:53,570 Sekali lagi, anda boleh melihat bagaimana berguna hujah-hujah pilihan di sini dengan juga 790 00:43:53,570 --> 00:43:58,090 tidak perlu meletakkan perkara dalam satu susunan tertentu dengan bukti-bukti papan kekunci 791 00:43:58,090 --> 00:44:01,600 apabila anda mempunyai plot, kerana ini mengambil banyak hujah. 792 00:44:01,600 --> 00:44:07,490 >> Xlab sama dengan berat badan, berat badan, tan. 793 00:44:07,490 --> 00:44:10,091 794 00:44:10,091 --> 00:44:10,590 Baiklah. 795 00:44:10,590 --> 00:44:17,340 796 00:44:17,340 --> 00:44:21,480 OK, yeah, peranti ini sedang agak menjengkelkan. 797 00:44:21,480 --> 00:44:30,160 Tetapi anda boleh lihat jenis di sana, ada tajuk Graf di sebelah. 798 00:44:30,160 --> 00:44:35,260 Di sini there's-- di bahagian bawah di sini terdapat label paksi. 799 00:44:35,260 --> 00:44:37,700 Saya tidak ingat begitu saja apa arahan ars-- 800 00:44:37,700 --> 00:44:41,000 apa fungsi adalah untuk meningkatkan saiz mereka label dan tajuk, 801 00:44:41,000 --> 00:44:43,110 tetapi mereka berada di sana. 802 00:44:43,110 --> 00:44:46,625 >> Dan jadi jika kita mahu menambah baris patut terbaik, 803 00:44:46,625 --> 00:44:49,250 kita boleh melakukan sesuatu like-- Saya mempunyai sintaks yang ditulis di sini. 804 00:44:49,250 --> 00:44:52,280 805 00:44:52,280 --> 00:45:11,130 Jadi ingat kita hanya menambah model adalah mpg, berat, mtcars. 806 00:45:11,130 --> 00:45:16,470 Dan jadi jika saya mahu menambah penyuaian terbaik line, saya boleh lakukan, model b garis. 807 00:45:16,470 --> 00:45:18,556 Dan ledakan, kami mempunyai barisan terbaik patut. 808 00:45:18,556 --> 00:45:19,970 Ia adalah jenis sukar untuk melihat lagi. 809 00:45:19,970 --> 00:45:22,178 Saya agak kesal dengan kesukaran teknologi. 810 00:45:22,178 --> 00:45:25,230 Tetapi ia berjalan pada dasarnya kiri atas ke kanan bawah. 811 00:45:25,230 --> 00:45:27,550 >> Dan jika skala adalah lebih besar, anda boleh melihat 812 00:45:27,550 --> 00:45:31,260 yang memintas adalah apa yang anda boleh mencari daripada statistik ringkasan 813 00:45:31,260 --> 00:45:34,790 jika anda menaip model ringkasan. 814 00:45:34,790 --> 00:45:40,130 OK, jadi saya berharap semua orang mendapat sesuatu yang rasa apa 815 00:45:40,130 --> 00:45:42,030 R adalah, apa yang ia adalah baik untuk. 816 00:45:42,030 --> 00:45:45,520 Anda boleh membuat plot jauh lebih bagus daripada ini di masa anda sendiri, jika anda suka. 817 00:45:45,520 --> 00:45:50,100 818 00:45:50,100 --> 00:45:53,950 >> Jadi antara muka fungsi asing. 819 00:45:53,950 --> 00:46:00,330 Ini adalah sesuatu yang tidak biasanya dibincangkan dalam kuliah pengenalan 820 00:46:00,330 --> 00:46:03,560 atau apa-apa pengenalan untuk r. 821 00:46:03,560 --> 00:46:05,584 Ia tidak mungkin anda akan memerlukannya. 822 00:46:05,584 --> 00:46:08,000 Walau bagaimanapun, saya mendapati ia berguna dalam projek-projek saya sendiri pada masa lalu. 823 00:46:08,000 --> 00:46:10,984 Dan tidak ada yang baik tutorial untuk itu dalam talian. 824 00:46:10,984 --> 00:46:12,900 Jadi, saya hanya akan tergesa-gesa anda semua melalui ini 825 00:46:12,900 --> 00:46:16,606 dan kemudian anda bebas untuk meninggalkan. 826 00:46:16,606 --> 00:46:18,480 Dan sebagainya asing antara muka fungsi adalah apa yang 827 00:46:18,480 --> 00:46:23,130 anda boleh gunakan untuk memanggil keluar untuk melihat fungsi dengan R. Secara dalaman, 828 00:46:23,130 --> 00:46:29,850 R dibina di atas aritmetik C. R adalah hanya 64-bit titik terapung aritmetik C, 829 00:46:29,850 --> 00:46:32,852 yang menaip dua [didengar]. 830 00:46:32,852 --> 00:46:35,060 Dan anda mungkin mahu lakukan ini untuk sekumpulan sebab. 831 00:46:35,060 --> 00:46:39,250 Untuk satu, R ditafsirkan, ia tidak disusun turun kepada kod mesin. 832 00:46:39,250 --> 00:46:42,170 Jadi, anda boleh menulis semula anda gelung dalaman dalam C dan kemudian mendapatkan 833 00:46:42,170 --> 00:46:45,920 kelebihan menggunakan R. Suka ia agak lebih mudah daripada C. 834 00:46:45,920 --> 00:46:48,899 Ia mempunyai grafik yang lebih baik Kemudahan dan barang kecil. 835 00:46:48,899 --> 00:46:51,690 Dan sementara masih mampu untuk mendapatkan kelajuan tertinggi daripada gelung dalaman, 836 00:46:51,690 --> 00:46:53,650 yang mana anda benar-benar memerlukannya. 837 00:46:53,650 --> 00:46:56,330 >> Penggunaan semula C perpustakaan yang sedia ada, itu juga penting. 838 00:46:56,330 --> 00:47:00,320 Jika anda mempunyai beberapa perpustakaan C untuk seperti, Saya tidak tahu, Fourier mengubah, 839 00:47:00,320 --> 00:47:05,190 atau beberapa sangat Archean prosedur statistik yang digunakan 840 00:47:05,190 --> 00:47:09,470 dalam bidang astrofizik tenaga yang tinggi atau sesuatu, saya tidak tahu. 841 00:47:09,470 --> 00:47:13,058 Astrofizik tenaga yang tinggi tidak walaupun think, saya fikir. 842 00:47:13,058 --> 00:47:16,480 Tetapi, anda boleh berbuat demikian daripada harus untuk menulis R pelabuhan asli mereka. 843 00:47:16,480 --> 00:47:22,725 Dan pada the-- dan sekali lagi, seperti jika anda melihat di kebanyakan perpustakaan lalai R, 844 00:47:22,725 --> 00:47:25,600 pada dalaman, mengenai dalaman adalah akan menggunakan fungsi asing 845 00:47:25,600 --> 00:47:26,724 antara muka yang sangat meluas. 846 00:47:26,724 --> 00:47:31,630 Mereka akan mempunyai perkara-perkara seperti Fourier mengubah atau korelasi pengkomputeran 847 00:47:31,630 --> 00:47:34,890 pekali ditulis dalam C, dan mereka akan hanya perlu R pembalut di sekeliling mereka. 848 00:47:34,890 --> 00:47:38,230 Antara muka yang satu agak sukar. Saya fikir 849 00:47:38,230 --> 00:47:43,750 kesukaran yang diperbesar-besarkan dalam banyak arahan yang anda akan dapati. 850 00:47:43,750 --> 00:47:46,200 Tetapi walau bagaimanapun, ia adalah agak mengelirukan. 851 00:47:46,200 --> 00:47:48,650 Dan saya tidak dapat mencari tutorial yang baik untuk itu, 852 00:47:48,650 --> 00:47:51,980 jadi ini adalah ia sekarang. 853 00:47:51,980 --> 00:47:55,360 Sekali lagi, segmen ini keseluruhan lebih untuk rujukan kemudian. 854 00:47:55,360 --> 00:47:57,687 Jangan bimbang tentang penyalinan semua turun sekarang. 855 00:47:57,687 --> 00:48:00,020 Jadi arahan berikut adalah untuk sistem Unix-suka, 856 00:48:00,020 --> 00:48:05,150 Linux, BSD, OS X. Saya tidak tahu bagaimana ini berfungsi pada Windows, 857 00:48:05,150 --> 00:48:08,280 tetapi sila hanya tidak melakukan anda projek akhir pada Windows. 858 00:48:08,280 --> 00:48:10,790 859 00:48:10,790 --> 00:48:12,460 Anda benar-benar tidak mahu. 860 00:48:12,460 --> 00:48:14,770 Unix adalah set lebih baik sehingga untuk pengaturcaraan kasual. 861 00:48:14,770 --> 00:48:19,320 862 00:48:19,320 --> 00:48:21,390 Jadi, pada dasarnya asing antara muka fungsi. 863 00:48:21,390 --> 00:48:24,420 Jika anda mahu menulis C fungsi untuk digunakan dengan R, 864 00:48:24,420 --> 00:48:27,250 ia mempunyai untuk mengambil semua hujah sebagai petunjuk. 865 00:48:27,250 --> 00:48:30,666 >> Jadi untuk nilai tunggal, ini bermakna ia menunjuk kepada nilai. 866 00:48:30,666 --> 00:48:33,040 Untuk tatasusunan, ini adalah penunjuk kepada unsur yang pertama, yang 867 00:48:33,040 --> 00:48:36,750 adalah apa yang nama-nama lokasi benar-benar bermakna. 868 00:48:36,750 --> 00:48:40,140 Sekali lagi, ini adalah sesuatu yang anda harus mempunyai cantik sekali turun selepas p menetapkan lima. 869 00:48:40,140 --> 00:48:43,334 Nama Array hanyalah petunjuk kepada unsur yang pertama, 870 00:48:43,334 --> 00:48:44,750 Jenis titik apung adalah dua kali ganda. 871 00:48:44,750 --> 00:48:47,310 Dan fungsi anda telah kembali tidak sah. 872 00:48:47,310 --> 00:48:50,810 Satu-satunya cara yang ia boleh sebenarnya memberitahu R apa yang berlaku 873 00:48:50,810 --> 00:48:54,410 adalah dengan mengubah memori yang memberikan R kepadanya melalui fungsi asing 874 00:48:54,410 --> 00:48:54,910 antara muka. 875 00:48:54,910 --> 00:48:58,180 876 00:48:58,180 --> 00:49:00,127 >> Oleh itu, saya telah menulis ini contoh di sini, ini adalah 877 00:49:00,127 --> 00:49:02,460 fungsi yang mengira penggunaan produk dot dua vektor. 878 00:49:02,460 --> 00:49:05,060 Ia mengambil masa dua hujah, vec1, vec2, yang merupakan vektor diri mereka sendiri, 879 00:49:05,060 --> 00:49:06,934 dan kemudian n, yang merupakan panjang, kerana sekali lagi, 880 00:49:06,934 --> 00:49:12,630 R telah dibina di [didengar] untuk mengetahui panjang vektor, tetapi C tidak. 881 00:49:12,630 --> 00:49:16,182 Dalam C, vektor adalah sewenang-wenangnya sebahagian dihalang memori. 882 00:49:16,182 --> 00:49:17,890 Jadi cara yang anda boleh mengira produk dot 883 00:49:17,890 --> 00:49:23,470 hanya menetapkan ini keluar parameter kepada sifar dan kemudian melelar melalui 884 00:49:23,470 --> 00:49:28,760 dari 1 untuk membintangi n, kerana n adalah penunjuk kepada panjang, 885 00:49:28,760 --> 00:49:32,929 hanya menambah sesuatu untuk ini keluar parameter. 886 00:49:32,929 --> 00:49:34,970 Dan ia boleh menjadi amalan yang baik jika anda akan melakukan 887 00:49:34,970 --> 00:49:37,270 ini untuk menulis dua fungsi C berasingan. 888 00:49:37,270 --> 00:49:41,970 Salah seorang daripada mereka has-- Salah seorang daripada mereka hanya mengambil hujah-hujah dan jenis 889 00:49:41,970 --> 00:49:43,970 bahawa mereka biasanya akan berada dalam C. 890 00:49:43,970 --> 00:49:47,780 >> Jadi Ia mengambil lokasi hujah sebagai petunjuk. 891 00:49:47,780 --> 00:49:57,090 Tetapi hujah nilai tunggal seperti n, ia hanya mengambil sebagai nilai dengan menyalin, 892 00:49:57,090 --> 00:49:57,917 tanpa petunjuk. 893 00:49:57,917 --> 00:49:59,750 Dan kemudian ia tidak [Didengar] daripada penunjuk. 894 00:49:59,750 --> 00:50:01,290 Dan kemudian anda boleh mempunyai yang berbeza, pada dasarnya, 895 00:50:01,290 --> 00:50:03,623 fungsi pembungkus yang pada dasarnya mengendalikan keperluan 896 00:50:03,623 --> 00:50:07,740 fungsi asing antara muka untuk anda. 897 00:50:07,740 --> 00:50:11,840 >> Cara anda panggil ini dalam R adalah, sekali anda menghidupkan fungsi anda yang ditulis dalam C, 898 00:50:11,840 --> 00:50:17,770 anda menaip R cmd shlib, R arahan perpustakaan kongsi, 899 00:50:17,770 --> 00:50:20,110 foo dot c, atau apa sahaja nama fail anda, 900 00:50:20,110 --> 00:50:23,020 dan OS tidak shell di terminal R. 901 00:50:23,020 --> 00:50:25,200 Dan ini akan mewujudkan perpustakaan dipanggil foo dot demikian. 902 00:50:25,200 --> 00:50:28,180 Dan kemudian anda boleh memuatkan dalam skrip kami atau secara interaktif 903 00:50:28,180 --> 00:50:32,310 dengan arahan beban dyn titik. 904 00:50:32,310 --> 00:50:35,720 Kemudian ada satu majlis dalam R dipanggil dot c. 905 00:50:35,720 --> 00:50:39,310 >> Ini mengambil hujah-hujah yang pertama nama fungsi dalam C 906 00:50:39,310 --> 00:50:40,970 yang anda mahu panggil. 907 00:50:40,970 --> 00:50:43,920 Dan kemudian semua parameter dengan fungsi itu, 908 00:50:43,920 --> 00:50:45,420 mereka perlu berada dalam susunan yang betul. 909 00:50:45,420 --> 00:50:48,580 Anda perlu menggunakan jenis ini fungsi paksaan sebagai integer, kerana 910 00:50:48,580 --> 00:50:52,050 dua, kerana watak, dan logik. 911 00:50:52,050 --> 00:50:54,710 Dan kemudian apabila ia mengembalikan senarai, yang sekali lagi hanya 912 00:50:54,710 --> 00:50:57,550 pelbagai bersekutu nama parameter dan nilai 913 00:50:57,550 --> 00:51:00,950 selepas majlis itu telah berjalan. 914 00:51:00,950 --> 00:51:08,520 >> Jadi dalam kes ini, kerana dot prod mempunyai hujah-hujah vec1, vec2 dan int n, n keluar. 915 00:51:08,520 --> 00:51:11,980 Ke titik c kita ada dot prod, nama fungsi yang 916 00:51:11,980 --> 00:51:16,250 kami memanggil, vec1, vec2, jenis memaksa. 917 00:51:16,250 --> 00:51:20,060 Panjang memuat vektor, Saya hanya memilih vec1 sewenang-wenangnya. 918 00:51:20,060 --> 00:51:25,479 Ia akan menjadi lebih kukuh untuk mengatakan s panjang min integer vec1, panjang vec2. 919 00:51:25,479 --> 00:51:27,520 Kemudian hanya sebagai dua sifar, kerana kita tidak benar-benar 920 00:51:27,520 --> 00:51:29,644 peduli apa yang masuk ke dalam keluar parameter kerana kami 921 00:51:29,644 --> 00:51:32,270 menetapkan ia kepada sifar juga. 922 00:51:32,270 --> 00:51:37,560 >> Kemudian keputusan akan menjadi pelbagai besar bersekutu pada dasarnya 923 00:51:37,560 --> 00:51:42,090 vec1 adalah apa sahaja, vec2 adalah apa sahaja. 924 00:51:42,090 --> 00:51:44,330 Tetapi kita berminat untuk keluar, jadi kita boleh mendapatkan yang keluar. 925 00:51:44,330 --> 00:51:47,780 Ini sekali lagi, satu contoh mainan yang sangat satu antara muka fungsi asing. 926 00:51:47,780 --> 00:51:54,160 Tetapi jika anda mempunyai untuk mengira dot produk vektor besar dalam gelung, 927 00:51:54,160 --> 00:51:56,960 atau jika anda perlu lakukan sesuatu yang lain dalam gelung, 928 00:51:56,960 --> 00:51:59,850 dan anda tidak mahu bergantung kepada R, yang tidak mempunyai sedikit overhead 929 00:51:59,850 --> 00:52:02,830 dibina ke dalamnya, ini boleh menjadi berguna. 930 00:52:02,830 --> 00:52:05,870 >> Sekali lagi, ini tidak selalunya satu topik pengenalan kepada R. 931 00:52:05,870 --> 00:52:08,571 Ia tidak baik didokumenkan. 932 00:52:08,571 --> 00:52:11,070 Saya hanya memasukkannya kerana Saya mendapati ia berguna pada masa lalu. 933 00:52:11,070 --> 00:52:13,654 Amalan itu, yang tidak baik. 934 00:52:13,654 --> 00:52:15,820 Saya nyatakan bahawa ada untuk gelung dalam fungsi. 935 00:52:15,820 --> 00:52:21,150 Secara amnya anda tidak harus, bahasa, tidak menggunakannya. 936 00:52:21,150 --> 00:52:26,100 Berdasarkan cara R melaksanakan lelaran secara dalaman, ia boleh menjadi perlahan. 937 00:52:26,100 --> 00:52:28,540 Mereka hanya juga kelihatan hodoh. 938 00:52:28,540 --> 00:52:32,410 >> R mengendalikan vektor sangat baik, jadi sering kali anda tidak perlu menggunakannya. 939 00:52:32,410 --> 00:52:35,050 940 00:52:35,050 --> 00:52:38,900 Kemudian anda boleh biasanya menggantikan vektor sering 941 00:52:38,900 --> 00:52:42,490 dengan fungsi-fungsi ini dipanggil tinggi fungsi perintah, Map, Kurangkan, 942 00:52:42,490 --> 00:52:44,404 Mencari, atau penapis. 943 00:52:44,404 --> 00:52:46,320 Saya hanya akan memberikan beberapa contoh-contoh apa ini lakukan. 944 00:52:46,320 --> 00:52:49,957 Peta adalah fungsi perintah yang lebih tinggi kerana ia mengambil fungsi sebagai hujah. 945 00:52:49,957 --> 00:52:52,290 Jadi, anda boleh memberikan fungsi, anda boleh memberikan pelbagai, 946 00:52:52,290 --> 00:52:54,640 dan ia akan memohon fungsi untuk setiap elemen array 947 00:52:54,640 --> 00:52:55,681 dan mengembalikan array baru. 948 00:52:55,681 --> 00:52:58,035 949 00:52:58,035 --> 00:53:00,160 Mengurangkan, pada dasarnya anda memberi ia array, anda memberikan 950 00:53:00,160 --> 00:53:02,930 fungsi yang mengambil masa dua hujah. 951 00:53:02,930 --> 00:53:07,100 Ia akan menggunakan fungsi pertama, Hujah pertama dengan beberapa nilai starter. 952 00:53:07,100 --> 00:53:09,440 Kemudian untuk keputusan yang kedua. 953 00:53:09,440 --> 00:53:12,590 Kemudian kepada keputusan yang di ketiga, maka kepada keputusan bahawa dalam keempat. 954 00:53:12,590 --> 00:53:14,870 Dan kemudian kembali apabila ia sampai ke akhir. 955 00:53:14,870 --> 00:53:17,620 Jadi, sebagai contoh, jika anda mahu kirakan jumlah semua unsur-unsur 956 00:53:17,620 --> 00:53:23,240 dalam array, daripada anda mungkin memanggil mengurangkan dengan [didengar] mengurangkan dengan menghimpunkannya 957 00:53:23,240 --> 00:53:26,620 fungsi, seperti func a, b, mengembalikan + b. 958 00:53:26,620 --> 00:53:28,960 Dan kemudian mula nilai 0. 959 00:53:28,960 --> 00:53:32,950 >> Dan semua ini, anda boleh menemui mereka diterangkan dalam dokumentasi R, 960 00:53:32,950 --> 00:53:35,720 dalam mana-mana buku teks pada pengaturcaraan berfungsi. 961 00:53:35,720 --> 00:53:38,330 Terdapat juga kelas ini fungsi dipanggil memohon fungsi, 962 00:53:38,330 --> 00:53:42,807 yang saya don't-- mereka agak sukar untuk menjelaskan, 963 00:53:42,807 --> 00:53:45,640 tetapi jika anda melihat dalam [didengar] ditempah bahawa saya memberi contoh pada permulaan, 964 00:53:45,640 --> 00:53:48,615 beliau menjelaskan kepada mereka dengan baik dalam lampiran di atas R pengaturcaraan. 965 00:53:48,615 --> 00:53:51,599 966 00:53:51,599 --> 00:53:53,390 Lebih lanjut mengenai amalan, appending kepada vektor. 967 00:53:53,390 --> 00:53:57,570 968 00:53:57,570 --> 00:53:58,070 Ya? 969 00:53:58,070 --> 00:54:01,651 970 00:54:01,651 --> 00:54:02,900 Saya rasa saya perlu membetulkan itu. 971 00:54:02,900 --> 00:54:07,450 Dalam baris pertama, anak panah vec, anak panah yang tidak sepatutnya berada di sana. 972 00:54:07,450 --> 00:54:10,920 Anda boleh menetapkan untuk vektor, sekali lagi, dengan mengambil panjangnya ditambah 1 973 00:54:10,920 --> 00:54:13,220 dan memberikan beberapa nilai untuk itu. 974 00:54:13,220 --> 00:54:18,970 Yang akan melanjutkan vektor, atau anda boleh lakukan setaraf vec c, newvalue vec. 975 00:54:18,970 --> 00:54:21,540 Sekali lagi, jika anda menggunakan C dengan satu hujah sebagai vektor, 976 00:54:21,540 --> 00:54:23,300 hierarki yang terhasil mendapat diratakan. 977 00:54:23,300 --> 00:54:27,160 Jadi anda hanya akan mendapat vektor yang yang diberikan oleh 1. 978 00:54:27,160 --> 00:54:30,410 Jangan sekali-kali melakukan ini. 979 00:54:30,410 --> 00:54:33,330 >> Sebab mengapa anda tidak perlu melakukan ini adalah ini. 980 00:54:33,330 --> 00:54:37,430 Apabila anda memperuntukkan vektor, ia memberikan sebahagian memori tertentu. 981 00:54:37,430 --> 00:54:40,680 Jika anda meningkatkan saiz vektor, ia perlu mengagihkan semula vektor 982 00:54:40,680 --> 00:54:43,820 di tempat lain. 983 00:54:43,820 --> 00:54:46,980 Dan supaya pengagihan semula agak mahal. 984 00:54:46,980 --> 00:54:50,530 Saya tidak akan pergi ke butir-butir bagaimana allocators memori dilaksanakan 985 00:54:50,530 --> 00:54:57,280 di peringkat sistem operasi, tetapi ia mengambil banyak masa 986 00:54:57,280 --> 00:54:58,962 untuk mencari sebahagian baru memori. 987 00:54:58,962 --> 00:55:00,920 Dan juga, jika anda semula peruntukan banyak dan banyak 988 00:55:00,920 --> 00:55:03,500 daripada semakin besar ketulan, anda berakhir 989 00:55:03,500 --> 00:55:06,420 dengan sesuatu yang dinamakan pemecahan ingatan, 990 00:55:06,420 --> 00:55:09,390 di mana memori yang tersedia adalah dibahagikan kepada banyak blok kecil 991 00:55:09,390 --> 00:55:11,500 di titik allocators memori pandangan. 992 00:55:11,500 --> 00:55:15,340 Dan ia menjadi lebih keras dan lebih keras untuk mencari memori untuk perkara-perkara lain. 993 00:55:15,340 --> 00:55:19,455 Jadi, jika anda perlu untuk melakukan ini, jika anda perlu berkembang vektor dari satu hujung 994 00:55:19,455 --> 00:55:24,240 ke depan, dan bukannya appending kepadanya sentiasa, anda perlu pra-memperuntukkan ia. 995 00:55:24,240 --> 00:55:29,310 Anak panah Vec, panjang vektor sama 1000, atau apa sahaja. 996 00:55:29,310 --> 00:55:33,200 >> Dan kemudian anda hanya boleh menetapkan kepada nilai-nilai yang vektor ini 997 00:55:33,200 --> 00:55:36,000 masa selepas anda telah diperuntukkan sekali. 998 00:55:36,000 --> 00:55:40,140 Saya berlari ke dalam ini, sekali lagi, kerja musim panas saya apabila saya menulis NRA pengkamiran 999 00:55:40,140 --> 00:55:42,120 persamaan penyelesai. 1000 00:55:42,120 --> 00:55:43,180 Bukan simbolik berangka. 1001 00:55:43,180 --> 00:55:49,290 Idea ini adalah bahawa apabila anda mempunyai satu nilai untuk penyelesaian anda, 1002 00:55:49,290 --> 00:55:51,240 anda menggunakannya untuk pengiraan yang seterusnya. 1003 00:55:51,240 --> 00:55:53,700 Begitu naif semula jadi saya kecenderungan adalah untuk mengatakan OK, 1004 00:55:53,700 --> 00:55:56,930 jadi saya akan bermula dengan vektor itulah nilai yang besar. 1005 00:55:56,930 --> 00:56:01,260 Mengira itu nilai seterusnya yang masuk ke vektor penyelesaian saya, 1006 00:56:01,260 --> 00:56:02,630 dan menambah itu. 1007 00:56:02,630 --> 00:56:05,290 >> Buat sesuatu yang lain, menambah itu. 1008 00:56:05,290 --> 00:56:08,120 Ia pergi sangat, sangat perlahan-lahan. 1009 00:56:08,120 --> 00:56:11,540 Dan apabila saya menyedari ini dan saya menukar sistem saya 1010 00:56:11,540 --> 00:56:16,020 dari appending kepada vektor ini seperti 10,000 hingga 100,000 kali, 1011 00:56:16,020 --> 00:56:18,910 hanya pra-memperuntukkan vektor dan hanya berjalan dengan itu. 1012 00:56:18,910 --> 00:56:22,100 Saya mendapat lebih daripada 1000 kali ganda kelajuan sehingga. 1013 00:56:22,100 --> 00:56:26,280 Jadi ini adalah satu perkara biasa perangkap untuk pengaturcaraan R. 1014 00:56:26,280 --> 00:56:31,560 Jika anda perlu untuk membina vektor sekeping oleh sekeping, pra-memperuntukkan ia. 1015 00:56:31,560 --> 00:56:35,360 1016 00:56:35,360 --> 00:56:40,240 >> Satu lagi perjalanan biasa up-- ini adalah terakhir saya slaid, tidak worry-- adalah pengendalian ralat. 1017 00:56:40,240 --> 00:56:42,890 R, terus-terang, tidak benar-benar melakukan ini dengan baik. 1018 00:56:42,890 --> 00:56:45,010 Terdapat banyak masalah yang boleh timbul. 1019 00:56:45,010 --> 00:56:48,360 Sebagai contoh, jika anda mendapat array atau vektor daripada fungsi 1020 00:56:48,360 --> 00:56:52,377 yang anda jangkakan satu Nilai untuk datang dari, atau sebaliknya, 1021 00:56:52,377 --> 00:56:55,460 dan anda lulus itu ke dalam fungsi yang anda menulis menjangkakan nilai tunggal, 1022 00:56:55,460 --> 00:56:57,270 yang boleh menjadi masalah. 1023 00:56:57,270 --> 00:57:01,440 >> Fungsi-fungsi tertentu kembali null sebagai lakukan, katakan, 1024 00:57:01,440 --> 00:57:05,560 membaca dari utama tidak wujud dalam senarai. 1025 00:57:05,560 --> 00:57:08,527 Tetapi null tidak seperti C di mana jika anda cuba untuk membaca 1026 00:57:08,527 --> 00:57:11,360 daripada penunjuk lama, [didengar] untuk menyeimbangkan penunjuk, ia hanya seg kesalahan 1027 00:57:11,360 --> 00:57:14,109 dan jika anda berada dalam penyahpepijat anda ia memberitahu dengan tepat di mana anda berada. 1028 00:57:14,109 --> 00:57:17,080 1029 00:57:17,080 --> 00:57:20,772 Sebaliknya, null akan do-- fungsi akan melakukan perkara-perkara yang tidak menentu 1030 00:57:20,772 --> 00:57:21,730 jika mereka null tangan. 1031 00:57:21,730 --> 00:57:24,575 Like jika anda menyerahkan max null, ia akan memberikan anda infiniti negatif. 1032 00:57:24,575 --> 00:57:27,230 1033 00:57:27,230 --> 00:57:28,190 Dan sebagainya, yeah. 1034 00:57:28,190 --> 00:57:30,880 1035 00:57:30,880 --> 00:57:32,630 Dan hal ini berlaku kepada saya sekali apabila saya mempunyai 1036 00:57:32,630 --> 00:57:34,771 berubah sekumpulan bidang dalam struktur senarai saya 1037 00:57:34,771 --> 00:57:37,520 sekali tanpa mengubah mereka di tempat lain apabila saya membaca dari mereka. 1038 00:57:37,520 --> 00:57:40,670 Dan kemudian saya mendapat pelbagai rawak hasil tanaman sehingga infiniti 1039 00:57:40,670 --> 00:57:43,080 dan saya tidak tahu di mana mereka datang. 1040 00:57:43,080 --> 00:57:45,310 Dan malangnya, ada tiada cara yang ketat sebenar R 1041 00:57:45,310 --> 00:57:48,940 di mana anda boleh mengatakan jika sesuatu kelihatan seperti ia mungkin satu kesilapan, 1042 00:57:48,940 --> 00:57:51,960 hanya berhenti di situ supaya saya boleh menjadi berdisiplin dan menetapkan bahawa. 1043 00:57:51,960 --> 00:57:55,282 1044 00:57:55,282 --> 00:57:57,240 Walau bagaimanapun, ada sesuatu dipanggil berhenti jika tidak. 1045 00:57:57,240 --> 00:58:00,480 Ini adalah bersamaan dengan menegaskan C, jika anda telah berbincang tentang perkara itu. 1046 00:58:00,480 --> 00:58:02,690 Saya tidak fikir C menegaskan adalah satu topik kuliah, 1047 00:58:02,690 --> 00:58:06,370 tetapi pemimpin seksyen anda mungkin telah pergi ke atasnya. 1048 00:58:06,370 --> 00:58:10,393 Dan berhenti jika tidak pada dasarnya mengambil apa-apa predikat, jadi apa-apa pernyataan yang 1049 00:58:10,393 --> 00:58:11,824 boleh menjadi benar atau palsu. 1050 00:58:11,824 --> 00:58:13,490 Dan jika ia palsu, ia berhenti programnya. 1051 00:58:13,490 --> 00:58:18,260 Ia memberitahu anda apa yang anda beratur berada di atas dan apa keadaan gagal. 1052 00:58:18,260 --> 00:58:21,910 >> Dan ini sangat berguna, sebagai contoh, semakan kewarasan, input fungsi. 1053 00:58:21,910 --> 00:58:25,110 Jadi jika anda mempunyai fungsi dan anda mengharapkan, berkata, 1054 00:58:25,110 --> 00:58:29,640 jika anda perlu memberi saya tarikh, saya ingin tarikh hanya vektor panjang 1 1055 00:58:29,640 --> 00:58:31,735 dan di suatu tempat antara 1 dan 31. 1056 00:58:31,735 --> 00:58:34,420 1057 00:58:34,420 --> 00:58:36,170 Dan jika tidak, saya tahu sesuatu yang silapnya. 1058 00:58:36,170 --> 00:58:40,280 Dan saya memilih untuk berhenti di situ sebelum ini mempunyai ketukan rawak pada kesan dengan kod 1059 00:58:40,280 --> 00:58:44,190 bahawa ia lebih sukar untuk mengesan melalui. 1060 00:58:44,190 --> 00:58:47,170 Jadi, itu satu kemungkinan gunakan untuk berhenti jika tidak. 1061 00:58:47,170 --> 00:58:48,660 >> Walau bagaimanapun, OK. 1062 00:58:48,660 --> 00:58:49,690 Jadi itulah akhirnya. 1063 00:58:49,690 --> 00:58:51,290 Terima kasih banyak kerana datang. 1064 00:58:51,290 --> 00:58:53,710 Saya adalah seorang amatur pangkat di ini. 1065 00:58:53,710 --> 00:58:57,270 Jadi maaf jika anda bosan atau keliru atau golongan berada. 1066 00:58:57,270 --> 00:59:01,670 Saya gembira untuk menjawab sebarang soalan melalui e-mel di connorharris@college.harvard.edu. 1067 00:59:01,670 --> 00:59:07,230 Ini pergi juga untuk semua orang menonton ini hidup atau di kemudian hari. 1068 00:59:07,230 --> 00:59:10,190 Juga, walaupun saya tidak TF yang, saya juga sangat 1069 00:59:10,190 --> 00:59:13,900 bersedia untuk berkhidmat sebagai tidak rasmi penasihat untuk sesiapa sahaja yang yang 1070 00:59:13,900 --> 00:59:15,460 menggunakan R dalam projek akhir. 1071 00:59:15,460 --> 00:59:19,900 >> Jika ingin itu, kemudian hanya bercakap dengan TF anda 1072 00:59:19,900 --> 00:59:23,750 dan kemudian menulis saya e-mel supaya Saya tahu apa yang anda bekerja pada 1073 00:59:23,750 --> 00:59:26,680 dan saya boleh menyediakan mesyuarat kali dengan anda jika anda mahu. 1074 00:59:26,680 --> 00:59:27,990 Jadi sekali lagi, terima kasih banyak. 1075 00:59:27,990 --> 00:59:28,960 Saya berharap anda berpuas hati. 1076 00:59:28,960 --> 00:59:29,450 >> PENONTON: [didengar]. 1077 00:59:29,450 --> 00:59:30,617 >> CONNER HARRIS: Sudah tentu. 1078 00:59:30,617 --> 00:59:34,910 >> PENONTON: Apakah jenis projek akan seorang pelajar CS menggunakan R untuk? 1079 00:59:34,910 --> 00:59:37,427 1080 00:59:37,427 --> 00:59:40,510 CONNER HARRIS: Jadi, jika anda tidak melakukan sesuatu yang semata-mata dalam perlombongan data, 1081 00:59:40,510 --> 00:59:43,790 sebagai contoh, dan terdapat banyak perkara 1082 00:59:43,790 --> 00:59:46,692 anda boleh lakukan dengan dengan data perlombongan dan pembelajaran mesin. 1083 00:59:46,692 --> 00:59:48,900 Anda mungkin mahu menggunakan R untuk komponen sesuatu. 1084 00:59:48,900 --> 00:59:52,022 Saya dibesarkan, pada asalnya, contoh daripada jika anda menulis sebuah laman web 1085 00:59:52,022 --> 00:59:54,730 dan anda mahu menjalankan automatik analisis statistik pelayan anda 1086 00:59:54,730 --> 00:59:57,990 log pada waktu tertentu setiap hari, yang mungkin menjadi sesuatu yang 1087 00:59:57,990 --> 01:00:01,260 sangat mudah untuk dilakukan dalam masa yang singkat R skrip yang anda boleh menjadualkan 1088 01:00:01,260 --> 01:00:04,200 untuk menjalankan setiap malam, sebagai contoh. 1089 01:00:04,200 --> 01:00:06,550 >> Dan saya pasti, jika ada apa-apa sebab anda akan 1090 01:00:06,550 --> 01:00:11,520 mahu statistik atau keupayaan grafik dan mempunyai jangka ini secara automatik sebaliknya 1091 01:00:11,520 --> 01:00:13,790 mempunyai untuk berinteraksi dengan perkara-perkara dalam Excel, 1092 01:00:13,790 --> 01:00:16,750 sebagai contoh, bahawa sesuatu yang anda mungkin mahu menggunakan R untuk. 1093 01:00:16,750 --> 01:00:21,190 Jadi apa-apa soalan lagi sebelum saya pergi? 1094 01:00:21,190 --> 01:00:21,690 Tidak? 1095 01:00:21,690 --> 01:00:24,960 Baiklah, baik, sekali lagi, terima kasih banyak untuk datang. 1096 01:00:24,960 --> 01:00:29,417