1 00:00:00,000 --> 00:00:00,750 2 00:00:00,750 --> 00:00:09,800 >> [MUSIC PLAYING] 3 00:00:09,800 --> 00:00:13,014 4 00:00:13,014 --> 00:00:13,680 DUSTIN TRAN: Hi. 5 00:00:13,680 --> 00:00:14,980 Dustin Namaku. 6 00:00:14,980 --> 00:00:18,419 Jadi saya akan menyajikan Analisis data dalam R. 7 00:00:18,419 --> 00:00:19,710 Hanya sedikit tentang diriku sendiri. 8 00:00:19,710 --> 00:00:24,320 Saat ini saya seorang mahasiswa pascasarjana di Teknik dan Ilmu Terapan. 9 00:00:24,320 --> 00:00:28,330 Saya mempelajari sebuah persimpangan pembelajaran mesin dan statistik 10 00:00:28,330 --> 00:00:31,375 jadi Analisis Data dalam R adalah benar-benar mendasar untuk apa 11 00:00:31,375 --> 00:00:33,790 Saya lakukan setiap hari. 12 00:00:33,790 --> 00:00:35,710 >> Dan R terutama baik untuk analisis data 13 00:00:35,710 --> 00:00:39,310 karena itu sangat baik untuk prototyping. 14 00:00:39,310 --> 00:00:43,590 Dan biasanya, ketika Anda sedang melakukan semacam analisis data, banyak masalah 15 00:00:43,590 --> 00:00:44,920 akan kognitif. 16 00:00:44,920 --> 00:00:48,700 Dan Anda hanya ingin memiliki beberapa bahasa yang benar-benar baik yang 17 00:00:48,700 --> 00:00:53,770 hanya baik untuk melakukan built-in fungsi, sebagai lawan 18 00:00:53,770 --> 00:00:57,430 untuk harus berurusan dengan hal-hal tingkat rendah. 19 00:00:57,430 --> 00:01:01,040 Jadi pada awalnya, aku hanya akan untuk memperkenalkan apa yang R, mengapa 20 00:01:01,040 --> 00:01:04,540 Anda ingin menggunakannya, dan kemudian pergi ke beberapa demo, 21 00:01:04,540 --> 00:01:07,060 dan hanya pergi dari sana. 22 00:01:07,060 --> 00:01:08,150 >> Jadi apa yang R? 23 00:01:08,150 --> 00:01:11,180 R hanya bahasa dikembangkan untuk komputasi statistik 24 00:01:11,180 --> 00:01:12,450 dan visualisasi. 25 00:01:12,450 --> 00:01:16,000 Jadi apa artinya ini adalah bahwa itu adalah bahasa yang sangat baik 26 00:01:16,000 --> 00:01:22,400 untuk setiap jenis hal yang berhubungan dengan ketidakpastian atau visualisasi data. 27 00:01:22,400 --> 00:01:24,850 Jadi Anda memiliki semua ini distribusi probabilitas. 28 00:01:24,850 --> 00:01:27,140 Ada akan menjadi built-in fungsi. 29 00:01:27,140 --> 00:01:31,650 Anda juga akan memiliki baik merencanakan paket. 30 00:01:31,650 --> 00:01:34,110 >> Python adalah hal lain bersaing bahasa untuk data. 31 00:01:34,110 --> 00:01:40,020 Dan satu hal yang saya menemukan bahwa R jauh lebih baik di adalah visualisasi. 32 00:01:40,020 --> 00:01:45,200 Jadi apa yang akan Anda lihat di demo sebagai baik hanya bahasa yang sangat intuitif 33 00:01:45,200 --> 00:01:48,050 yang hanya bekerja dengan sangat baik. 34 00:01:48,050 --> 00:01:53,140 Hal ini juga gratis dan open source, seperti adalah bahasa lain baik saya kira. 35 00:01:53,140 --> 00:01:55,440 >> Dan di sini, sekelompok hanya kata kunci dilemparkan pada Anda. 36 00:01:55,440 --> 00:02:00,450 Ini dinamis, artinya jika Anda memiliki jenis tertentu ditugaskan ke sebuah obyek 37 00:02:00,450 --> 00:02:02,025 daripada hanya akan mengubahnya dengan cepat. 38 00:02:02,025 --> 00:02:05,670 Ini malas jadi pintar tentang bagaimana melakukan kalkulasi. 39 00:02:05,670 --> 00:02:12,250 Fungsional yang berarti itu benar-benar dapat beroperasi didasarkan dari fungsi sehingga anything-- 40 00:02:12,250 --> 00:02:16,910 apapun manipulasi Anda lakukan, itu akan didasarkan dari fungsi. 41 00:02:16,910 --> 00:02:20,162 >> Operator biner Jadi, misalnya, adalah fungsi hanya inheren. 42 00:02:20,162 --> 00:02:21,870 Dan segala sesuatu yang Anda akan lakukan adalah 43 00:02:21,870 --> 00:02:24,690 akan lari fungsi itu sendiri. 44 00:02:24,690 --> 00:02:27,140 Dan kemudian berorientasi objek juga. 45 00:02:27,140 --> 00:02:30,930 >> Jadi di sini adalah plot XKCD. 46 00:02:30,930 --> 00:02:34,350 Bukan hanya karena saya merasa seperti XKCD adalah dasar apapun 47 00:02:34,350 --> 00:02:37,770 presentasi, tetapi karena Saya merasa seperti ini benar-benar 48 00:02:37,770 --> 00:02:42,160 palu titik bahwa banyak saat Anda melakukan beberapa jenis data 49 00:02:42,160 --> 00:02:46,570 analisis, masalahnya bukan begitu banyak seberapa cepat berjalan, 50 00:02:46,570 --> 00:02:49,850 tapi berapa lama itu akan membawa Anda untuk program tugas. 51 00:02:49,850 --> 00:02:54,112 Jadi di sini hanya menganalisa apakah strategi atau b lebih efisien. 52 00:02:54,112 --> 00:02:55,820 Hal ini akan menjadi sesuatu yang Anda 53 00:02:55,820 --> 00:02:58,290 akan menghadapi banyak dengan di semacam bahasa tingkat rendah 54 00:02:58,290 --> 00:03:03,440 di mana Anda sedang berhadapan dengan kesalahan seg, alokasi memori, inisialisasi, 55 00:03:03,440 --> 00:03:05,270 bahkan membuat fungsi built-in. 56 00:03:05,270 --> 00:03:09,920 Dan hal ini semua ditangani sangat, sangat elegan di R. 57 00:03:09,920 --> 00:03:12,839 >> Jadi hanya untuk palu ini titik, hambatan terbesar 58 00:03:12,839 --> 00:03:13,880 akan menjadi kognitif. 59 00:03:13,880 --> 00:03:17,341 Jadi analisis data adalah masalah yang sangat sulit. 60 00:03:17,341 --> 00:03:19,340 Apakah yang Anda lakukan belajar mesin atau Anda 61 00:03:19,340 --> 00:03:22,550 melakukan hal semacam eksplorasi data dasar, 62 00:03:22,550 --> 00:03:25,290 Anda tidak ingin memiliki untuk mengambil dokumen 63 00:03:25,290 --> 00:03:27,440 dan kemudian kompilasi sesuatu setiap kali Anda 64 00:03:27,440 --> 00:03:31,010 ingin melihat apa yang tampak seperti kolom, apa entri tertentu dalam matriks 65 00:03:31,010 --> 00:03:32,195 seperti. 66 00:03:32,195 --> 00:03:34,320 Jadi Anda hanya ingin memiliki beberapa antarmuka yang benar-benar bagus 67 00:03:34,320 --> 00:03:37,740 Anda dapat menjalankan fungsi sederhana bahwa indeks untuk apapun 68 00:03:37,740 --> 00:03:41,870 Anda ingin dan hanya menjalankannya dari sana. 69 00:03:41,870 --> 00:03:44,190 Dan Anda perlu domain bahasa khusus untuk ini. 70 00:03:44,190 --> 00:03:51,750 Dan R benar-benar akan membantu Anda menentukan masalah dan menyelesaikannya dengan cara ini. 71 00:03:51,750 --> 00:03:58,690 >> Jadi di sini adalah plot menunjukkan pemrograman popularitas R seperti itu hilang dari waktu ke waktu. 72 00:03:58,690 --> 00:04:04,060 Jadi seperti yang Anda lihat, seperti 2013 atau sehingga hanya diledakkan sangat. 73 00:04:04,060 --> 00:04:09,570 Dan ini telah hanya karena itu tren besar di industri teknologi 74 00:04:09,570 --> 00:04:10,590 data tentang besar. 75 00:04:10,590 --> 00:04:13,010 Juga, bukan hanya teknologi industri, tapi benar-benar 76 00:04:13,010 --> 00:04:16,490 setiap itu-- industri karena banyak industri 77 00:04:16,490 --> 00:04:20,589 adalah semacam mendasar untuk mencoba untuk memecahkan masalah ini. 78 00:04:20,589 --> 00:04:24,590 Dan biasanya, Anda dapat memiliki beberapa baik cara untuk mengukur masalah ini 79 00:04:24,590 --> 00:04:29,720 atau bahkan mendefinisikan mereka atau pemecahan dengan menggunakan data. 80 00:04:29,720 --> 00:04:35,430 Jadi saya pikir sekarang adalah R-11 yang paling populer di bahasa TIOBE 81 00:04:35,430 --> 00:04:38,200 dan itu sudah berkembang sejak saat itu. 82 00:04:38,200 --> 00:04:40,740 83 00:04:40,740 --> 00:04:43,080 >> Jadi, inilah beberapa lagi fitur R. Memiliki 84 00:04:43,080 --> 00:04:46,900 sejumlah besar paket dan untuk semua hal yang berbeda. 85 00:04:46,900 --> 00:04:52,470 Jadi setiap kali Anda memiliki Masalah tertentu, sebagian besar 86 00:04:52,470 --> 00:04:55,060 waktu R akan memiliki fungsi untuk Anda. 87 00:04:55,060 --> 00:04:58,520 Jadi apakah Anda ingin membangun semacam mesin 88 00:04:58,520 --> 00:05:02,770 algoritma pembelajaran yang disebut Hutan acak atau Pohon Keputusan, 89 00:05:02,770 --> 00:05:07,530 atau bahkan mencoba untuk mengambil rata-rata fungsi atau barang-barang ini, 90 00:05:07,530 --> 00:05:10,000 R akan memiliki. 91 00:05:10,000 --> 00:05:14,190 >> Dan jika Anda melakukannya Anda pedulikan optimasi, satu hal yang umum 92 00:05:14,190 --> 00:05:17,430 adalah bahwa setelah Anda selesai prototyping semacam bahasa tingkat tinggi, 93 00:05:17,430 --> 00:05:19,810 Anda akan membuang itu in-- Anda hanya akan pelabuhan yang lebih 94 00:05:19,810 --> 00:05:21,550 beberapa bahasa tingkat rendah. 95 00:05:21,550 --> 00:05:26,090 Apa yang baik tentang R adalah bahwa sekali Anda dilakukan prototipe itu, Anda dapat menjalankan C ++, 96 00:05:26,090 --> 00:05:29,510 atau Fortran, atau salah satu dari yang tingkat yang lebih rendah langsung ke R. 97 00:05:29,510 --> 00:05:32,320 Jadi itulah yang benar-benar Fitur keren tentang R, 98 00:05:32,320 --> 00:05:35,930 jika Anda benar-benar peduli tentang titik optimasi. 99 00:05:35,930 --> 00:05:39,490 >> Dan itu juga benar-benar baik untuk visualisasi web. 100 00:05:39,490 --> 00:05:43,530 Jadi D3.js, misalnya, adalah Saya kira seminar lain 101 00:05:43,530 --> 00:05:45,130 bahwa kita disajikan hari ini. 102 00:05:45,130 --> 00:05:48,510 Dan ini benar-benar mengagumkan untuk melakukan visualisasi interaktif. 103 00:05:48,510 --> 00:05:54,460 Dan D3.js mengasumsikan bahwa Anda memiliki semacam data yang akan diplot 104 00:05:54,460 --> 00:05:58,080 dan R adalah cara yang bagus untuk bisa melakukan analisis data sebelum Anda ekspor 105 00:05:58,080 --> 00:06:04,220 ke D3.js atau bahkan hanya menjalankan D3.js perintah ke R itu sendiri, 106 00:06:04,220 --> 00:06:08,240 serta semua ini perpustakaan lain juga. 107 00:06:08,240 --> 00:06:13,041 >> Jadi itu hanya pengenalan apa yang R dan mengapa Anda mungkin menggunakannya. 108 00:06:13,041 --> 00:06:14,790 Jadi mudah-mudahan, saya sudah yakin sesuatu 109 00:06:14,790 --> 00:06:18,460 tentang hanya mencoba untuk melihat bagaimana rasanya. 110 00:06:18,460 --> 00:06:23,930 Jadi aku akan pergi ke depan dan pergi melalui beberapa dasar-dasar tentang obyek R 111 00:06:23,930 --> 00:06:26,150 dan apa yang Anda benar-benar bisa melakukannya. 112 00:06:26,150 --> 00:06:29,690 >> Jadi di sini hanya sekelompok perintah matematika. 113 00:06:29,690 --> 00:06:35,000 Jadi mengatakan you're-- Anda ingin membangun sendiri bahasa dan Anda hanya ingin 114 00:06:35,000 --> 00:06:38,080 memiliki banyak alat yang berbeda. 115 00:06:38,080 --> 00:06:42,520 Apapun operasi Anda berpikir Anda lebih ingin cukup banyak akan berada di R. 116 00:06:42,520 --> 00:06:44,150 >> Jadi di sini adalah 2 ditambah 2. 117 00:06:44,150 --> 00:06:46,090 Berikut adalah 2 kali pi. 118 00:06:46,090 --> 00:06:51,870 R memiliki banyak built-in konstanta Anda sering akan menggunakan seperti pi, e. 119 00:06:51,870 --> 00:06:56,230 >> Dan kemudian, inilah 7 plus runif, sehingga runif dari 1. 120 00:06:56,230 --> 00:07:02,450 Ini adalah fungsi yang menghasilkan satu seragam acak dari 0 ke 1. 121 00:07:02,450 --> 00:07:04,400 Dan kemudian ada 3 sampai kekuatan 4. 122 00:07:04,400 --> 00:07:06,430 Ada akar kuadrat. 123 00:07:06,430 --> 00:07:07,270 >> Ada log. 124 00:07:07,270 --> 00:07:14,500 Jadi log akan melakukan basis eksponensial dengan sendirinya. 125 00:07:14,500 --> 00:07:18,337 Dan kemudian, jika Anda menetapkan dasar, maka Anda dapat melakukan dasar apapun yang Anda inginkan. 126 00:07:18,337 --> 00:07:19,920 Dan maka di sini adalah beberapa perintah lainnya. 127 00:07:19,920 --> 00:07:22,180 Jadi Anda memiliki 23 mod 2. 128 00:07:22,180 --> 00:07:24,910 Maka Anda memiliki sisanya. 129 00:07:24,910 --> 00:07:27,110 Maka Anda memiliki ilmiah notasi jika Anda juga 130 00:07:27,110 --> 00:07:34,060 ingin melakukan lebih dan hal yang lebih rumit. 131 00:07:34,060 --> 00:07:37,320 >> Jadi di sini adalah tugas. 132 00:07:37,320 --> 00:07:40,830 Tugas sangat khas di R dilakukan dengan panah 133 00:07:40,830 --> 00:07:43,440 jadi kurang dari dan kemudian tanda hubung. 134 00:07:43,440 --> 00:07:47,250 Jadi di sini aku hanya menugaskan 3 ke val variabel. 135 00:07:47,250 --> 00:07:50,160 >> Dan kemudian aku mencetak val dan kemudian mencetak tiga. 136 00:07:50,160 --> 00:07:53,920 Secara default dalam R interpreter, itu akan mencetak hal-hal untuk Anda 137 00:07:53,920 --> 00:07:57,280 sehingga Anda tidak harus menentukan mencetak val sebuah setiap kali Anda ingin mencetak sesuatu. 138 00:07:57,280 --> 00:08:00,200 Anda hanya dapat melakukan val dan maka akan melakukannya untuk Anda. 139 00:08:00,200 --> 00:08:04,380 >> Juga, Anda dapat menggunakan sederajat teknis sebagai operator penugasan. 140 00:08:04,380 --> 00:08:07,190 Ada sedikit seluk-beluk antara menggunakan panah 141 00:08:07,190 --> 00:08:10,730 operator dan equals Operator untuk tugas. 142 00:08:10,730 --> 00:08:15,470 Kebanyakan oleh konvensi, semua orang hanya akan menggunakan operator panah. 143 00:08:15,470 --> 00:08:21,850 >> Dan di sini, saya menugaskan ini notasi miring disebut 1 usus 6. 144 00:08:21,850 --> 00:08:26,010 Ini menghasilkan vektor dari 1 sampai 6. 145 00:08:26,010 --> 00:08:29,350 Dan ini benar-benar bagus karena kemudian Anda hanya menetapkan vektor ke val 146 00:08:29,350 --> 00:08:34,270 dan yang bekerja dengan sendirinya. 147 00:08:34,270 --> 00:08:37,799 >> Jadi ini sudah terjadi dari single-- data yang sangat intuitif 148 00:08:37,799 --> 00:08:41,070 struktur hanya ganda beberapa jenis tipe menjadi vektor 149 00:08:41,070 --> 00:08:45,670 dan yang akan mengumpulkan semua nilai-nilai skalar untuk Anda. 150 00:08:45,670 --> 00:08:50,770 Jadi setelah pergi dari skalar, Anda memiliki R objek dan ini adalah vektor. 151 00:08:50,770 --> 00:08:55,610 Vektor A adalah apapun koleksi dari jenis yang sama. 152 00:08:55,610 --> 00:08:58,150 Jadi di sini adalah sekelompok vektor. 153 00:08:58,150 --> 00:08:59,800 >> Jadi ini adalah numerik. 154 00:08:59,800 --> 00:09:02,440 Numeric adalah cara R mengatakan ganda. 155 00:09:02,440 --> 00:09:07,390 Dan secara default, setiap Nomor akan menjadi ganda. 156 00:09:07,390 --> 00:09:13,150 >> Jadi jika Anda memiliki c 1,1, 3, negatif 5.7, c adalah fungsi. 157 00:09:13,150 --> 00:09:16,760 Ini merangkai ketiga angka ke dalam vektor. 158 00:09:16,760 --> 00:09:19,619 Dan ini akan be-- jadi jika Anda melihat 3 dengan sendirinya, 159 00:09:19,619 --> 00:09:21,910 biasanya Anda akan menganggap bahwa ini adalah seperti integer, 160 00:09:21,910 --> 00:09:25,050 tetapi karena semua vektor adalah tipe yang sama, 161 00:09:25,050 --> 00:09:28,660 ini adalah vektor ganda atau numerik dalam kasus ini. 162 00:09:28,660 --> 00:09:34,920 >> rnorm adalah fungsi yang menghasilkan standar variables-- yang normal 163 00:09:34,920 --> 00:09:36,700 atau standar nilai normal. 164 00:09:36,700 --> 00:09:38,360 Dan aku menetapkan dua dari mereka. 165 00:09:38,360 --> 00:09:43,840 Jadi aku melakukan rnorm 2, menetapkan bahwa untuk devs, dan kemudian aku mencetak devs. 166 00:09:43,840 --> 00:09:47,350 Jadi ini hanya dua nilai normal acak. 167 00:09:47,350 --> 00:09:50,060 >> Dan kemudian int jika Anda Anda peduli tentang bilangan bulat. 168 00:09:50,060 --> 00:09:54,650 Jadi ini hanya tentang memori alokasi dan menyimpan ukuran memori. 169 00:09:54,650 --> 00:10:01,460 Jadi, Anda harus menambahkan nomor dengan modal L. 170 00:10:01,460 --> 00:10:04,170 >> Secara umum, ini adalah Notasi bersejarah R 171 00:10:04,170 --> 00:10:06,940 untuk sesuatu yang disebut integer panjang. 172 00:10:06,940 --> 00:10:09,880 Jadi sebagian besar waktu, Anda akan akan berhadapan dengan ganda. 173 00:10:09,880 --> 00:10:15,180 Dan jika Anda pernah nantinya akan pada mengoptimalkan kode Anda, 174 00:10:15,180 --> 00:10:18,110 Anda hanya dapat menambahkan L's setelah atau selama itu 175 00:10:18,110 --> 00:10:22,280 jika Anda seperti precognitive tentang apa Anda akan melakukan variabel-variabel ini. 176 00:10:22,280 --> 00:10:25,340 177 00:10:25,340 --> 00:10:26,890 >> Jadi di sini adalah vektor karakter. 178 00:10:26,890 --> 00:10:31,440 Jadi, sekali lagi, saya concatenating tiga senar saat ini. 179 00:10:31,440 --> 00:10:36,230 Perhatikan bahwa string ganda dan string tunggal adalah sama dalam R. 180 00:10:36,230 --> 00:10:41,000 Jadi saya memiliki arthur dan marvin dan sebagainya ketika saya mencetak keluar, semua dari mereka 181 00:10:41,000 --> 00:10:43,210 akan menunjukkan string ganda. 182 00:10:43,210 --> 00:10:45,880 Dan jika Anda juga ingin menyertakan string ganda atau tunggal 183 00:10:45,880 --> 00:10:50,070 dalam karakter Anda, maka Anda dapat baik alternatif string Anda. 184 00:10:50,070 --> 00:10:53,540 >> Jadi marvin untuk yang Unsur kedua, ini adalah 185 00:10:53,540 --> 00:10:56,380 akan show-- Anda hanya string ganda 186 00:10:56,380 --> 00:10:59,050 dan kemudian string tunggal jadi ini bolak-balik. 187 00:10:59,050 --> 00:11:04,040 Jika tidak, jika Anda ingin menggunakan ganda Operator string dalam string ganda 188 00:11:04,040 --> 00:11:07,090 ketika Anda menyatakan itu, maka Anda hanya menggunakan operator melarikan diri. 189 00:11:07,090 --> 00:11:10,600 Jadi Anda melakukan backslash string yang ganda. 190 00:11:10,600 --> 00:11:13,330 >> Dan akhirnya, kami juga memiliki vektor logis. 191 00:11:13,330 --> 00:11:15,890 Jadi logical-- begitu BENAR dan SALAH, dan mereka 192 00:11:15,890 --> 00:11:18,880 akan menjadi huruf kapital semua. 193 00:11:18,880 --> 00:11:22,370 Kemudian, sekali lagi, saya concatenating mereka dan kemudian menempatkan mereka untuk bools. 194 00:11:22,370 --> 00:11:24,590 Jadi bools akan menunjukkan Anda TRUE, FALSE, dan BENAR. 195 00:11:24,590 --> 00:11:28,280 196 00:11:28,280 --> 00:11:31,620 >> Jadi di sini adalah pengindeksan vectorized. 197 00:11:31,620 --> 00:11:34,870 Jadi pada awalnya, saya saya mengambil function-- sebuah 198 00:11:34,870 --> 00:11:39,230 ini disebut sequence-- sebuah urut 2 sampai 12. 199 00:11:39,230 --> 00:11:42,490 Dan aku mengambil urutan oleh 2. 200 00:11:42,490 --> 00:11:46,660 Jadi itu akan melakukan 2, 4, 6, 8, 10 dan 12. 201 00:11:46,660 --> 00:11:50,080 Dan kemudian, aku pengindeksan untuk mendapatkan elemen ketiga. 202 00:11:50,080 --> 00:11:55,770 >> Jadi satu hal yang perlu diingat adalah bahwa R indeks dengan memulai dari 1. 203 00:11:55,770 --> 00:12:00,550 Jadi vals 3 akan memberikan Anda elemen ketiga. 204 00:12:00,550 --> 00:12:04,580 Ini adalah semacam berbeda dari yang lain bahasa mana dimulai dari nol. 205 00:12:04,580 --> 00:12:09,780 Jadi dalam C atau C ++, misalnya, Anda akan mendapatkan elemen keempat. 206 00:12:09,780 --> 00:12:13,280 >> Dan di sini adalah vals dari 3 sampai 5. 207 00:12:13,280 --> 00:12:16,030 Jadi satu hal yang benar-benar keren adalah bahwa Anda 208 00:12:16,030 --> 00:12:20,410 dapat menghasilkan variabel sementara dalam dan kemudian hanya menggunakannya dengan cepat. 209 00:12:20,410 --> 00:12:21,960 Jadi di sini adalah 3 sampai 5. 210 00:12:21,960 --> 00:12:25,070 Jadi aku menghasilkan vektor 3, 4, dan 5, dan kemudian 211 00:12:25,070 --> 00:12:29,700 Saya mengindeks untuk mendapatkan ketiga, keempat, dan kelima elemen. 212 00:12:29,700 --> 00:12:32,280 >> Jadi sama, Anda dapat abstrak ini untuk hanya melakukan 213 00:12:32,280 --> 00:12:35,280 apapun vektor yang memberikan pengindeksan. 214 00:12:35,280 --> 00:12:40,050 Jadi di sini adalah vals dan kemudian elemen pertama, ketiga, dan keenam. 215 00:12:40,050 --> 00:12:42,800 Dan kemudian, jika Anda ingin untuk melakukan pelengkap, 216 00:12:42,800 --> 00:12:45,210 sehingga Anda hanya melakukan minus setelah itu dan itu akan 217 00:12:45,210 --> 00:12:48,600 memberikan segala sesuatu yang bukan pertama, ketiga, atau elemen keenam. 218 00:12:48,600 --> 00:12:51,590 Jadi ini akan menjadi 4, 8, dan 10. 219 00:12:51,590 --> 00:12:54,380 >> Dan jika Anda ingin mendapatkan bahkan lebih maju, 220 00:12:54,380 --> 00:12:57,610 Anda dapat menggabungkan vektor Boolean. 221 00:12:57,610 --> 00:13:05,210 Jadi indeks ini akan memberikan Anda vektor Boolean ini panjang 6. 222 00:13:05,210 --> 00:13:07,280 Jadi rep BENAR koma 3. 223 00:13:07,280 --> 00:13:09,680 Ini akan mengulangi BENAR tiga kali. 224 00:13:09,680 --> 00:13:12,900 Jadi ini akan memberi Anda vektor BENAR, BENAR, BENAR. 225 00:13:12,900 --> 00:13:17,470 >> rep SALAH 4-- ini akan memberi Anda vektor SALAH, SALAH, SALAH, SALAH. 226 00:13:17,470 --> 00:13:21,280 Dan kemudian c akan menggabungkan kedua Booleans bersama-sama. 227 00:13:21,280 --> 00:13:24,090 Jadi Anda akan mendapatkan tiga Trues dan kemudian empat kesalahan-kesalahan. 228 00:13:24,090 --> 00:13:28,460 >> Sehingga ketika Anda vals indeks, Anda akan mendapatkan BENAR, BENAR, BENAR. 229 00:13:28,460 --> 00:13:31,420 Sehingga akan mengatakan ya, Saya ingin tiga elemen. 230 00:13:31,420 --> 00:13:33,520 Dan kemudian SALAH, SALAH, SALAH, SALAH akan 231 00:13:33,520 --> 00:13:37,140 untuk mengatakan tidak, saya tidak ingin unsur-unsur sehingga tidak akan mengembalikannya. 232 00:13:37,140 --> 00:13:41,490 >> Dan saya kira sebenarnya ada salah ketik di sini karena ini mengatakan berulang BENAR 3 233 00:13:41,490 --> 00:13:47,990 dan ulangi SALAH 4, dan teknis, Anda hanya memiliki enam elemen sehingga mengulang PALSU, 234 00:13:47,990 --> 00:13:50,470 harus ulangi SALAH 3. 235 00:13:50,470 --> 00:13:55,260 Saya pikir R juga cukup seperti cerdas bahwa jika Anda hanya menentukan 4 di sini, maka 236 00:13:55,260 --> 00:13:56,630 bahkan tidak akan error keluar. 237 00:13:56,630 --> 00:13:58,480 Ini hanya akan memberikan nilai ini. 238 00:13:58,480 --> 00:14:00,970 Jadi itu hanya akan mengabaikan itu SALAH keempat. 239 00:14:00,970 --> 00:14:05,310 240 00:14:05,310 --> 00:14:09,270 >> Jadi di sini adalah tugas vectorized. 241 00:14:09,270 --> 00:14:15,480 Jadi set.seed-- ini hanya menetapkan benih untuk nomor pseudorandom. 242 00:14:15,480 --> 00:14:20,110 Jadi aku menetapkan benih untuk 42, yang berarti bahwa jika saya menghasilkan 243 00:14:20,110 --> 00:14:22,950 tiga acak yang normal nilai-nilai, dan kemudian jika Anda 244 00:14:22,950 --> 00:14:27,400 menjalankan set.seed sendiri komputer menggunakan nilai yang sama 42, 245 00:14:27,400 --> 00:14:30,990 maka Anda juga mendapatkan sama tiga normals acak. 246 00:14:30,990 --> 00:14:33,411 >> Jadi ini benar-benar baik untuk reproduktifitas. 247 00:14:33,411 --> 00:14:35,910 Biasanya, ketika Anda melakukan beberapa semacam analisis ilmiah, 248 00:14:35,910 --> 00:14:37,230 Anda ingin mengatur benih. 249 00:14:37,230 --> 00:14:41,270 Dengan cara itu ilmuwan lain bisa saja mereproduksi kode yang sama persis Anda sudah 250 00:14:41,270 --> 00:14:44,790 dilakukan karena mereka akan memiliki tepat variabel acak yang sama itu-- atau acak 251 00:14:44,790 --> 00:14:47,270 nilai-nilai yang telah diambil keluar juga. 252 00:14:47,270 --> 00:14:49,870 253 00:14:49,870 --> 00:14:53,910 >> Dan tugas vectorized di sini adalah menunjukkan vals 1 sampai 2. 254 00:14:53,910 --> 00:14:59,290 Sehingga dibutuhkan dua elemen pertama dari vals dan kemudian memberikan mereka untuk 0. 255 00:14:59,290 --> 00:15:03,940 Dan kemudian, Anda bisa juga hanya melakukan Hal yang sama dengan Booleans. 256 00:15:03,940 --> 00:15:09,340 >> Jadi vals tidak sama dengan 0-- kehendak ini memberikan SALAH vektor, SALAH, BENAR 257 00:15:09,340 --> 00:15:10,350 dalam hal ini. 258 00:15:10,350 --> 00:15:13,770 Dan kemudian, itu akan mengatakan apa-apa mereka indeks yang BENAR, 259 00:15:13,770 --> 00:15:15,270 maka itu akan menetapkan bahwa untuk 5. 260 00:15:15,270 --> 00:15:18,790 Jadi dibutuhkan elemen ketiga di sini dan kemudian memberikan ke 5. 261 00:15:18,790 --> 00:15:22,300 >> Dan ini benar-benar baik dibandingkan dengan bahasa tingkat rendah 262 00:15:22,300 --> 00:15:25,560 di mana Anda harus menggunakan untuk loop untuk melakukan semua hal vectorized ini 263 00:15:25,560 --> 00:15:30,281 karena itu hanya sangat intuitif dan itu adalah satu satu-kapal. 264 00:15:30,281 --> 00:15:32,030 Dan apa tentang besar notasi vectorized 265 00:15:32,030 --> 00:15:37,020 adalah bahwa dalam R, ini adalah semacam built-in sehingga mereka hampir secepat 266 00:15:37,020 --> 00:15:42,490 seperti melakukan dalam bahasa tingkat rendah seperti lawan untuk membuat untuk loop dalam R 267 00:15:42,490 --> 00:15:46,317 dan kemudian setelah itu lakukan pengindeksan dinamis itu sendiri. 268 00:15:46,317 --> 00:15:48,900 Dan itu akan menjadi lebih lambat dari melakukan hal semacam ini vectorized 269 00:15:48,900 --> 00:15:55,950 di mana ia dapat melakukannya secara paralel, di mana itu melakukannya dalam threading dasarnya. 270 00:15:55,950 --> 00:15:58,650 >> Jadi di sini adalah Vectorized operasi. 271 00:15:58,650 --> 00:16:04,920 Jadi aku menghasilkan nilai 1 sampai 3, menugaskan bahwa untuk vec1, 3 sampai 5, vec2, 272 00:16:04,920 --> 00:16:05,950 menambahkan mereka bersama-sama. 273 00:16:05,950 --> 00:16:11,490 Ia menambahkan mereka komponen-bijaksana sehingga itu 1 ditambah 3, 2 ditambah 4, dan seterusnya. 274 00:16:11,490 --> 00:16:13,330 >> vec1 kali vec2. 275 00:16:13,330 --> 00:16:16,110 Ini mengalikan dua nilai komponen yang bijaksana. 276 00:16:16,110 --> 00:16:21,830 Jadi itu 1 kali 3, 2 kali 4, dan kemudian 3 kali 5. 277 00:16:21,830 --> 00:16:28,250 >> Dan kemudian, sama Anda dapat juga melakukan comparisons-- perbandingan logis. 278 00:16:28,250 --> 00:16:33,640 Jadi itu SALAH SALAH BENAR dalam hal ini Kasus karena 1 tidak lebih besar dari 3, 279 00:16:33,640 --> 00:16:35,920 2 tidak lebih besar dari 4. 280 00:16:35,920 --> 00:16:41,160 Ini, saya kira, ketik lagi, 3 pasti tidak lebih besar dari 5. 281 00:16:41,160 --> 00:16:41,660 Ya. 282 00:16:41,660 --> 00:16:45,770 Dan Anda hanya bisa melakukan semua operasi-operasi sederhana 283 00:16:45,770 --> 00:16:48,350 karena mereka mewarisi dari kelas sendiri. 284 00:16:48,350 --> 00:16:51,110 285 00:16:51,110 --> 00:16:52,580 >> Jadi itu hanya vektor. 286 00:16:52,580 --> 00:16:56,530 Dan itulah semacam yang paling mendasar Objek R karena diberikan vektor, 287 00:16:56,530 --> 00:16:59,170 Anda dapat membangun objek yang lebih maju. 288 00:16:59,170 --> 00:17:00,560 >> Jadi, inilah matriks. 289 00:17:00,560 --> 00:17:05,030 Ini pada dasarnya adalah abstraksi apa matriks itu sendiri. 290 00:17:05,030 --> 00:17:10,099 Jadi dalam hal ini, itu tiga berbeda vektor, di mana masing-masing adalah kolom, 291 00:17:10,099 --> 00:17:12,710 atau Anda dapat mempertimbangkan karena setiap satu baris. 292 00:17:12,710 --> 00:17:18,250 >> Jadi aku menyimpan matriks dari 1 sampai 9 dan kemudian aku menetapkan 3 baris. 293 00:17:18,250 --> 00:17:23,364 Jadi 1 sampai 9 akan memberikan vector 1, 2, 3, 4, 5, 6, dan semua jalan ke 9. 294 00:17:23,364 --> 00:17:29,250 >> Satu hal yang perlu juga diingat adalah bahwa R toko nilai dalam format kolom-besar. 295 00:17:29,250 --> 00:17:34,160 Jadi dengan kata lain, ketika Anda melihat 1 9, itu akan menyimpan them-- 296 00:17:34,160 --> 00:17:36,370 itu akan menjadi 1, 2, 3 di kolom pertama, 297 00:17:36,370 --> 00:17:38,510 dan kemudian akan melakukan 4, 5, 6 pada kolom kedua, 298 00:17:38,510 --> 00:17:41,440 dan kemudian 7, 8, 9 di kolom ketiga. 299 00:17:41,440 --> 00:17:45,570 >> Dan berikut adalah beberapa lainnya fungsi umum yang dapat Anda gunakan. 300 00:17:45,570 --> 00:17:49,650 Jadi tikar redup, ini akan memberi Anda dimensi matriks. 301 00:17:49,650 --> 00:17:52,620 Itu akan kembali Anda vektor dimensi. 302 00:17:52,620 --> 00:17:55,580 Jadi dalam hal ini, karena matriks kami adalah 3 dengan 3, 303 00:17:55,580 --> 00:18:01,900 itu akan memberi Anda vektor numerik yang 3 3. 304 00:18:01,900 --> 00:18:05,270 >> Dan di sini hanya menunjukkan perkalian matriks. 305 00:18:05,270 --> 00:18:11,970 Jadi biasanya, jika Anda hanya melakukan asterisk-- sehingga tikar tanda mat-- 306 00:18:11,970 --> 00:18:15,380 ini akan menjadi operasi komponen-bijaksana 307 00:18:15,380 --> 00:18:17,300 atau apa yang disebut produk Hadamard. 308 00:18:17,300 --> 00:18:21,310 Jadi itu akan melakukan setiap elemen komponen-bijaksana. 309 00:18:21,310 --> 00:18:23,610 Namun, jika Anda ingin matriks multiplication-- 310 00:18:23,610 --> 00:18:29,380 sehingga mengalikan kali baris pertama kolom pertama matriks kedua itu 311 00:18:29,380 --> 00:18:34,510 dan on-- Anda akan menggunakan Operasi persen ini. 312 00:18:34,510 --> 00:18:38,110 >> Dan t tikar hanya sebuah Operasi untuk transpos. 313 00:18:38,110 --> 00:18:42,590 Jadi saya katakan mengambil transpose di matriks, kalikan dengan matriks 314 00:18:42,590 --> 00:18:43,090 itu sendiri. 315 00:18:43,090 --> 00:18:45,006 Dan kemudian itu akan kembali kepada Anda 3 lain 316 00:18:45,006 --> 00:18:50,700 oleh 3 matriks menunjukkan produk yang anda inginkan. 317 00:18:50,700 --> 00:18:53,750 >> Dan jadi itu matriks. 318 00:18:53,750 --> 00:18:56,020 Berikut adalah apa yang disebut data frame. 319 00:18:56,020 --> 00:19:00,780 Sebuah frame data yang dapat Anda pikirkan sebagai matriks, tapi setiap kolom itu sendiri 320 00:19:00,780 --> 00:19:02,990 akan menjadi jenis yang berbeda. 321 00:19:02,990 --> 00:19:07,320 >> Jadi apa yang benar-benar keren tentang data frame adalah bahwa dalam analisis data itu sendiri, 322 00:19:07,320 --> 00:19:11,260 Anda akan memiliki semua ini data yang heterogen dan semua ini benar-benar 323 00:19:11,260 --> 00:19:15,640 hal berantakan di mana masing-masing kolom sendiri bisa dari berbagai jenis. 324 00:19:15,640 --> 00:19:21,460 Jadi di sini saya katakan membuat frame data, melakukan int dari 1 hingga 3, 325 00:19:21,460 --> 00:19:24,750 dan kemudian juga memiliki vektor karakter. 326 00:19:24,750 --> 00:19:28,470 Jadi saya dapat mengindeks melalui masing-masing kolom ini 327 00:19:28,470 --> 00:19:30,930 dan kemudian saya akan mendapatkan nilai-nilai sendiri. 328 00:19:30,930 --> 00:19:34,370 Dan Anda juga bisa melakukan semacam operasi pada frame data. 329 00:19:34,370 --> 00:19:38,040 Dan sebagian besar waktu ketika Anda melakukan analisis data atau semacam 330 00:19:38,040 --> 00:19:42,042 dari preprocessing, Anda akan bekerja dengan struktur data ini 331 00:19:42,042 --> 00:19:44,250 dimana setiap kolom akan untuk menjadi jenis yang berbeda. 332 00:19:44,250 --> 00:19:47,880 333 00:19:47,880 --> 00:19:52,970 >> Akhirnya, jadi ini pada dasarnya hanya empat benda penting dalam Daftar R. 334 00:19:52,970 --> 00:19:55,820 hanya akan mengumpulkan benda-benda lain yang Anda inginkan. 335 00:19:55,820 --> 00:20:00,130 Sehingga akan menyimpan ini menjadi satu variabel yang Anda dapat dengan mudah mengakses. 336 00:20:00,130 --> 00:20:02,370 >> Jadi di sini, saya mengambil daftar. 337 00:20:02,370 --> 00:20:04,460 Saya mengatakan hal sama 3. 338 00:20:04,460 --> 00:20:08,060 Jadi aku akan memiliki satu elemen dalam daftar, dan ini disebut barang, 339 00:20:08,060 --> 00:20:10,570 dan itu akan memiliki nilai 3. 340 00:20:10,570 --> 00:20:13,140 >> Saya juga dapat membuat matriks. 341 00:20:13,140 --> 00:20:17,970 Jadi ini adalah 1 sampai 4 dan akhir baris sama dengan 2, sehingga 2 oleh 2 matriks. 342 00:20:17,970 --> 00:20:20,270 Juga dalam daftar dan itu disebut tikar. 343 00:20:20,270 --> 00:20:24,690 moreStuff, string karakter, dan bahkan daftar lain dalam dirinya sendiri. 344 00:20:24,690 --> 00:20:27,710 >> Jadi ini adalah daftar yang 5 dan beruang. 345 00:20:27,710 --> 00:20:30,990 Sehingga memiliki nilai 5 dan memiliki beruang karakter string 346 00:20:30,990 --> 00:20:32,710 dan itu adalah daftar dalam daftar. 347 00:20:32,710 --> 00:20:35,965 Sehingga Anda dapat memiliki ini hal rekursif mana 348 00:20:35,965 --> 00:20:38,230 Anda memiliki another-- ketik dalam jenis. 349 00:20:38,230 --> 00:20:41,420 Jadi sama, Anda dapat memiliki matriks dalam matriks lain dan sebagainya. 350 00:20:41,420 --> 00:20:44,264 Dan daftar adalah cara yang baik mengumpulkan dan menggabungkan 351 00:20:44,264 --> 00:20:45,430 semua obyek yang berbeda. 352 00:20:45,430 --> 00:20:50,210 353 00:20:50,210 --> 00:20:57,150 >> Dan akhirnya, di sini hanya membantu dalam kasus ini hanya pergi selama sangat cepat. 354 00:20:57,150 --> 00:21:01,350 Jadi kapan Anda bingung tentang beberapa jenis fungsi, 355 00:21:01,350 --> 00:21:03,510 Anda dapat melakukan bantuan fungsi. 356 00:21:03,510 --> 00:21:07,120 Sehingga Anda dapat melakukan bantuan matriks atau tanda tanya matriks. 357 00:21:07,120 --> 00:21:11,430 Dan bantuan dan tanda tanya yang hanya singkatan untuk hal yang sama 358 00:21:11,430 --> 00:21:13,040 jadi mereka alias. 359 00:21:13,040 --> 00:21:16,820 >> lm adalah fungsi yang hanya melakukan model linier. 360 00:21:16,820 --> 00:21:20,340 Tetapi jika Anda hanya tidak tahu bagaimana yang bekerja, Anda hanya dapat melakukan bantuan lm 361 00:21:20,340 --> 00:21:24,610 dan itu akan memberi Anda beberapa semacam dokumentasi yang 362 00:21:24,610 --> 00:21:27,960 terlihat jenis seperti Halaman pria Unix, di mana 363 00:21:27,960 --> 00:21:34,210 Anda memiliki penjelasan singkat tentang apa tidak, juga apa argumen yang, 364 00:21:34,210 --> 00:21:38,850 apa itu kembali, dan hanya tips tentang cara untuk menggunakannya, dan beberapa contoh juga. 365 00:21:38,850 --> 00:21:41,680 366 00:21:41,680 --> 00:21:52,890 >> Jadi biarkan aku pergi ke depan dan menunjukkan beberapa demo menggunakan R. OK. 367 00:21:52,890 --> 00:21:55,470 Jadi aku pergi sangat cepat hanya data 368 00:21:55,470 --> 00:21:59,440 struktur dan semacam itu op-- beberapa operasi. 369 00:21:59,440 --> 00:22:02,960 Berikut adalah beberapa fungsi. 370 00:22:02,960 --> 00:22:06,750 >> Jadi di sini aku hanya akan untuk mendefinisikan fungsi. 371 00:22:06,750 --> 00:22:09,970 Jadi aku juga menggunakan operator penugasan di sini, 372 00:22:09,970 --> 00:22:12,610 dan kemudian saya katakan mendeklarasikan sebagai fungsi. 373 00:22:12,610 --> 00:22:14,140 Dan dibutuhkan nilai x. 374 00:22:14,140 --> 00:22:18,210 Jadi ini adalah nilai yang Anda inginkan dan aku akan kembali x itu sendiri. 375 00:22:18,210 --> 00:22:20,840 Jadi ini adalah fungsi identitas. 376 00:22:20,840 --> 00:22:23,670 >> Dan apa yang keren tentang ini dibandingkan dengan bahasa lain 377 00:22:23,670 --> 00:22:26,330 dan lain-tingkat rendah bahasa adalah bahwa x 378 00:22:26,330 --> 00:22:29,350 dapat dari jenis sendiri dan itu akan kembali jenis itu. 379 00:22:29,350 --> 00:22:35,251 Sehingga Anda dapat imagine-- jadi mari saya hanya menjalankan ini dengan cepat. 380 00:22:35,251 --> 00:22:35,750 Mohon Maaf. 381 00:22:35,750 --> 00:22:40,300 >> Jadi satu hal yang saya juga harus menyebutkan adalah bahwa editor ini saya menggunakan 382 00:22:40,300 --> 00:22:41,380 disebut rstudio. 383 00:22:41,380 --> 00:22:44,389 Ini adalah apa yang disebut IDE. 384 00:22:44,389 --> 00:22:46,180 Dan satu hal yang benar-benar baik tentang hal ini 385 00:22:46,180 --> 00:22:51,500 adalah bahwa hal itu menggabungkan banyak hal yang ingin Anda lakukan dalam R dengan sendirinya 386 00:22:51,500 --> 00:22:53,180 hanya sangat intuitif. 387 00:22:53,180 --> 00:22:55,550 >> Jadi di sini adalah konsol interpreter. 388 00:22:55,550 --> 00:23:02,160 Jadi sama, Anda juga bisa mendapatkan ini konsol mentah hanya dengan melakukan R. modal 389 00:23:02,160 --> 00:23:05,630 Dan ini persis hal yang sama seperti konsol. 390 00:23:05,630 --> 00:23:12,210 Jadi saya hanya bisa melakukan fungsi id x, x, x. 391 00:23:12,210 --> 00:23:16,130 Dan then-- dan itulah akan baik-baik saja sendiri. 392 00:23:16,130 --> 00:23:19,200 393 00:23:19,200 --> 00:23:21,740 >> Jadi rstudio besar karena memiliki konsol. 394 00:23:21,740 --> 00:23:25,360 Hal ini juga memiliki dokumen Anda ingin berjalan di. 395 00:23:25,360 --> 00:23:28,629 Dan kemudian memiliki beberapa variabel Anda dapat melihat dalam lingkungan. 396 00:23:28,629 --> 00:23:30,420 Dan kemudian, jika Anda memiliki untuk melakukan plot, maka Anda 397 00:23:30,420 --> 00:23:33,730 hanya bisa melihatnya di sini, sebagai lawan mengelola semua jendela yang berbeda 398 00:23:33,730 --> 00:23:35,940 sendiri. 399 00:23:35,940 --> 00:23:40,530 >> Aku benar-benar pribadi menggunakan Vim, tapi aku merasa seperti rstudio sangat baik hanya 400 00:23:40,530 --> 00:23:44,640 untuk mendapatkan ide yang baik bagaimana menggunakan R. Biasanya, 401 00:23:44,640 --> 00:23:47,040 ketika Anda mencoba untuk belajar beberapa tugas baru, 402 00:23:47,040 --> 00:23:49,590 Anda tidak ingin menangani terlalu banyak hal sekaligus. 403 00:23:49,590 --> 00:23:53,120 Jadi R hanya rstudio very-- adalah cara yang sangat baik belajar R 404 00:23:53,120 --> 00:23:56,760 tanpa harus berurusan dengan semua hal-hal lainnya. 405 00:23:56,760 --> 00:23:58,600 >> Jadi di sini saya sedang menjalankan id halo. 406 00:23:58,600 --> 00:24:00,090 Ini mengembalikan halo. 407 00:24:00,090 --> 00:24:01,740 id 123. 408 00:24:01,740 --> 00:24:04,610 Berikut adalah vektor dari bilangan bulat. 409 00:24:04,610 --> 00:24:08,620 Jadi sama, karena Anda dapat mengambil semacam nilai, 410 00:24:08,620 --> 00:24:16,060 Anda dapat melakukan kembali id ​​dari x sehingga kembali 1234 dan 5. 411 00:24:16,060 --> 00:24:22,210 >> Dan saya hanya menunjukkan bahwa ini memang integer. 412 00:24:22,210 --> 00:24:28,800 Dan sama, jika Anda melakukan class id x, itu akan menjadi integer. 413 00:24:28,800 --> 00:24:34,170 Dan kemudian, Anda juga bisa membandingkan dua dan itu BENAR. 414 00:24:34,170 --> 00:24:38,350 Jadi aku memeriksa apakah id x sama sama dengan x dan pemberitahuan 415 00:24:38,350 --> 00:24:39,760 bahwa ia memberi Anda dua trues. 416 00:24:39,760 --> 00:24:44,280 Jadi ini tidak mengatakan yang dua benda yang identik, 417 00:24:44,280 --> 00:24:46,845 tetapi masing-masing dari entri dalam vektor identik. 418 00:24:46,845 --> 00:24:50,000 419 00:24:50,000 --> 00:24:52,090 >> Berikut adalah bounded.compare. 420 00:24:52,090 --> 00:24:58,470 Jadi ini adalah sedikit lebih rumit dalam hal ini memiliki sebuah jika kondisi dan lain 421 00:24:58,470 --> 00:25:00,960 dan kemudian mengambil dua argumen pada suatu waktu. 422 00:25:00,960 --> 00:25:02,640 Jadi x adalah jenis apapun. 423 00:25:02,640 --> 00:25:06,280 Dan aku mengatakan ini Argumen kedua adalah. 424 00:25:06,280 --> 00:25:08,380 Ini bisa apa saja juga. 425 00:25:08,380 --> 00:25:12,490 Namun secara default, itu akan mengambil 5 jika Anda tidak menentukan apa-apa. 426 00:25:12,490 --> 00:25:16,730 >> Jadi di sini aku akan mengatakan jika x lebih besar dari. 427 00:25:16,730 --> 00:25:19,220 Jadi jika saya tidak menentukan, itu mengatakan jika x lebih besar dari 5, 428 00:25:19,220 --> 00:25:20,470 maka aku akan mengembalikan TRUE. 429 00:25:20,470 --> 00:25:23,230 lagi, aku akan kembali palsu. 430 00:25:23,230 --> 00:25:24,870 Jadi biarkan aku pergi ke depan dan menentukan ini. 431 00:25:24,870 --> 00:25:30,600 432 00:25:30,600 --> 00:25:34,550 >> Dan sekarang aku akan menjalankan bounded.compare 3. 433 00:25:34,550 --> 00:25:39,150 Jadi dikatakan adalah 3 kurang than-- adalah 3 lebih besar dari 5. 434 00:25:39,150 --> 00:25:41,830 Tidak, itu tidak begitu SALAH. 435 00:25:41,830 --> 00:25:46,550 >> Dan bounded.compare 3 dan aku akan untuk membandingkannya menggunakan sama 2. 436 00:25:46,550 --> 00:25:50,700 Jadi sekarang saya katakan ya, sekarang saya ingin menjadi sesuatu yang lain. 437 00:25:50,700 --> 00:25:52,750 Jadi aku akan mengatakan, Anda harus 2. 438 00:25:52,750 --> 00:25:56,640 >> Saya juga bisa melakukan hal semacam ini notasi atau saya mengatakan sama 2. 439 00:25:56,640 --> 00:25:58,720 Ini adalah lebih mudah dibaca bahwa ketika Anda 440 00:25:58,720 --> 00:26:01,450 melihat ini benar-benar fungsi rumit yang 441 00:26:01,450 --> 00:26:08,110 mengambil beberapa arguments-- dan ini bisa puluhan oftentimes-- hanya mengatakan 442 00:26:08,110 --> 00:26:11,140 a equals 2 lebih mudah dibaca untuk Anda sehingga nantinya di masa depan 443 00:26:11,140 --> 00:26:13,020 Anda akan tahu apa yang Anda lakukan. 444 00:26:13,020 --> 00:26:17,120 >> Jadi dalam hal ini, saya katakan adalah 3 lebih besar dari 2. 445 00:26:17,120 --> 00:26:18,270 Ya itu. 446 00:26:18,270 --> 00:26:22,350 Dan sama, saya hanya dapat menghapus ini dan mengatakan, adalah 3 lebih besar dari 2 447 00:26:22,350 --> 00:26:23,440 mana sama 2. 448 00:26:23,440 --> 00:26:26,230 Dan itu juga BENAR. 449 00:26:26,230 --> 00:26:26,730 Iya Nih? 450 00:26:26,730 --> 00:26:29,670 >> AUDIENCE: Apakah Anda mengeksekusi baris demi baris? 451 00:26:29,670 --> 00:26:30,670 >> DUSTIN TRAN: Ya saya. 452 00:26:30,670 --> 00:26:33,900 Jadi apa yang saya lakukan di sini adalah mengambil teks ini document-- 453 00:26:33,900 --> 00:26:39,825 dan apa yang hebat tentang rstudio adalah bahwa Aku hanya bisa menjalankan short-- sebuah jalan pintas kunci. 454 00:26:39,825 --> 00:26:41,820 Jadi aku melakukan Control-Enter. 455 00:26:41,820 --> 00:26:44,850 >> Dan kemudian, aku mengambil baris dalam dokumen teks 456 00:26:44,850 --> 00:26:46,710 dan kemudian menempatkan di konsol. 457 00:26:46,710 --> 00:26:50,800 Jadi di sini saya katakan, bounded.compare dan aku melakukan Control-X. 458 00:26:50,800 --> 00:26:52,540 Jadi saya hanya bisa melakukan menjalankan sini juga. 459 00:26:52,540 --> 00:26:54,920 Dan kemudian yang akan mengambil line dan kemudian taruh di sini. 460 00:26:54,920 --> 00:26:57,900 Dan kemudian sama, saya bisa melakukan lari di sini. 461 00:26:57,900 --> 00:27:04,630 Dan kemudian itu hanya akan terus mendefinisikan baris ke konsol seperti itu. 462 00:27:04,630 --> 00:27:10,690 >> Dan jika Anda juga melihat keriting yang kawat gigi yang ada seperti dalam sintaks C. 463 00:27:10,690 --> 00:27:13,910 x-- jika jika kondisi ini juga akan menggunakan tanda kurung dan kemudian 464 00:27:13,910 --> 00:27:15,350 Anda dapat menggunakan yang lain. 465 00:27:15,350 --> 00:27:17,496 Satu lagi yang lain jika. 466 00:27:17,496 --> 00:27:21,440 Jadi ini akan menjadi x sama sama, misalnya. 467 00:27:21,440 --> 00:27:24,190 468 00:27:24,190 --> 00:27:26,350 Dan kemudian aku akan kembali sesuatu di sini. 469 00:27:26,350 --> 00:27:29,490 >> Perhatikan bahwa ada dua yang berbeda hal di sini yang terjadi. 470 00:27:29,490 --> 00:27:34,360 Salah satunya adalah bahwa di sini saya menentukan mengembalikan nilai TRUE. 471 00:27:34,360 --> 00:27:35,950 Di sini saya hanya mengatakan x. 472 00:27:35,950 --> 00:27:39,970 Jadi R biasanya akan secara default mengambil arguments-- terakhir 473 00:27:39,970 --> 00:27:43,510 atau mengambil baris terakhir dari kode, dan itu akan menjadi apa itu kembali. 474 00:27:43,510 --> 00:27:46,920 Jadi di sini adalah sama Hal seperti melakukan kembali x. 475 00:27:46,920 --> 00:27:49,450 476 00:27:49,450 --> 00:27:50,540 >> Dan hanya untuk menunjukkan Anda. 477 00:27:50,540 --> 00:27:54,000 478 00:27:54,000 --> 00:27:57,052 Dan kemudian, ia akan bekerja seperti itu. 479 00:27:57,052 --> 00:27:58,260 Jadi biarkan aku melanjutkan ini. 480 00:27:58,260 --> 00:28:00,630 >> Jadi lain jika. 481 00:28:00,630 --> 00:28:04,060 Dan sungguh, aku bisa kembali apapun yang saya mau. 482 00:28:04,060 --> 00:28:06,680 Jadi saya bahkan tidak perlu kembali Booleans sepanjang waktu, 483 00:28:06,680 --> 00:28:08,410 Aku hanya bisa kembali sesuatu yang lain. 484 00:28:08,410 --> 00:28:10,670 Jadi saya dapat melakukan pengembalian beruang. 485 00:28:10,670 --> 00:28:12,989 >> Jadi, jika x sama sama a, itu akan kembali beruang. 486 00:28:12,989 --> 00:28:14,530 Jika tidak, itu akan mengembalikan TRUE. 487 00:28:14,530 --> 00:28:19,310 Saya juga bisa melakukan vektor atau benar-benar sesuatu. 488 00:28:19,310 --> 00:28:22,210 >> Dan biasanya di statis bahasa diketik, 489 00:28:22,210 --> 00:28:23,840 Anda harus menentukan jenis di sini. 490 00:28:23,840 --> 00:28:25,750 Dan melihat bahwa itu hanya bisa apa saja. 491 00:28:25,750 --> 00:28:32,400 Dan R cukup cerdas yang hanya akan melakukan ini dan itu akan bekerja dengan baik. 492 00:28:32,400 --> 00:28:33,620 >> Jadi biarkan aku menentukan ini. 493 00:28:33,620 --> 00:28:39,460 494 00:28:39,460 --> 00:28:41,230 Unexpected-- oh maaf. 495 00:28:41,230 --> 00:28:44,336 Ini harus menjadi penjepit keriting di sini. 496 00:28:44,336 --> 00:28:44,836 OKE. 497 00:28:44,836 --> 00:28:45,336 Keren. 498 00:28:45,336 --> 00:28:52,580 499 00:28:52,580 --> 00:28:54,530 Baiklah. 500 00:28:54,530 --> 00:28:58,250 Jadi sekarang mari kita bandingkan 3 dan sama dengan 3. 501 00:28:58,250 --> 00:29:01,860 Jadi harus return-- yeah beruang nilai. 502 00:29:01,860 --> 00:29:06,740 >> Jadi sekarang hal yang lebih umum seperti bagaimana dengan struktur data lainnya. 503 00:29:06,740 --> 00:29:09,110 Jadi Anda memiliki fungsi ini. 504 00:29:09,110 --> 00:29:15,360 Ini akan bekerja pada apapun nilai seperti 3 atau angka apapun, 505 00:29:15,360 --> 00:29:17,500 dengan kata lain, ganda. 506 00:29:17,500 --> 00:29:19,330 >> Tapi bagaimana dengan sesuatu seperti vektor. 507 00:29:19,330 --> 00:29:27,750 Jadi apa yang terjadi jika Anda do-- jadi aku akan menetapkan val untuk, katakanlah, 4-6. 508 00:29:27,750 --> 00:29:31,640 Jadi jika saya kembali ini, ini adalah vektor dari 4, 5, 6. 509 00:29:31,640 --> 00:29:34,935 >> Sekarang mari kita lihat apa yang terjadi jika saya bounded.compare val. 510 00:29:34,935 --> 00:29:37,680 511 00:29:37,680 --> 00:29:42,450 Jadi ini akan memberi Anda 15 1251. 512 00:29:42,450 --> 00:29:46,440 Jadi dengan kata lain, itu mengatakan jika Anda melihat kondisi ini 513 00:29:46,440 --> 00:29:50,040 sehingga dikatakan x kurang dari satu atau sesuatu. 514 00:29:50,040 --> 00:29:51,880 Jadi ini sedikit membingungkan karena sekarang 515 00:29:51,880 --> 00:29:53,379 Anda hanya tidak tahu apa yang terjadi. 516 00:29:53,379 --> 00:29:58,690 Jadi saya kira satu hal yang benar-benar baik tentang hanya mencoba untuk debug 517 00:29:58,690 --> 00:30:04,600 adalah bahwa Anda hanya dapat melakukan val lebih besar dari dan melihat apa yang terjadi di sana. 518 00:30:04,600 --> 00:30:09,720 >> Jadi val-- adalah secara default 5 jadi mari kita hanya Val lebih besar dari 5. 519 00:30:09,720 --> 00:30:14,280 Jadi ini adalah vektor SALAH SALAH BENAR. 520 00:30:14,280 --> 00:30:17,206 Jadi, sekarang ketika Anda sedang melihat ini, itu akan mengatakan jika, 521 00:30:17,206 --> 00:30:20,080 dan kemudian itu akan memberi Anda ini adalah vektor SALAH SALAH BENAR. 522 00:30:20,080 --> 00:30:23,450 >> Jadi, ketika Anda melewati ini ke R, R tidak tahu apa yang Anda lakukan. 523 00:30:23,450 --> 00:30:26,650 Karena mengharapkan satu pun nilai, yang merupakan Boolean, dan sekarang 524 00:30:26,650 --> 00:30:29,420 Anda memberikan vektor Booleans. 525 00:30:29,420 --> 00:30:31,970 Jadi secara default, R hanya akan mengatakan apa sih, 526 00:30:31,970 --> 00:30:35,440 Aku akan berasumsi bahwa Anda akan mengambil elemen pertama di sini. 527 00:30:35,440 --> 00:30:38,320 Jadi aku akan say-- aku akan untuk menganggap bahwa ini adalah palsu. 528 00:30:38,320 --> 00:30:40,890 Jadi itu akan mengatakan tidak, ini tidak benar. 529 00:30:40,890 --> 00:30:45,246 >> Demikian pula, itu akan menjadi val sama sama a. 530 00:30:45,246 --> 00:30:47,244 Tidak, maaf 5. 531 00:30:47,244 --> 00:30:48,910 Dan itu juga akan menjadi salah juga. 532 00:30:48,910 --> 00:30:52,410 Jadi itu akan mengatakan tidak, itu tidak BENAR juga jadi 533 00:30:52,410 --> 00:30:53,680 akan kembali terakhir ini. 534 00:30:53,680 --> 00:30:56,420 535 00:30:56,420 --> 00:31:01,360 >> Jadi ini adalah salah hal yang baik atau buruk hal, tergantung pada bagaimana Anda melihatnya. 536 00:31:01,360 --> 00:31:05,104 Karena ketika Anda menciptakan fungsi-fungsi ini, 537 00:31:05,104 --> 00:31:06,770 Anda tidak benar-benar tahu apa yang terjadi. 538 00:31:06,770 --> 00:31:10,210 Jadi kadang-kadang Anda ingin kesalahan, atau mungkin Anda hanya ingin peringatan. 539 00:31:10,210 --> 00:31:12,160 Dalam hal ini, R tidak melakukan hal itu. 540 00:31:12,160 --> 00:31:14,300 Jadi itu benar-benar sampai Anda didasarkan dari apa 541 00:31:14,300 --> 00:31:17,310 Anda berpikir bahasa harus dilakukan dalam kasus ini 542 00:31:17,310 --> 00:31:22,920 jika Anda lulus dalam vektor Booleans ketika Anda melakukan jika kondisi. 543 00:31:22,920 --> 00:31:31,733 >> Jadi mari kita mengatakan bahwa Anda memiliki asli satu dengan yang lain jika kembali BENAR dan Anda 544 00:31:31,733 --> 00:31:34,190 akan kembali palsu. 545 00:31:34,190 --> 00:31:39,300 Jadi salah satu cara abstrak ini adalah untuk mengatakan saya 546 00:31:39,300 --> 00:31:41,530 bahkan tidak perlu hal bersyarat ini. 547 00:31:41,530 --> 00:31:47,220 Hal lain yang bisa saya lakukan hanyalah kembali nilai-nilai sendiri. 548 00:31:47,220 --> 00:31:53,240 Jadi jika Anda perhatikan, jika Anda lakukan val lebih besar dari 5, 549 00:31:53,240 --> 00:31:56,350 ini akan mengembalikan vektor SALAH SALAH BENAR. 550 00:31:56,350 --> 00:31:58,850 >> Mungkin ini adalah apa yang Anda inginkan untuk bounded.compare. 551 00:31:58,850 --> 00:32:02,940 Anda ingin kembali vektor Booleans di mana ia membandingkan masing-masing nilai 552 00:32:02,940 --> 00:32:04,190 untuk diri mereka sendiri. 553 00:32:04,190 --> 00:32:11,165 Jadi Anda bisa melakukan bounded.compare fungsi x, a sama dengan 5. 554 00:32:11,165 --> 00:32:13,322 555 00:32:13,322 --> 00:32:15,363 Dan kemudian bukannya melakukan ini jika kondisi lain, 556 00:32:15,363 --> 00:32:21,430 Aku hanya akan kembali x lebih besar dari 5. 557 00:32:21,430 --> 00:32:23,620 Jadi, jika itu benar, maka itu akan mengembalikan TRUE. 558 00:32:23,620 --> 00:32:26,830 Dan kemudian jika tidak, itu akan kembali palsu. 559 00:32:26,830 --> 00:32:30,880 >> Dan ini akan bekerja untuk salah satu struktur ini. 560 00:32:30,880 --> 00:32:41,450 Jadi saya bisa bounded.compare c 1 6 atau 9 dan kemudian aku akan mengatakan sama 6, 561 00:32:41,450 --> 00:32:42,799 sebagai contoh. 562 00:32:42,799 --> 00:32:44,840 Dan kemudian itu akan memberikan Boolean yang tepat 563 00:32:44,840 --> 00:32:48,240 vektor yang Anda merancang. 564 00:32:48,240 --> 00:32:50,660 >> Jadi mereka hanya fungsi dan sekarang biarkan aku hanya 565 00:32:50,660 --> 00:32:54,980 menunjukkan beberapa visual interaktif. 566 00:32:54,980 --> 00:32:59,700 Saya tidak berpikir saya benar-benar memiliki Wi-Fi di sini jadi saya hanya pergi ke depan 567 00:32:59,700 --> 00:33:01,970 dan melewatkan yang satu ini saya kira. 568 00:33:01,970 --> 00:33:05,260 >> Tapi satu hal yang keren meskipun adalah bahwa jika Anda hanya 569 00:33:05,260 --> 00:33:09,600 ingin menguji sekelompok perintah data yang berbeda, 570 00:33:09,600 --> 00:33:13,320 ada sekelompok dataset yang berbeda yang sudah dimuat ke R. 571 00:33:13,320 --> 00:33:15,770 Jadi salah satunya adalah disebut dataset iris. 572 00:33:15,770 --> 00:33:18,910 Ini adalah salah satu yang paling terkenal yang di mesin belajar. 573 00:33:18,910 --> 00:33:23,350 Anda akan biasanya hanya melakukan semacam kasus uji untuk melihat apakah kode Anda berjalan. 574 00:33:23,350 --> 00:33:27,520 Jadi mari kita memeriksa apa iris. 575 00:33:27,520 --> 00:33:33,130 >> Jadi hal ini akan menjadi frame data. 576 00:33:33,130 --> 00:33:36,000 Dan itu agak lama karena Aku hanya dicetak iris. 577 00:33:36,000 --> 00:33:38,810 Ini mencetak seluruh hal. 578 00:33:38,810 --> 00:33:42,830 Sehingga memiliki semua nama-nama yang berbeda. 579 00:33:42,830 --> 00:33:45,505 Jadi iris adalah koleksi bunga yang berbeda. 580 00:33:45,505 --> 00:33:48,830 Dalam hal ini, Ini memberitahu Anda spesies itu, 581 00:33:48,830 --> 00:33:54,760 semua lebar yang berbeda dan panjang dari sepal dan petal. 582 00:33:54,760 --> 00:33:58,880 >> Dan biasanya, jika Anda ingin mencetak iris, 583 00:33:58,880 --> 00:34:03,680 misalnya, Anda tidak ingin memilikinya melakukan semua ini karena yang bisa mengambil alih 584 00:34:03,680 --> 00:34:05,190 seluruh konsol Anda. 585 00:34:05,190 --> 00:34:09,280 Jadi satu hal yang benar-benar bagus adalah fungsi kepala. 586 00:34:09,280 --> 00:34:12,929 Jadi jika Anda hanya melakukan kepala iris, ini akan memberikan Anda 587 00:34:12,929 --> 00:34:17,389 lima baris pertama, atau enam kurasa. 588 00:34:17,389 --> 00:34:19,909 Dan kemudian baik, Anda hanya dapat menentukan di sini. 589 00:34:19,909 --> 00:34:22,914 Jadi 20-- ini akan memberikan Anda pertama 20 baris. 590 00:34:22,914 --> 00:34:24,830 Dan aku benar-benar agak terkejut bahwa ini 591 00:34:24,830 --> 00:34:28,770 memberi saya enam jadi biarkan aku pergi ke depan dan memeriksa kepala iris-- atau, maaf. 592 00:34:28,770 --> 00:34:31,699 593 00:34:31,699 --> 00:34:34,960 Dan di sini akan memberikan Anda dokumentasi 594 00:34:34,960 --> 00:34:37,960 apa kepala nilai tidak. 595 00:34:37,960 --> 00:34:40,839 Jadi mengembalikan pertama atau terakhir dari suatu objek. 596 00:34:40,839 --> 00:34:42,630 Dan kemudian aku akan melihat default. 597 00:34:42,630 --> 00:34:47,340 Dan kemudian ia mengatakan default Metode kepala x dan n sama 6L. 598 00:34:47,340 --> 00:34:50,620 Jadi ini mengembalikan enam elemen pertama. 599 00:34:50,620 --> 00:34:55,050 Dan juga jika Anda perhatikan di sini, saya tidak harus menentukan n sama dengan 6. 600 00:34:55,050 --> 00:34:56,840 Secara default menggunakan enam, saya kira. 601 00:34:56,840 --> 00:35:00,130 Dan kemudian, jika saya ingin menentukan tertentu nilai, maka saya bisa melihat itu juga. 602 00:35:00,130 --> 00:35:02,970 603 00:35:02,970 --> 00:35:10,592 >> Sehingga beberapa perintah sederhana dan inilah satu lagi yang hanya-- baik, 604 00:35:10,592 --> 00:35:12,550 Saya can-- ini sebenarnya lebih kompleks kecil, 605 00:35:12,550 --> 00:35:17,130 tapi ini hanya akan mengambil kelas setiap kolom dari dataset iris. 606 00:35:17,130 --> 00:35:20,910 Jadi ini akan menunjukkan kepada Anda apa masing-masing kolom dalam hal jenis mereka. 607 00:35:20,910 --> 00:35:23,665 Jadi panjang sepal numerik, Lebar sepal numerik. 608 00:35:23,665 --> 00:35:26,540 Semua nilai-nilai ini hanya numerik karena Anda dapat memberitahu dari data ini 609 00:35:26,540 --> 00:35:29,440 struktur ini semua akan numerik. 610 00:35:29,440 --> 00:35:34,310 >> Dan kolom Spesies akan menjadi faktor. 611 00:35:34,310 --> 00:35:37,270 Jadi biasanya, Anda akan berpikir bahwa ini adalah seperti karakter string. 612 00:35:37,270 --> 00:35:48,830 Tetapi jika Anda hanya melakukan irisSpecies, dan kemudian aku akan melakukan kepala 5, 613 00:35:48,830 --> 00:35:51,820 dan ini akan mencetak keluar lima nilai pertama. 614 00:35:51,820 --> 00:35:54,150 >> Dan kemudian melihat tingkat ini. 615 00:35:54,150 --> 00:35:58,870 Jadi ini adalah saying-- ini adalah cara R memiliki variabel kategori. 616 00:35:58,870 --> 00:36:03,765 Jadi bukan hanya memiliki karakter string, 617 00:36:03,765 --> 00:36:06,740 memiliki tingkat menspesifikasikan yang dari hal-hal ini. 618 00:36:06,740 --> 00:36:12,450 >> Jadi katakanlah irisSpecies 1. 619 00:36:12,450 --> 00:36:17,690 Jadi apa yang ingin Anda lakukan di sini adalah aku subsetting kolom Spesies ini. 620 00:36:17,690 --> 00:36:21,480 Jadi ini mengambil Kolom spesies dan kemudian 621 00:36:21,480 --> 00:36:23,820 itu indeks untuk mendapatkan elemen pertama. 622 00:36:23,820 --> 00:36:27,140 Jadi ini harus memberikan Setosa. 623 00:36:27,140 --> 00:36:28,710 Dan itu juga memberikan tingkat sini. 624 00:36:28,710 --> 00:36:32,812 >> Jadi Anda juga dapat membandingkan ini ke Setosa karakter 625 00:36:32,812 --> 00:36:34,645 dan ini tidak akan menjadi BENAR karena salah satu 626 00:36:34,645 --> 00:36:37,940 adalah dari tipe yang berbeda dari yang lain. 627 00:36:37,940 --> 00:36:40,590 Atau aku kira itu benar karena R lebih cerdas dari itu. 628 00:36:40,590 --> 00:36:45,420 Dan melihat hal ini dan kemudian mengatakan, mungkin ini adalah apa yang Anda inginkan. 629 00:36:45,420 --> 00:36:51,860 Jadi itu akan mengatakan karakter tali Setosa adalah sama seperti yang satu ini. 630 00:36:51,860 --> 00:37:01,290 Dan kemudian sama, Anda dapat juga hanya ambil ini seperti seterusnya. 631 00:37:01,290 --> 00:37:05,580 >> Jadi itu hanya semacam perintah cepat dataset. 632 00:37:05,580 --> 00:37:08,030 Jadi inilah beberapa eksplorasi data. 633 00:37:08,030 --> 00:37:11,360 Jadi ini adalah sedikit lebih terlibat dengan analisis data. 634 00:37:11,360 --> 00:37:18,340 Dan ini diambil dari beberapa bootcamp di R di Berkeley. 635 00:37:18,340 --> 00:37:20,790 >> Jadi perpustakaan asing. 636 00:37:20,790 --> 00:37:24,880 Jadi aku akan memuat dalam perpustakaan yang disebut asing. 637 00:37:24,880 --> 00:37:32,460 Jadi ini akan memberi saya read.dta sehingga berasumsi bahwa saya punya dataset ini. 638 00:37:32,460 --> 00:37:39,000 Ini disimpan dalam arus direktori konsol saya bekerja. 639 00:37:39,000 --> 00:37:42,190 Jadi mari kita lihat apa yang direktori kerja. 640 00:37:42,190 --> 00:37:44,620 >> Jadi, inilah direktori kerja saya. 641 00:37:44,620 --> 00:37:50,040 Dan membaca titik data, ini hal, mengatakan berkas ini 642 00:37:50,040 --> 00:37:54,650 terletak di folder data ini direktori kerja saat ini. 643 00:37:54,650 --> 00:38:00,520 Dan read.dta ini tidak perintah default. 644 00:38:00,520 --> 00:38:02,760 Saya kira saya dimuat di sudah. 645 00:38:02,760 --> 00:38:04,750 IEI menganggap saya dimuat ini sudah. 646 00:38:04,750 --> 00:38:08,115 >> Tapi begitu read.dta tidak akan menjadi perintah default. 647 00:38:08,115 --> 00:38:11,550 Dan itulah mengapa Anda akan memiliki untuk memuat di perpustakaan ini package-- 648 00:38:11,550 --> 00:38:14,500 Paket ini disebut asing. 649 00:38:14,500 --> 00:38:16,690 Dan jika Anda tidak memiliki paket, saya pikir 650 00:38:16,690 --> 00:38:19,180 asing adalah salah satu yang built-in. 651 00:38:19,180 --> 00:38:31,150 Jika tidak, Anda juga bisa melakukan install.packages 652 00:38:31,150 --> 00:38:33,180 dan ini akan menginstal paket tersebut. 653 00:38:33,180 --> 00:38:36,878 Dan ini akan memberi Anda R. Eh, tidak. 654 00:38:36,878 --> 00:38:39,830 655 00:38:39,830 --> 00:38:43,140 Dan kemudian aku hanya akan berhenti ini karena saya sudah memilikinya. 656 00:38:43,140 --> 00:38:46,920 >> Tapi apa benar-benar baik tentang R adalah bahwa manajemen paket 657 00:38:46,920 --> 00:38:48,510 Sistem ini sangat elegan. 658 00:38:48,510 --> 00:38:52,470 Karena akan menyimpan semua benar-benar baik untuk Anda. 659 00:38:52,470 --> 00:38:59,780 Jadi dalam hal ini, itu akan menyimpan dalam, saya percaya, perpustakaan ini di sini. 660 00:38:59,780 --> 00:39:02,390 >> Jadi kapan saja Anda ingin menginstal paket baru, 661 00:39:02,390 --> 00:39:04,980 itu hanya sesederhana melakukan install.packages 662 00:39:04,980 --> 00:39:07,500 dan R akan mengelola semua paket untuk Anda. 663 00:39:07,500 --> 00:39:12,900 Jadi Anda tidak perlu melakukan sesuatu di Python, di mana Anda memiliki paket eksternal 664 00:39:12,900 --> 00:39:15,330 manajer seperti kertas Anaconda mana Anda 665 00:39:15,330 --> 00:39:18,310 doing-- Anda menginstal paket luar Python 666 00:39:18,310 --> 00:39:20,940 dan kemudian Anda mencoba untuk menjalankan mereka sendiri. 667 00:39:20,940 --> 00:39:22,210 Jadi ini benar-benar cara yang baik. 668 00:39:22,210 --> 00:39:25,590 >> Dan install.packages membutuhkan internet. 669 00:39:25,590 --> 00:39:31,950 Dibutuhkan dari server dan repositori yang 670 00:39:31,950 --> 00:39:33,960 mengumpulkan semua paket disebut CRAN. 671 00:39:33,960 --> 00:39:40,690 Dan Anda dapat menentukan jenis cermin Anda ingin men-download paket dari. 672 00:39:40,690 --> 00:39:43,420 >> Jadi di sini saya mengambil dataset ini. 673 00:39:43,420 --> 00:39:46,240 Aku membacanya dalam menggunakan fungsi ini. 674 00:39:46,240 --> 00:39:49,360 Jadi biarkan aku pergi ke depan dan melakukan itu. 675 00:39:49,360 --> 00:39:52,900 >> Jadi mari kita asumsikan bahwa Anda memiliki dataset ini 676 00:39:52,900 --> 00:39:55,550 dan Anda benar-benar tidak tahu apa itu. 677 00:39:55,550 --> 00:39:58,560 Dan ini benar-benar muncul cukup sering dalam industri 678 00:39:58,560 --> 00:40:00,910 di mana Anda hanya perlu ini ton dan ton hal-hal berantakan 679 00:40:00,910 --> 00:40:02,890 dan mereka sangat berlabel. 680 00:40:02,890 --> 00:40:06,380 Jadi di sini saya punya ini dataset dan saya tidak tahu 681 00:40:06,380 --> 00:40:08,400 apa itu jadi aku hanya menunjukkan untuk check it out. 682 00:40:08,400 --> 00:40:10,620 >> Jadi aku akan melakukan kepala pertama. 683 00:40:10,620 --> 00:40:14,190 Jadi saya memeriksa enam pertama kolom apa dataset ini. 684 00:40:14,190 --> 00:40:21,730 Jadi ini adalah negara, pres04, dan kemudian semua ini jenis yang berbeda dari kolom. 685 00:40:21,730 --> 00:40:25,612 Dan yang menarik di sini, saya kira, adalah bahwa Anda 686 00:40:25,612 --> 00:40:27,945 akan berasumsi bahwa ini terlihat seperti semacam pemilu. 687 00:40:27,945 --> 00:40:30,482 688 00:40:30,482 --> 00:40:32,190 Dan saya kira hanya dari melihat file 689 00:40:32,190 --> 00:40:41,070 nama ini adalah semacam koleksi data tentang calon atau pemilih 690 00:40:41,070 --> 00:40:44,920 yang memilih presiden tertentu atau calon presiden 691 00:40:44,920 --> 00:40:46,550 untuk Pemilu 2004. 692 00:40:46,550 --> 00:40:52,920 >> Jadi di sini adalah nilai-nilai 1, 2 jadi salah satu cara untuk menyimpan 693 00:40:52,920 --> 00:40:56,540 calon presiden nama-nama mereka. 694 00:40:56,540 --> 00:40:59,780 Dalam kasus ini, sepertinya mereka nilai hanya integer. 695 00:40:59,780 --> 00:41:04,030 Jadi tahun 2004, itu Bush dibandingkan Kerry saya percaya. 696 00:41:04,030 --> 00:41:09,010 Dan sekarang, katakanlah Anda hanya tidak tahu apakah 1 dapat disamakan dengan Bush atau 2 697 00:41:09,010 --> 00:41:11,703 sesuai dengan Kerry atau dan seterusnya dan sebagainya, kan? 698 00:41:11,703 --> 00:41:15,860 >> Dan ini, hanya untuk saya, masalah yang cukup umum. 699 00:41:15,860 --> 00:41:18,230 Jadi apa yang dapat Anda lakukan dalam kasus ini? 700 00:41:18,230 --> 00:41:20,000 Jadi mari kita periksa semua hal-hal lainnya. 701 00:41:20,000 --> 00:41:22,790 >> negara, Aku menduga ini berasal dari negara yang berbeda. 702 00:41:22,790 --> 00:41:25,100 PARTYID, pendapatan. 703 00:41:25,100 --> 00:41:27,710 Mari kita lihat PARTYID. 704 00:41:27,710 --> 00:41:32,800 Jadi mungkin satu hal yang dapat Anda lakukan adalah melihat masing-masing dari pengamatan 705 00:41:32,800 --> 00:41:36,250 yang memiliki PARTYID dari Partai Republik atau Demokrat atau sesuatu. 706 00:41:36,250 --> 00:41:38,170 Jadi mari kita lihat apa yang PARTYID. 707 00:41:38,170 --> 00:41:41,946 >> Jadi aku akan mengambil dat dan kemudian aku akan 708 00:41:41,946 --> 00:41:47,960 untuk melakukan tanda dolar ini operator yang saya lakukan sebelumnya 709 00:41:47,960 --> 00:41:50,770 dan ini akan subset pada kolom tersebut. 710 00:41:50,770 --> 00:41:57,760 Dan kemudian aku akan kepala ini 20, hanya untuk melihat apa ini tampak seperti. 711 00:41:57,760 --> 00:42:00,170 >> Jadi ini hanya sekelompok NAs. 712 00:42:00,170 --> 00:42:02,800 Jadi dengan kata lain, Anda memiliki hilang data tentang orang-orang ini. 713 00:42:02,800 --> 00:42:08,100 Tapi Anda juga melihat ini PARTYID bahwa adalah faktor 714 00:42:08,100 --> 00:42:10,030 jadi ini memberi Anda berbagai kategori. 715 00:42:10,030 --> 00:42:14,170 Jadi dengan kata lain, PARTYID dapat mengambil Demokrat, Partai Republik, Independen, 716 00:42:14,170 --> 00:42:16,640 atau sesuatu yang lain. 717 00:42:16,640 --> 00:42:23,940 >> Jadi mari kita pergi ke depan dan mari kita melihat mana is-- ini oh, OK. 718 00:42:23,940 --> 00:42:28,480 Jadi aku akan subset untuk PARTYID dan kemudian 719 00:42:28,480 --> 00:42:32,780 melihat mana yang Demokrat, misalnya. 720 00:42:32,780 --> 00:42:37,150 Ini akan memberi Anda Boolean, Boolean besar trues dan kesalahan-kesalahan. 721 00:42:37,150 --> 00:42:41,630 >> Dan sekarang, katakanlah saya ingin untuk subset pada orang-orang ini. 722 00:42:41,630 --> 00:42:47,260 Jadi ini akan mengambil dat dan bagian untuk mana pengamatan 723 00:42:47,260 --> 00:42:48,910 memiliki equals PARTYID sama Demokrat. 724 00:42:48,910 --> 00:42:52,830 725 00:42:52,830 --> 00:42:55,180 Dan ini cukup lama karena ada begitu banyak dari mereka. 726 00:42:55,180 --> 00:42:59,060 Jadi sekarang, aku akan kepala ini dalam 20. 727 00:42:59,060 --> 00:43:05,690 728 00:43:05,690 --> 00:43:11,270 >> Dan seperti yang Anda perhatikan, sama equals menarik dalam bahwa Anda 729 00:43:11,270 --> 00:43:13,250 already-- Anda juga termasuk NAs. 730 00:43:13,250 --> 00:43:19,010 Jadi dalam hal ini, Anda masih tidak bisa mendapatkan informasi apapun karena sekarang Anda memiliki NAs 731 00:43:19,010 --> 00:43:22,650 dan Anda hanya ingin melihat mana yang observasi sesuai dengan Demokrat 732 00:43:22,650 --> 00:43:24,670 dan tidak ini hilang nilai-nilai sendiri. 733 00:43:24,670 --> 00:43:27,680 Jadi bagaimana Anda menyingkirkan NAs ini? 734 00:43:27,680 --> 00:43:36,410 >> Jadi di sini aku hanya menggunakan tombol pada saya kursor dan kemudian mengatakan bergerak di sekitar. 735 00:43:36,410 --> 00:43:39,778 Dan maka di sini aku hanya akan mengatakan datpartyid is.na. 736 00:43:39,778 --> 00:43:48,970 737 00:43:48,970 --> 00:43:52,720 Jadi ini dan dan akan mengambil dua vektor Boolean yang berbeda 738 00:43:52,720 --> 00:43:57,160 dan mengatakan itu akan menjadi TRUE dan FALSE misalnya. 739 00:43:57,160 --> 00:43:59,190 Jadi itu akan melakukan komponen-bijaksana ini. 740 00:43:59,190 --> 00:44:02,910 Jadi di sini saya katakan take frame data, subset 741 00:44:02,910 --> 00:44:10,170 untuk orang-orang yang sesuai dengan Demokrat, dan menghapus salah satu dari mereka yang tidak NA. 742 00:44:10,170 --> 00:44:13,540 >> Jadi will-- ini harus memberikan sesuatu. 743 00:44:13,540 --> 00:44:16,540 744 00:44:16,540 --> 00:44:17,600 Mari kita lihat is.na. 745 00:44:17,600 --> 00:44:24,670 746 00:44:24,670 --> 00:44:27,690 Mari kita coba datpartyid is.na. 747 00:44:27,690 --> 00:44:36,290 748 00:44:36,290 --> 00:44:45,290 Dan ini harus memberikan you-- sorry-- hanya vektor Boolean. 749 00:44:45,290 --> 00:44:49,260 Dan kemudian, karena begitu lama, Aku akan subset pada 20. 750 00:44:49,260 --> 00:44:49,760 OKE. 751 00:44:49,760 --> 00:44:51,570 Jadi ini harus bekerja. 752 00:44:51,570 --> 00:44:54,700 >> Dan yang satu ini juga akan trues. 753 00:44:54,700 --> 00:45:01,830 Ah, jadi kesalahan saya di sini adalah bahwa I'm-- I menggunakan C ++ dan R bergantian jadi saya membuat 754 00:45:01,830 --> 00:45:03,590 kesalahan ini sepanjang waktu. 755 00:45:03,590 --> 00:45:05,807 Dan operator adalah sebenarnya yang Anda inginkan. 756 00:45:05,807 --> 00:45:08,140 Anda tidak ingin menggunakan dua ampersands, hanya satu. 757 00:45:08,140 --> 00:45:14,970 758 00:45:14,970 --> 00:45:17,010 OKE. 759 00:45:17,010 --> 00:45:18,140 >> Jadi mari kita lihat. 760 00:45:18,140 --> 00:45:20,930 761 00:45:20,930 --> 00:45:23,920 Jadi kami subsetted ke PARTYID mana mereka Demokrat 762 00:45:23,920 --> 00:45:25,300 dan mereka tidak kehilangan nilai. 763 00:45:25,300 --> 00:45:27,690 Dan sekarang mari kita lihat mana yang mereka pilih. 764 00:45:27,690 --> 00:45:31,530 Jadi sepertinya kebanyakan dari mereka memilih 1. 765 00:45:31,530 --> 00:45:36,090 Jadi aku akan pergi ke depan dan mengatakan bahwa adalah Kerry. 766 00:45:36,090 --> 00:45:39,507 >> Dan sama, Anda dapat juga pergi ke Republik 767 00:45:39,507 --> 00:45:41,090 dan mudah-mudahan, ini harus memberikan 2. 768 00:45:41,090 --> 00:45:49,730 769 00:45:49,730 --> 00:45:51,770 Ini hanya sekelompok kolom yang berbeda. 770 00:45:51,770 --> 00:45:53,070 Dan memang, itu 2. 771 00:45:53,070 --> 00:45:55,750 Jadi PARTYID semua Republik, kebanyakan dari mereka memberikan suara untuk 2. 772 00:45:55,750 --> 00:45:58,390 >> Jadi sepertinya, hanya dengan melihat ini, 773 00:45:58,390 --> 00:46:00,600 Republik akan menjadi a very-- atau PARTYID yang 774 00:46:00,600 --> 00:46:02,790 akan menjadi sangat faktor besar dalam menentukan 775 00:46:02,790 --> 00:46:05,420 calon yang mereka akan memilih. 776 00:46:05,420 --> 00:46:07,120 Dan ini jelas benar secara umum. 777 00:46:07,120 --> 00:46:10,139 Dan ini cocok Anda intuisi, tentu saja. 778 00:46:10,139 --> 00:46:11,930 Jadi sepertinya aku kehabisan waktu sehingga 779 00:46:11,930 --> 00:46:17,040 saya hanya harus pergi ke depan dan menunjukkan beberapa gambar yang cepat. 780 00:46:17,040 --> 00:46:21,120 Jadi, inilah sesuatu yang sedikit lebih rumit dengan visualisasi. 781 00:46:21,120 --> 00:46:26,450 Jadi dalam hal ini, ini adalah sangat analisis sederhana hanya memeriksa apa 782 00:46:26,450 --> 00:46:28,500 presiden '04 adalah. 783 00:46:28,500 --> 00:46:33,920 >> Jadi dalam hal ini, katakanlah Anda ingin menjawab pertanyaan ini. 784 00:46:33,920 --> 00:46:38,540 Jadi misalkan kita ingin tahu pemungutan suara perilaku dalam pemilihan presiden 2004 785 00:46:38,540 --> 00:46:41,170 dan bagaimana yang bervariasi oleh ras. 786 00:46:41,170 --> 00:46:44,380 Jadi anda tidak hanya ingin melihat perilaku pemilih, 787 00:46:44,380 --> 00:46:47,860 tetapi Anda ingin subset dari masing-masing ras dan jenis meringkas itu. 788 00:46:47,860 --> 00:46:50,770 Dan Anda hanya dapat memberitahu oleh notasi kompleks ini 789 00:46:50,770 --> 00:46:52,580 bahwa ini adalah jenis semakin kabur. 790 00:46:52,580 --> 00:46:56,390 >> Jadi salah satu yang lebih maju R paket itu juga jenis baru-baru ini 791 00:46:56,390 --> 00:47:00,070 disebut dplyr. 792 00:47:00,070 --> 00:47:03,060 Jadi yang satu ini di sini. 793 00:47:03,060 --> 00:47:08,080 Dan ggplot2 ggg-- hanya bagus cara melakukan visualisasi yang lebih baik 794 00:47:08,080 --> 00:47:09,400 dari yang built-in. 795 00:47:09,400 --> 00:47:11,108 >> Jadi aku akan memuat dua perpustakaan. 796 00:47:11,108 --> 00:47:13,200 797 00:47:13,200 --> 00:47:16,950 Kemudian, aku akan pergi depan dan menjalankan perintah ini. 798 00:47:16,950 --> 00:47:19,050 Anda hanya bisa memperlakukan ini sebagai kotak hitam. 799 00:47:19,050 --> 00:47:23,460 >> Apa yang terjadi adalah bahwa pipa ini Operator lewat dalam argumen ini 800 00:47:23,460 --> 00:47:24,110 ke sini. 801 00:47:24,110 --> 00:47:28,070 Jadi aku mengatakan kelompok dengan dat ras dan kemudian presiden 04. 802 00:47:28,070 --> 00:47:31,530 Dan kemudian, semua ini perintah lain menyaring dan kemudian meringkas 803 00:47:31,530 --> 00:47:34,081 di mana aku melakukan hitungan dan maka aku merencanakan sini. 804 00:47:34,081 --> 00:47:39,980 805 00:47:39,980 --> 00:47:42,500 OK keren. 806 00:47:42,500 --> 00:47:44,620 Jadi mari kita pergi ke depan dan melihat apa ini tampak seperti. 807 00:47:44,620 --> 00:47:52,280 808 00:47:52,280 --> 00:47:57,290 >> Jadi apa yang terjadi di sini adalah bahwa saya hanya diplot masing-masing ras dan kemudian 809 00:47:57,290 --> 00:47:59,670 mana yang mereka pilih. 810 00:47:59,670 --> 00:48:03,492 Dan kedua berbeda nilai sesuai dengan 2 dan 1. 811 00:48:03,492 --> 00:48:05,325 Jika Anda ingin menjadi lebih elegan, Anda juga bisa 812 00:48:05,325 --> 00:48:11,770 hanya menentukan bahwa 2 adalah Kerry-- atau 2 adalah Bush, dan kemudian 1 adalah Kerry. 813 00:48:11,770 --> 00:48:13,700 Dan Anda juga dapat memiliki bahwa dalam legenda Anda. 814 00:48:13,700 --> 00:48:17,410 >> Dan Anda juga dapat membagi ini grafik batang. 815 00:48:17,410 --> 00:48:19,480 Karena satu hal yang bahwa, jika Anda perhatikan, 816 00:48:19,480 --> 00:48:24,560 ini sangat tidak mudah untuk mengidentifikasi yang dari dua nilai ini lebih besar. 817 00:48:24,560 --> 00:48:27,920 Jadi satu hal yang Anda ingin lakukan adalah mengambil area biru ini 818 00:48:27,920 --> 00:48:31,855 dan hanya memindahkannya ke sini sehingga Anda dapat membandingkan dua sisi ini berdampingan. 819 00:48:31,855 --> 00:48:34,480 Dan saya rasa itu sesuatu yang saya tidak punya waktu untuk lakukan sekarang, 820 00:48:34,480 --> 00:48:36,660 tapi itu juga sangat mudah untuk dilakukan. 821 00:48:36,660 --> 00:48:40,310 Anda hanya dapat melihat ke dalam halaman manual dari ggplot. 822 00:48:40,310 --> 00:48:47,170 Jadi Anda hanya dapat melakukan ggplot seperti itu dan membaca ke halaman ini manusia. 823 00:48:47,170 --> 00:48:51,920 >> Jadi biarkan aku hanya cepat menunjukkan beberapa hal keren. 824 00:48:51,920 --> 00:48:57,610 Mari kita pergi ke depan dan pergi to-- hanya penerapan pembelajaran mesin. 825 00:48:57,610 --> 00:49:02,450 Jadi katakanlah kita memiliki tiga ini paket jadi saya akan memuat ini di. 826 00:49:02,450 --> 00:49:05,500 827 00:49:05,500 --> 00:49:09,170 Jadi ini hanya mencetak beberapa informasi setelah saya dimuat di hal. 828 00:49:09,170 --> 00:49:15,220 Jadi saya mengatakan read.csv ini, dataset ini, dan sekarang 829 00:49:15,220 --> 00:49:18,940 Aku akan pergi ke depan dan melihat dan melihat apa yang ada di dalam dataset ini. 830 00:49:18,940 --> 00:49:22,080 >> Jadi pertama 20 observasi. 831 00:49:22,080 --> 00:49:27,190 Jadi saya hanya X1, X2, dan Y. Jadi Sepertinya sekelompok nilai-nilai ini 832 00:49:27,190 --> 00:49:31,640 berkisar antara mungkin 20 sampai 80 atau lebih. 833 00:49:31,640 --> 00:49:37,700 Dan kemudian sama untuk X2 dan kemudian Y ini tampaknya menjadi label 0 dan 1. 834 00:49:37,700 --> 00:49:49,500 >> Untuk memverifikasi ini, saya bisa hanya melakukan data ringkasan X1. 835 00:49:49,500 --> 00:49:51,660 Dan kemudian sama untuk semua ini kolom lainnya. 836 00:49:51,660 --> 00:49:55,300 Jadi ringkasan adalah cara cepat hanya menunjukkan Anda nilai cepat. 837 00:49:55,300 --> 00:49:56,330 Oh maaf. 838 00:49:56,330 --> 00:49:58,440 Yang satu ini harus Y. 839 00:49:58,440 --> 00:50:03,420 >> Jadi dalam hal ini, memberikan quantiles, median, maxes juga. 840 00:50:03,420 --> 00:50:07,130 Dalam hal ini, dataY, Anda dapat melihat bahwa itu hanya akan menjadi 0 dan 1. 841 00:50:07,130 --> 00:50:10,100 Juga mean mengatakan 0.6, hanya berarti bahwa 842 00:50:10,100 --> 00:50:13,380 Sepertinya saya memiliki lebih dari 1s 0s. 843 00:50:13,380 --> 00:50:16,160 >> Jadi biarkan aku pergi ke depan dan menunjukkan apa ini tampak seperti. 844 00:50:16,160 --> 00:50:17,470 Jadi aku hanya akan plot ini. 845 00:50:17,470 --> 00:50:22,852 846 00:50:22,852 --> 00:50:24,636 Mari kita lihat bagaimana untuk menghapus ini. 847 00:50:24,636 --> 00:50:30,492 848 00:50:30,492 --> 00:50:31,468 Oh oke. 849 00:50:31,468 --> 00:50:35,840 850 00:50:35,840 --> 00:50:36,340 OKE. 851 00:50:36,340 --> 00:50:37,590 >> Jadi ini adalah apa yang tampak seperti. 852 00:50:37,590 --> 00:50:46,310 Jadi sepertinya kuning saya ditentukan sebagai 0, dan kemudian merah saya ditetapkan sebagai 1s. 853 00:50:46,310 --> 00:50:52,190 Jadi di sini terlihat seperti poin label dan 854 00:50:52,190 --> 00:50:56,410 Sepertinya Anda hanya ingin beberapa semacam pengelompokan ini. 855 00:50:56,410 --> 00:51:01,020 >> Dan biarkan aku hanya pergi ke depan dan menunjukkan Anda beberapa fungsi built-in. 856 00:51:01,020 --> 00:51:03,580 Jadi di sini adalah lm. 857 00:51:03,580 --> 00:51:06,060 Jadi ini hanya mencoba agar sesuai garis untuk ini. 858 00:51:06,060 --> 00:51:08,640 Jadi apa cara terbaik bahwa saya bisa cocok dengan garis tersebut 859 00:51:08,640 --> 00:51:14,020 bahwa itu yang terbaik akan memisahkan semacam ini clustering. 860 00:51:14,020 --> 00:51:21,790 Dan idealnya, Anda hanya bisa melihat bahwa saya hanya menjalankan semua perintah ini 861 00:51:21,790 --> 00:51:25,450 dan kemudian, aku akan depan dan tambahkan baris. 862 00:51:25,450 --> 00:51:28,970 >> Jadi ini tampaknya seperti perkiraan terbaik. 863 00:51:28,970 --> 00:51:34,150 Ini mengambil yang terbaik yang meminimalkan kesalahan dalam mencoba untuk menyesuaikan baris ini. 864 00:51:34,150 --> 00:51:40,000 Jelas, ini terlihat seperti baik, tapi itu bukan yang terbaik. 865 00:51:40,000 --> 00:51:43,130 Dan model linear, di umum, akan menjadi 866 00:51:43,130 --> 00:51:46,811 benar-benar hebat untuk teori dan hanya semacam bangunan dasar-dasar mesin 867 00:51:46,811 --> 00:51:47,310 sedang belajar. 868 00:51:47,310 --> 00:51:50,330 Tapi dalam prakteknya, Anda akan ingin melakukan sesuatu yang lebih umum. 869 00:51:50,330 --> 00:51:54,280 >> Jadi Anda bisa mencoba menjalankan sesuatu yang disebut neural network. 870 00:51:54,280 --> 00:51:57,110 Hal-hal ini semakin lebih umum. 871 00:51:57,110 --> 00:52:00,530 Dan mereka hanya bekerja fantastis untuk dataset besar. 872 00:52:00,530 --> 00:52:07,080 Jadi dalam hal ini, kita hanya have-- mari see-- kita memiliki nrow. 873 00:52:07,080 --> 00:52:09,010 Jadi nrow hanya mengatakan jumlah baris. 874 00:52:09,010 --> 00:52:11,790 Jadi dalam hal ini, saya memiliki 100 observasi. 875 00:52:11,790 --> 00:52:15,010 >> Jadi biarkan aku pergi ke depan dan membuat jaringan saraf. 876 00:52:15,010 --> 00:52:18,620 Jadi ini benar-benar baik karena saya hanya bisa mengatakan nnet 877 00:52:18,620 --> 00:52:21,767 dan kemudian aku kemunduran Y. Jadi Y adalah kolom tersebut. 878 00:52:21,767 --> 00:52:23,850 Dan kemudian kemunduran pada dua variabel lainnya. 879 00:52:23,850 --> 00:52:27,360 Jadi ini lebih pendek notasi untuk X1 dan X2. 880 00:52:27,360 --> 00:52:29,741 >> Jadi mari kita pergi ke depan dan menjalankan ini. 881 00:52:29,741 --> 00:52:30,240 Oh maaf. 882 00:52:30,240 --> 00:52:32,260 Saya harus menjalankan semua ini. 883 00:52:32,260 --> 00:52:37,500 Dan ini hanya mencetak notasi untuk seberapa cepat atau tidak cepat itu 884 00:52:37,500 --> 00:52:38,460 berkumpul. 885 00:52:38,460 --> 00:52:41,420 Jadi sepertinya itu menyatu. 886 00:52:41,420 --> 00:52:44,970 Jadi biarkan aku pergi ke depan dan mencetak apa ini tampak seperti. 887 00:52:44,970 --> 00:52:51,260 >> Lihat di sini adalah gambar dan di sini adalah kontur yang menunjukkan seberapa baik cocok. 888 00:52:51,260 --> 00:52:56,380 Dan ini adalah hanya-- dapat Anda lihat ini bahwa ini sangat, sangat bagus. 889 00:52:56,380 --> 00:52:59,400 Bahkan bisa overfitting, tetapi Anda dapat juga 890 00:52:59,400 --> 00:53:03,390 account ini dengan yang lain teknik seperti cross-validasi. 891 00:53:03,390 --> 00:53:06,180 Dan ini juga dibangun ke R. 892 00:53:06,180 --> 00:53:09,170 >> Dan biarkan aku hanya menunjukkan Anda mendukung mesin vektor. 893 00:53:09,170 --> 00:53:12,470 Ini adalah satu lagi benar-benar umum teknik dalam pembelajaran mesin. 894 00:53:12,470 --> 00:53:18,550 Hal ini sangat mirip dengan model linear, tapi menggunakan apa yang disebut metode kernel. 895 00:53:18,550 --> 00:53:22,790 Dan mari kita lihat seberapa baik yang tidak. 896 00:53:22,790 --> 00:53:26,430 Jadi yang satu ini sangat mirip dengan bagaimana baik jaringan saraf melakukan, 897 00:53:26,430 --> 00:53:27,900 tapi itu jauh lebih halus. 898 00:53:27,900 --> 00:53:35,740 Dan ini didasarkan dari dari UMPC bagaimana SVMs kerja. 899 00:53:35,740 --> 00:53:40,250 >> Jadi ini hanya sangat gambaran singkat dari beberapa 900 00:53:40,250 --> 00:53:43,822 fungsi built-in yang dapat Anda lakukan dan juga beberapa dari eksplorasi data. 901 00:53:43,822 --> 00:53:45,905 Jadi biarkan aku hanya pergi ke depan dan kembali ke slide. 902 00:53:45,905 --> 00:53:50,290 903 00:53:50,290 --> 00:53:53,670 >> Jadi jelas, ini adalah tidak sangat komprehensif. 904 00:53:53,670 --> 00:53:57,140 Dan ini benar-benar hanya sebuah teaser menunjukkan kepada Anda apa yang Anda benar-benar dapat dilakukan di R. 905 00:53:57,140 --> 00:53:59,100 Jadi, jika Anda baru saja seperti untuk mempelajari lebih lanjut, di sini 906 00:53:59,100 --> 00:54:01,210 adalah sekelompok sumber daya yang berbeda. 907 00:54:01,210 --> 00:54:06,890 >> Jadi jika Anda menyukai buku atau Anda hanya gemar membaca hal-hal online, 908 00:54:06,890 --> 00:54:09,670 maka ini adalah fantastis satu per Hadley Wickham, 909 00:54:09,670 --> 00:54:13,010 yang juga menciptakan semua ini paket benar-benar keren. 910 00:54:13,010 --> 00:54:17,420 Jika Anda menyukai video, maka Berkeley memiliki bootcamp mengagumkan 911 00:54:17,420 --> 00:54:21,060 itu several-- itu semacam panjang. 912 00:54:21,060 --> 00:54:24,210 Dan itu akan mengajarkan Anda hampir segala sesuatu yang Anda ingin tahu tentang R. 913 00:54:24,210 --> 00:54:27,770 >> Dan sama, ada Codeacademy dan semua ini semacam lainnya 914 00:54:27,770 --> 00:54:29,414 website interaktif. 915 00:54:29,414 --> 00:54:31,580 Mereka juga mendapatkan common-- lebih dan lebih umum. 916 00:54:31,580 --> 00:54:33,749 Jadi ini sangat mirip dengan Codeacademy. 917 00:54:33,749 --> 00:54:35,790 Dan akhirnya, jika Anda hanya ingin Community dan membantu, 918 00:54:35,790 --> 00:54:38,800 ini adalah sekelompok hal yang dapat Anda pergi ke. 919 00:54:38,800 --> 00:54:40,880 Jelas, kita masih menggunakan milis, hanya 920 00:54:40,880 --> 00:54:44,860 seperti hampir setiap lain masyarakat bahasa pemrograman. 921 00:54:44,860 --> 00:54:47,880 Dan #rstats, ini adalah komunitas kami Twitter. 922 00:54:47,880 --> 00:54:49,580 Itu sebenarnya cukup umum. 923 00:54:49,580 --> 00:54:50,850 Kemudian pengguna! 924 00:54:50,850 --> 00:54:52,340 Apakah hanya konferensi kami. 925 00:54:52,340 --> 00:54:55,390 >> Dan kemudian, tentu saja, Anda dapat menggunakan semua ini lain Q & A hal, 926 00:54:55,390 --> 00:54:57,680 seperti Stack Overflow, Google, dan kemudian GitHub. 927 00:54:57,680 --> 00:55:00,490 Karena sebagian besar dari paket ini dan banyak masyarakat 928 00:55:00,490 --> 00:55:03,420 akan berpusat di sekitar pengembangan kode karena open source. 929 00:55:03,420 --> 00:55:05,856 Dan itu hanya benar-benar bagus di GitHub. 930 00:55:05,856 --> 00:55:08,730 Dan akhirnya, Anda dapat menghubungi saya jika Anda hanya memiliki pertanyaan cepat. 931 00:55:08,730 --> 00:55:13,530 Jadi, Anda dapat menemukan saya di Twitter sini, website saya, dan hanya email saya. 932 00:55:13,530 --> 00:55:17,840 Jadi mudah-mudahan, itu something-- hanya teaser singkat 933 00:55:17,840 --> 00:55:20,900 apa R benar-benar mampu melakukan. 934 00:55:20,900 --> 00:55:23,990 Dan mudah-mudahan, Anda hanya memeriksa tiga link 935 00:55:23,990 --> 00:55:25,760 dan melihat apa yang dapat Anda lakukan lebih. 936 00:55:25,760 --> 00:55:28,130 Dan saya kira itu hanya tentang hal itu. 937 00:55:28,130 --> 00:55:28,630 Terima kasih. 938 00:55:28,630 --> 00:55:30,780 >> [TEPUK TANGAN] 939 00:55:30,780 --> 00:55:31,968