[Muzik bermain] Dustin Tran: Hi. Dustin nama saya. Jadi saya akan menyampaikan Analisis Data dalam R. Hanya sedikit tentang diri saya. Saya kini seorang pelajar siswazah di Kejuruteraan dan Sains Gunaan. Saya belajar satu persimpangan pembelajaran mesin dan statistik jadi Analisis Data dalam R adalah benar-benar asas kepada apa yang Saya lakukan setiap hari. Dan R adalah terutamanya baik untuk analisis data kerana ia sangat baik untuk prototaip. Dan biasanya, apabila anda melakukan beberapa jenis analisis data, banyak masalah akan kognitif. Dan supaya anda hanya mahu mempunyai beberapa bahasa yang benar-benar baik hanya baik untuk berbuat terbina dalam fungsi, bertentangan untuk perlu berurusan dengan perkara tahap rendah. Jadi pada mulanya, saya hanya akan untuk memperkenalkan apa yang R, mengapa anda mahu menggunakannya, dan kemudian pergi ke dalam beberapa demo, dan hanya pergi dari sana. Jadi apa R? R hanya bahasa yang dibangunkan untuk pengkomputeran statistik dan visualisasi. Jadi apa ini bermakna bahawa ia adalah bahasa yang sangat baik untuk apa-apa jenis perkara yang berkaitan dengan ketidakpastian atau visualisasi data. Jadi, anda mempunyai semua ini taburan kebarangkalian. Terdapat akan menjadi terbina dalam fungsi. Anda juga akan mempunyai yang sangat baik merancang pakej. Python adalah satu lagi bersaing bahasa untuk data. Dan satu perkara yang saya mendapati bahawa R adalah lebih baik di adalah visualisasi. Jadi apa yang boleh dilihat dalam demo sebagai dan hanya bahasa yang sangat intuitif yang hanya bekerja dengan sangat baik. Ia juga adalah percuma dan sumber terbuka, sebagai adalah apa-apa bahasa lain baik saya rasa. Dan di sini, sekumpulan hanya kata kunci dilemparkan pada anda. Ia adalah dinamik, yang bermaksud jika anda mempunyai jenis khusus yang diberikan kepada objek daripada ia hanya akan mengubahnya dengan cepat. Ia malas jadi pintar mengenai bagaimana ia pengiraan. Fungsi bererti ia benar-benar boleh beroperasi berdasarkan kira fungsi yang sesuatupun apa-apa jenis manipulasi anda lakukan, ia akan berdasarkan off fungsi. Pengendali Jadi binari, sebagai contoh, adalah fungsi hanya asasnya. Dan segala sesuatu yang anda akan lakukan adalah akan menghentikan fungsi sendiri. Dan kemudian objek berorientasikan juga. Jadi di sini adalah satu plot XKCD. Bukan sahaja kerana saya rasa seperti XKCD adalah asas kepada apa-apa sahaja persembahan, tetapi kerana Saya rasa seperti ini benar-benar Hammers titik yang banyak yang masa apabila anda melakukan beberapa jenis data analisis, masalah ini tidak begitu banyak berapa cepat ia berjalan, tetapi berapa lama ia akan membawa anda ke program tugas. Jadi di sini hanya untuk menganalisis sama ada strategi atau b adalah lebih berkesan. Ini akan menjadi sesuatu yang anda akan berurusan dengan banyak dalam semacam bahasa tahap rendah di mana anda berurusan dengan kesalahan seg, peruntukan memori, initializations, bahkan fungsi terbina dalam. Dan hal ini semua dikendalikan sangat, sangat elegan di R. Jadi, tukul ini mata, kesesakan terbesar akan menjadi kognitif. Jadi analisis data adalah masalah yang sukar. Sama ada anda lakukan pembelajaran mesin atau anda melakukan hanya beberapa jenis penerokaan data asas, anda tidak mahu mempunyai mengambil dokumen yang dan kemudian menyusun sesuatu setiap kali anda mahu melihat apa ruang yang kelihatan seperti, apa entri tertentu dalam matriks kelihatan seperti. Jadi anda hanya mahu mempunyai beberapa antara muka bagus anda boleh menjalankan fungsi yang mudah bahawa indeks untuk apa sahaja anda ingin dan hanya berjalan dari sana. Dan anda memerlukan domain bahasa tertentu untuk ini. Dan R benar-benar akan membantu anda menentukan masalah dan menyelesaikannya dengan cara ini. Jadi di sini adalah menunjukkan pengaturcaraan plot Populariti R kerana ia hilang dari masa ke masa. Jadi seperti yang anda lihat, seperti 2013 atau jadi ia hanya diletupkan dengan hebat. Dan ini telah hanya kerana yang trend besar dalam industri teknologi data mengenai besar. Juga, tidak hanya teknologi industri, tetapi benar-benar mana-mana industri kerana bahawa- banyak industri adalah jenis asas kepada cuba untuk menyelesaikan masalah-masalah ini. Dan biasanya, anda boleh mempunyai beberapa baik cara mengukur masalah-masalah ini atau mentakrifkan mereka atau menyelesaikannya menggunakan data. Jadi saya fikir sekarang adalah R-11 bahasa yang paling popular di TIOBE dan ia telah berkembang sejak itu. Jadi di sini adalah beberapa lebih ciri-ciri R. Ia mempunyai bilangan besar pakej dan untuk semua perkara ini berbeza. Jadi bila-bila masa anda mempunyai masalah tertentu, yang paling masa yang akan mempunyai R fungsi berkenaan untuk anda. Jadi sama ada anda mahu membina beberapa jenis mesin algoritma pembelajaran yang dikenali sebagai Rawak Hutan atau Pokok Keputusan, atau cuba untuk mengambil min fungsi atau mana-mana barangan ini, R akan mempunyai bahawa. Dan jika kamu berbuat yang anda mahu ketahui pengoptimuman, satu perkara yang umum adalah bahawa selepas anda selesai prototaip semacam bahasa peringkat tinggi, anda akan campakkanlah dalam- anda hanya akan pelabuhan yang lebih kepada beberapa bahasa tahap rendah. Apa yang baik tentang R ialah sebaik sahaja anda dilakukan prototaip itu, anda boleh menjalankan C ++, atau Fortran, atau mana-mana senjata yang lebih rendah terus ke dalam R. Jadi itulah satu benar-benar ciri sejuk tentang R, jika anda benar-benar mengambil berat tentang titik pengoptimuman. Dan ia juga benar-benar baik untuk visualisasi web. Jadi D3.js, sebagai contoh, adalah Saya rasa seminar lain bahawa kita yang dibentangkan hari ini. Dan ini adalah benar-benar hebat untuk melakukan visualisasi interaktif. Dan D3.js menganggap bahawa anda mempunyai beberapa jenis data yang akan diplotkan dan R adalah cara yang baik untuk dapat melakukan analisis data sebelum anda mengeksportnya kepada D3.js atau bahkan hanya menjalankan D3.js arahan ke R sendiri, dan juga semua perpustakaan yang lain. Supaya hanya pengenalan apa yang R dan mengapa anda mungkin menggunakannya. Jadi mudah-mudahan, saya telah yakin anda sesuatu kira-kira hanya cuba untuk melihat bagaimana rasanya. Jadi, saya akan pergi ke depan dan melalui beberapa asas-asas mengenai objek R dan apa yang anda benar-benar boleh buat. Jadi di sini adalah hanya sekumpulan arahan matematik. Jadi kata you're-- anda mahu membina bahasa sendiri dan anda hanya mahu mempunyai sekumpulan alat yang berbeza. Mana-mana jenis operasi anda rasa anda akan mahu adalah cukup banyak akan menjadi di R. Jadi di sini adalah 2 plus 2. Berikut adalah 2 kali pi. R mempunyai sekumpulan pemalar terbina dalam yang anda sering akan menggunakan seperti pi, e. Dan kemudian, di sini adalah 7 ditambah runif, jadi runif 1. Ini adalah satu fungsi itu menjana satu seragam rawak 0-1. Dan kemudian ada 3 hingga kuasa 4. Ada punca kuasa dua. Ada log. Jadi log akan melakukan asas eksponen dengan sendirinya. Dan kemudian, jika anda menetapkan asas, maka anda boleh melakukan apa sahaja yang anda mahu asas. Dan maka di sini adalah beberapa arahan lain. Jadi, anda mempunyai 23 mod 2. Kemudian anda mempunyai bakinya. Kemudian anda mempunyai saintifik notasi jika anda juga ingin berbuat lebih banyak dan perkara yang lebih rumit. Jadi di sini adalah tugasan. Jadi tugasan biasa dalam R dilakukan dengan panah jadi ia kurang daripada dan kemudian tanda sempang. Jadi di sini saya hanya memberikan 3 hingga Val yang berubah-ubah. Dan kemudian saya mencetak keluar Val dan kemudian ia akan paparkan nombor tiga. Secara lalai dalam R juru bahasa, ia akan mencetak perkara untuk anda supaya anda tidak perlu nyatakan mencetak Val yang bila-bila masa anda mahu mencetak sesuatu. Anda hanya boleh melakukan Val dan maka ia akan melakukannya untuk anda. Juga, anda boleh menggunakan bersamaan teknikal sebagai pengendali tugasan. Terdapat sedikit perihal tersirat antara menggunakan anak panah pengendali dan sama setaraf pengendali untuk tugasan. Kebanyakannya oleh konvensyen, semua orang hanya akan menggunakan anak panah pengendali. Dan di sini, saya memberikan ini notasi serong dipanggil 1 kolon 6. Ini menjana vektor 1-6. Dan ini benar-benar baik kerana kemudian anda hanya menetapkan vektor untuk Val dan yang berfungsi dengan sendirinya. Jadi ini sudah pergi dari satu single-- data sangat intuitif struktur hanya dua kali ganda beberapa jenis jenis ke dalam vektor dan yang akan mengumpul semua nilai skalar untuk anda. Jadi, selepas pergi dari skalar, anda mempunyai objek R dan ini adalah vektor. Vektor A adalah sebarang bentuk kutipan daripada jenis yang sama. Jadi di sini adalah sekumpulan vektor. Jadi ini adalah nombor. Angka adalah cara R ini berkata dua. Dan sebagainya secara lalai, apa-apa jumlah akan menjadi dua kali ganda. Jadi jika anda mempunyai c 1.1, 3, negatif 5.7, c ialah suatu fungsi. Ini concatenates ketiga-tiga nombor ke dalam vektor. Dan ini akan jadi jika adalah-- anda perasan 3 dengan sendirinya, biasanya anda akan menganggap bahawa ini adalah seperti integer, tetapi kerana semua vektor adalah jenis yang sama, ini adalah vektor beregu atau angka dalam kes ini. rnorm adalah fungsi yang menjana variables-- normal piawai atau nilai-nilai normal piawai. Dan saya menyatakan dua daripada mereka. Jadi saya lakukan rnorm 2, memberi bahawa untuk devs, dan kemudian saya mencetak keluar devs. Jadi ini adalah hanya dua nilai normal rawak. Dan kemudian ints jika anda lakukan anda mengambil berat tentang integer. Jadi ini adalah hanya kira-kira memori peruntukan dan menjimatkan saiz memori. Jadi, anda perlu menambah nombor anda oleh L. modal Secara umum, ini adalah Notasi bersejarah R untuk sesuatu yang dipanggil integer panjang. Jadi kebanyakan masa, anda akan menjadi berurusan dengan beregu. Dan jika anda pernah akan kemudian pada mengoptimumkan kod anda, anda hanya boleh menambah ini L's selepas itu atau semasa ia jika anda seperti precognitive tentang apa yang anda akan melakukan pemboleh ubah ini. Jadi di sini adalah satu vektor watak. Jadi, sekali lagi, saya concatenating tiga rentetan masa ini. Perhatikan bahawa tali dua dan rentetan tunggal adalah sama di R. Jadi saya mempunyai arthur dan ini Marvin dan sebagainya apabila saya mencetak keluar, semua daripada mereka akan menunjukkan tali double. Dan jika anda juga ingin memasukkan tali double atau single dalam watak-watak anda, maka anda boleh sama ada ganti tali anda. Jadi ini Marvin untuk Elemen kedua, ini adalah akan show-- anda hanya mempunyai dua tali dan kemudian rentetan tunggal jadi ini adalah seli. Jika tidak, jika anda mahu menggunakan dua rentetan pengendali dalam dua tali apabila anda mengisytiharkan ia, kemudian anda hanya menggunakan operator melarikan diri. Jadi anda lakukan garis sendeng terbalik tali double. Dan akhirnya, kita juga mempunyai vektor logik. Jadi logical-- jadi BENAR dan PALSU, dan mereka akan menjadi semua huruf besar. Dan kemudian, sekali lagi, saya concatenating mereka dan kemudian memberi mereka bools. Jadi bools akan menunjukkan anda BENAR, PALSU dan BENAR. Jadi di sini adalah pengindeksan vectorized. Jadi pada mulanya, saya sedang mengambil function-- yang ini dipanggil sequence-- yang urutan dari 2 hingga 12. Dan saya mengambil urutan dengan 2. Jadi ia akan berbuat 2, 4, 6, 8, 10 dan 12. Dan kemudian, saya pengindeksan untuk mendapatkan elemen yang ketiga. Jadi satu perkara yang perlu diingat adalah bahawa R indeks dengan memulakan dari 1. Jadi Vals, Ariège 3 akan memberikan anda elemen yang ketiga. Ini adalah jenis yang berbeza dari yang lain bahasa di mana ia bermula dari sifar. Jadi, dalam C atau C ++, sebagai contoh, anda akan mendapatkan elemen keempat. Dan di sini adalah Vals, Ariège 3-5. Jadi satu perkara itu benar-benar sejuk adalah bahawa anda boleh menjana pembolehubah sementara dalam dan kemudian hanya menggunakannya dengan cepat. Jadi di sini adalah 3 hingga 5. Jadi, saya menjana vektor 3, 4, dan 5 dan kemudian Saya mengindeks untuk mendapatkan ketiga, keempat, dan kelima unsur-unsur. Oleh itu juga, anda boleh abstrak ini kepada hanya melakukan apa-apa jenis vektor yang memberikan anda pengindeksan. Jadi di sini adalah Vals, Ariège dan kemudian unsur-unsur pertama, ketiga, dan keenam. Dan kemudian, jika anda mahu untuk melakukan pelengkap, jadi anda hanya melakukan tolak selepas itu dan yang akan memberikan anda semua itu bukan pertama, ketiga, atau unsur keenam. Jadi ini akan menjadi 4, 8, dan 10. Dan jika anda mahu untuk mendapatkan lebih maju, anda boleh menyatukan vektor Boolean. Jadi indeks ini akan memberikan anda vektor ini Boolean panjang 6. Jadi rep koma BENAR 3. Ini akan berulang BENAR tiga kali. Jadi ini akan memberikan anda vektor BENAR, BETUL, BETUL. rep PALSU 4-- ini akan memberikan anda vektor daripada SALAH, SALAH, SALAH, SALAH. Dan kemudian c akan menyatukan kedua-dua Booleans bersama-sama. Jadi anda akan mendapat tiga TRUEs dan kemudian empat FALSEs. Supaya apabila anda Vals, Ariège indeks, anda akan mendapatkan BENAR, BETUL, BETUL. Jadi perkara yang berlaku untuk mengatakan ya, Aku ingin supaya mereka tiga elemen. Dan kemudian SALAH, SALAH, SALAH, SALAH akan untuk mengatakan tidak, saya tidak mahu unsur-unsur jadi ia tidak akan kembali kepada mereka. Dan saya rasa ada sebenarnya kesilapan menaip di sini kerana ini mengatakan berulang BENAR 3 dan mengulangi PALSU 4, dan dari segi teknikal, anda hanya mempunyai enam elemen supaya mengulangi SALAH, ia harus PALSU 3 ulangan. Saya rasa R juga cukup seperti pintar bahawa jika anda hanya nyatakan 4 di sini, kemudian ia tidak akan keluar walaupun kesilapan. Ia hanya akan memberikan anda nilai ini. Oleh itu, ia hanya akan mengabaikan yang SALAH keempat. Jadi di sini adalah tugasan vectorized. Jadi set.seed-- ini hanya menetapkan benih untuk nombor separa. Jadi, saya menetapkan benih untuk 42, yang bermaksud bahawa jika saya menjana tiga rawak normal nilai, dan kemudian jika anda membuka warung set.seed sendiri komputer menggunakan nilai sama 42, maka anda juga mendapatkan sama tiga normal rawak. Jadi ini adalah benar-benar baik untuk kebolehulangan. Biasanya, apabila anda melakukan beberapa jenis analisis saintifik, anda akan mahu untuk menetapkan benih. Dengan cara itu ahli-ahli sains yang lain boleh hanya menghasilkan semula kod yang tepat sama anda telah dilakukan kerana mereka akan mempunyai yang tepat pembolehubah rawak sama bahawa- atau rawak nilai-nilai yang anda telah dibawa keluar juga. Dan supaya tugasan vectorized di sini adalah menunjukkan Vals, Ariège 1-2. Jadi ia mengambil masa dua elemen pertama daripada Vals, Ariège dan kemudian menyerahkan mereka kepada 0. Dan kemudian, anda juga boleh hanya melakukan perkara yang Perkara yang sama dengan Booleans. Jadi Vals, Ariège tidak sama dengan 0-- kemahuan ini memberi anda PALSU vektor, SALAH, BENAR dalam kes ini. Dan kemudian, ia akan berkata apa-apa dari orang-orang yang indeks adalah BENAR, maka ia akan memberikan yang hingga 5. Jadi ia mengambil elemen yang ketiga di sini dan kemudian menyerahkan kepada 5. Dan ini adalah benar-benar bagus berbanding dengan bahasa-tahap rendah di mana anda perlu menggunakan untuk gelung untuk melakukan semua barangan ini vectorized kerana ia hanya sangat intuitif dan ia adalah satu-satu kapal. Dan apa yang kira-kira yang besar notasi vectorized ialah di R, ini adalah semacam terbina dalam supaya mereka tinggi dengan cepat sebagai melakukan dalam bahasa-paras serendah bertentangan dengan membuat untuk gelung dalam R dan kemudian mempunyai untuk melakukan pengindeksan dinamik sendiri. Dan itu akan menjadi lebih perlahan daripada melakukan perkara seperti ini vectorized di mana ia boleh melakukannya dalam masa yang sama, di mana ia melakukannya dalam threading pada dasarnya. Jadi di sini adalah vectorized operasi. Jadi, saya menjana nilai 1 hingga 3, memberikan yang untuk vec1, 3-5, vec2, menambah mereka bersama-sama. Ia menambah mereka komponen-bijak supaya itu 1 plus 3, 2 ditambah 4, dan sebagainya. vec1 kali vec2. Ini mendarab kedua-dua menghargai komponen bijak. Jadi ia 1 kali 3, 2 kali 4, dan kemudian 3 kali 5. Dan kemudian, juga anda boleh juga melakukan comparisons-- perbandingan logik. Jadi, SALAH SALAH BETUL dalam ini kes kerana 1 tidak lebih besar daripada 3, 2 tidak lebih besar daripada 4. Ini, saya rasa, kesilapan menaip yang lain, 3 pasti tidak lebih daripada 5. Yeah. Dan jadi anda hanya boleh melakukan semua ini operasi mudah kerana mereka mewarisi dari kelas sendiri. Supaya hanya vektor. Dan itulah jenis yang paling asas R objek kerana diberi vektor, anda boleh membina objek yang lebih maju. Jadi di sini adalah matriks. Ini pada dasarnya adalah pengekstrakan apa matriks itu sendiri. Jadi dalam kes ini, ia adalah tiga berbeza vektor, di mana setiap satu adalah tiang, atau anda boleh menganggapnya kerana setiap satu adalah berturut-turut. Jadi, saya menyimpan matriks dari 1 hingga 9 dan kemudian saya menyatakan 3 baris. Jadi 1 hingga 9 akan memberi anda vektor 1, 2, 3, 4, 5, 6, dan semua jalan ke 9. Satu perkara yang perlu juga diingat adalah bahawa R kedai menghargai dalam format ruangan-utama. Jadi dalam erti kata lain, apabila anda melihat 1 hingga 9, ia akan menyimpan them-- ia akan menjadi 1, 2, 3 dalam ruang pertama, dan kemudian ia akan melakukan 4, 5, 6 dalam ruang kedua, dan kemudian 7, 8, 9 dalam ruang ketiga. Dan berikut adalah beberapa lain fungsi yang sama yang anda boleh menggunakan. Jadi mat malap, ini akan memberikan anda dimensi matriks. Ia akan mengembalikan kamu vektor dimensi. Jadi dalam kes ini, kerana matriks kita adalah 3 oleh 3, ia akan memberikan anda vektor angka itu 3 3. Dan di sini hanya untuk menunjukkan pendaraban matriks. Jadi biasanya, jika anda hanya melakukan asterisk-- jadi mat asterisk mat-- ini akan menjadi operasi komponen-bijak atau apa yang dipanggil produk Hadamard itu. Jadi ia akan melakukan setiap elemen komponen-bijak. Walau bagaimanapun, jika anda mahu matriks multiplication-- jadi mendarabkan kali baris pertama Lajur pertama matriks kedua ini dan sebagainya on-- anda akan menggunakan ini operasi peratus. Dan t tikar hanyalah beroperasi alihan. Jadi, saya berkata mengambil alihan dalam matriks, kalikan dengan matriks sendiri. Dan kemudian ia akan kembali kepada anda 3 lain oleh 3 menunjukkan matriks produk yang anda akan mahu. Dan sehingga adalah matriks. Berikut adalah apa yang dipanggil bingkai data. Bingkai data yang boleh anda fikirkan sebagai matriks, tetapi setiap lajur sendiri akan menjadi jenis yang berbeza. Jadi apa yang benar-benar sejuk tentang data bingkai adalah bahawa dalam analisis data sendiri, anda akan mempunyai semua ini data heterogen dan semua ini benar-benar perkara yang tidak kemas di mana setiap satu daripada tiang mereka boleh menjadi jenis yang berbeza. Jadi di sini saya katakan mewujudkan bingkai data, melakukan ints 1 hingga 3, dan kemudian juga mempunyai vektor watak. Jadi saya boleh indeks melalui setiap ruangan ini dan kemudian saya akan mendapatkan nilai diri mereka. Dan anda juga boleh melakukan beberapa jenis operasi pada bingkai data. Dan kebanyakan masa apabila anda melakukan analisis data atau semacam pra pemproses, anda boleh bekerja dengan ini struktur data di mana setiap lajur akan menjadi jenis yang berbeza. Akhir sekali, jadi ini adalah pada dasarnya hanya empat objek penting dalam Senarai R. hanya akan mengutip apa-apa objek lain yang anda mahu. Jadi ia akan menyimpan ini ke dalam satu pembolehubah yang anda boleh dengan mudah mengakses. Jadi di sini, saya mengambil senarai. Saya katakan barangan bersamaan 3. Jadi saya akan mempunyai satu elemen dalam senarai, dan ini dipanggil barangan, dan ia akan mempunyai nilai 3. Saya juga boleh membuat matriks. Jadi ini adalah 1 hingga 4 dan baris akhir sama dengan 2, jadi 2 oleh 2 matriks. Juga dalam senarai dan ia dipanggil tikar. moreStuff, rentetan aksara, dan juga satu lagi senarai itu sendiri. Jadi ini adalah senarai itu 5 dan beruang. Jadi ia mempunyai nilai 5 dan ia mempunyai rentetan aksara beruang dan ia adalah satu senarai di dalam senarai. Jadi, anda boleh mempunyai ini perkara di mana rekursi anda mempunyai another-- menaip dalam jenis. Oleh itu juga, anda boleh mempunyai matriks dalam matriks lain dan sebagainya. Dan senarai adalah hanya cara yang baik mengumpul dan mengagregat semua objek yang berbeza. Dan akhirnya, di sini hanya untuk membantu dalam kes ini hanya pergi ke atas dengan cepat. Jadi bila-bila masa anda keliru mengenai beberapa jenis fungsi, anda boleh melakukan bantuan fungsi tersebut. Jadi, anda boleh melakukan bantuan matriks atau matriks tanda tanya. Dan bantuan dan tanda tanya adalah hanya trengkas untuk perkara yang sama supaya ia alias. lm adalah fungsi yang hanya melakukan model linear. Tetapi jika anda hanya tidak tahu bagaimana yang kerja, anda hanya boleh melakukan bantuan lm dan yang akan memberi anda beberapa jenis dokumentasi yang kelihatan jenis seperti Laman manusia dalam Unix, di mana anda mempunyai penerangan ringkas apa ia, apa juga hujah-hujah adalah, apa yang ia kembali, dan hanya tip bagaimana untuk menggunakannya, dan beberapa contoh juga. Jadi biarlah saya pergi ke depan dan pameran beberapa demo menggunakan R. OK. Lalu aku pergi lebih sangat segera, data struktur dan beberapa jenis yang op-- sebahagian daripada operasi. Di sini adalah beberapa fungsi. Jadi di sini saya hanya akan untuk menentukan fungsi. Jadi saya juga menggunakan Pengendali tugasan di sini, dan kemudian saya cakapkan mengisytiharkan ia sebagai suatu fungsi. Dan juga ia mengambil nilai x. Jadi ini adalah apa-apa nilai yang anda mahu dan saya akan kembali x sendiri. Jadi ini adalah fungsi identiti. Dan apa yang sejuk kira-kira ini berbanding dengan bahasa-bahasa lain dan peringkat rendah lain bahasa ialah x boleh menjadi apa-apa jenis sendiri dan ia akan kembali jenis itu. Jadi, anda boleh imagine-- jadi mari saya hanya menjalankan ini dengan cepat. Maaf. Jadi, satu perkara yang saya juga perlu menyebut adalah bahawa editor ini saya menggunakan dipanggil rstudio. Ini adalah apa yang dikenali sebagai sebuah IDE. Dan satu hal itu benar-benar baik tentang ini ialah ia menggabungkan banyak yang perkara yang anda mahu lakukan dalam R dengan sendirinya hanya sangat intuitif. Jadi di sini adalah konsol jurubahasa. Oleh itu juga, anda juga boleh mendapatkan ini konsol mentah hanya dengan melakukan R. modal Dan ini adalah betul-betul Perkara yang sama seperti konsol. Jadi saya hanya boleh melakukan id fungsi x, x, x. Dan then-- dan kemudian yang akan baik sendiri. Jadi rstudio besar kerana ia mempunyai konsol. Ia juga mempunyai dokumen-dokumen anda ingin berjalan di. Dan kemudian ia mempunyai beberapa pembolehubah yang anda boleh lihat di persekitaran. Dan kemudian, jika anda mempunyai untuk melakukan plot, maka anda hanya boleh melihatnya di sini, berbanding dengan menguruskan semua tetingkap berlainan oleh diri mereka sendiri. Saya sebenarnya secara peribadi digunakan Vim, tetapi saya merasa seperti rstudio sangat baik hanya untuk mendapatkan idea yang baik bagaimana untuk menggunakan R. Biasanya, apabila anda cuba belajar beberapa tugas baru, anda tidak mahu untuk mengendalikan terlalu banyak benda dalam satu masa. Jadi R hanyalah rstudio very-- adalah cara yang sangat baik pengajian R tanpa perlu berurusan dengan semua perkara-perkara ini lain. Jadi di sini saya id berjalan hello. Ini mengembalikan hello. id 123. Berikut adalah vektor integer. Jadi begitu juga, kerana anda boleh mengambil apa-apa beberapa jenis nilai, anda boleh melakukan id kembali x jadi ia kembali 1234 dan 5. Dan biarlah saya menunjukkan bahawa ini memang integer. Begitu juga, jika anda melakukan kelas id x, ia akan menjadi integer. Dan kemudian, anda juga boleh membandingkan dua dan ia adalah BENAR. Jadi, saya memeriksa jika id x sama setaraf x dan notis bahawa ia memberi anda dua TRUEs. Jadi ini tidak mengatakan adalah kedua-dua objek yang serupa, tetapi setiap penyertaan dalam vektor serupa. Di sini adalah bounded.compare. Jadi ini adalah sedikit lebih rumit kerana ia mempunyai jika keadaan dan lain dan kemudian ia mengambil masa dua hujah-hujah yang pada satu masa. Jadi x adalah apa-apa jenis. Dan saya katakan ini Hujah kedua ialah. Ini boleh menjadi apa-apa juga. Tetapi secara lalai, ia akan mengambil 5 jika anda tidak menentukan apa-apa. Jadi di sini saya akan mengatakan jika x lebih besar daripada satu. Jadi, jika saya tidak menentukan, ia kata jika x lebih besar daripada 5, maka saya akan kembali BENAR. lain, saya akan kembali PALSU. Jadi biarlah saya pergi ke depan dan menentukan ini. Dan sekarang saya akan menjalankan bounded.compare 3. Jadi ia mengatakan adalah 3 kurang than-- adalah 3 lebih besar daripada 5. Tidak, ia tidak begitu PALSU. Dan bounded.compare 3 dan saya akan untuk membandingkan ia menggunakan bersamaan 2. Oleh sebab itu saya katakan ya, sekarang saya mahu menjadi sesuatu yang lain. Jadi, saya akan berkata, anda perlu 2. Saya sama ada boleh melakukan seperti ini notasi atau saya mengatakan yang sama dengan 2. Ini adalah lebih mudah dibaca dalam bahawa apabila anda melihat ini benar-benar fungsi yang rumit mengambil arguments-- pelbagai dan ini boleh menjadi berpuluh-puluh oftentimes-- hanya mengatakan yang bersamaan 2 adalah lebih senang dibaca untuk anda supaya nanti pada masa akan datang anda akan tahu apa yang anda lakukan. Jadi dalam kes ini, saya kata adalah 3 lebih daripada 2. Ya, ia adalah. Begitu juga, saya hanya boleh mengeluarkan ini dan berkata, adalah lebih besar daripada 3 2 di mana bersamaan 2. Dan itulah juga BENAR. Ya? PENONTON: Adakah anda melaksanakan baris demi baris? Dustin Tran: Ya saya. Jadi apa yang saya lakukan di sini adalah mengambil teks ini document-- dan apa yang hebat tentang rstudio ialah Saya hanya boleh berjalan short-- satu jalan pintas kekunci. Jadi saya lakukan Kawalan-Enter. Dan kemudian, saya mengambil talian dalam dokumen teks yang dan kemudian meletakkan di konsol. Jadi di sini saya katakan, bounded.compare dan saya lakukan Kawalan-X. Jadi saya hanya boleh larikan sini juga. Dan kemudian yang akan mengambil talian dan kemudian meletakkan ia di sini. Kemudian juga, saya boleh larikan sini. Dan kemudian ia hanya akan menyimpan mentakrifkan garis ke dalam konsol seperti itu. Dan jika anda juga perasan yang kerinting pendakap berada di sana seperti di C sintaks. x-- jika sekiranya syarat tersebut juga akan menggunakan kurungan dan kemudian anda boleh menggunakan lain. Satu lagi ialah jika lain. Jadi ini akan menjadi x sama sama, sebagai contoh. Dan kemudian saya akan kembali sesuatu di sini. Perhatikan bahawa terdapat dua yang berbeza perkara di sini yang sedang berlaku. Satu adalah bahawa di sini saya menyatakan kembali nilai TRUE. Di sini saya hanya mengatakan x. Jadi R biasanya akan secara lalai mengambil arguments-- terakhir atau mengambil barisan terakhir kod, dan yang akan menjadi apa yang ia kembali. Jadi di sini ini adalah sama perkara seperti melakukan pulangan x. Dan hanya untuk menunjukkan. Dan kemudian, ia akan bekerja begitu sahaja. Jadi biarlah saya terus dengan ini. Jadi jika lain. Dan benar-benar, saya boleh kembali apa-apa yang saya suka. Jadi saya tidak perlu pulangan Booleans sepanjang masa, Saya hanya boleh mengembalikan sesuatu yang lain. Jadi boleh saya lakukan pulangan beruang. Jadi, jika x sama dengan yang sama, ia akan kembali beruang. Jika tidak, ia akan kembali BENAR. Saya juga boleh melakukan vektor atau benar-benar apa-apa. Dan biasanya dalam statik bahasa bertaip, anda akan perlu untuk menentukan jenis di sini. Dan melihat bahawa ia hanya boleh menjadi apa-apa. Dan R adalah cukup bijak bahawa ia hanya akan melakukan ini dan ia akan bekerja denda. Jadi biarlah saya menentukan ini. Unexpected-- oh maaf. Ia harus menjadi pendakap kerinting sini. OK. Cool. Baiklah. Jadi sekarang mari kita bandingkan 3 dan yang bersamaan 3. Jadi ia perlu return-- yeah-- nilai beruang. Oleh sebab itu satu perkara yang lebih umum adalah seperti bagaimana pula dengan lain-lain struktur data. Jadi, anda mempunyai fungsi ini. Ini akan bekerja di mana-mana sahaja dengan daripada nilai seperti 3 atau mana-mana nombor, dalam erti kata lain, dua kali. Tetapi bagaimana pula sesuatu seperti vektor. Jadi apa yang berlaku jika anda do-- jadi saya akan menyerahhakkan Val untuk, katakan, 4-6. Jadi jika saya kembali ini, ini adalah vektor daripada 4, 5, 6. Sekarang mari kita lihat apa yang berlaku jika saya lakukan bounded.compare Val. Jadi ini akan memberikan anda 15 1251. Jadi dalam erti kata lain, ia berkata jika anda melihat keadaan ini jadi ia mengatakan x kurang daripada satu atau sesuatu. Jadi ini adalah sedikit mengelirukan kerana sekarang anda tidak tahu apa yang berlaku. Jadi saya rasa satu perkara yang benar-benar baik mengenai hanya cuba untuk debug adalah bahawa anda hanya boleh melakukan Val adalah lebih besar daripada dan lihat apa yang berlaku di sana. Jadi val-- adalah secara lalai 5 jadi mari kita jangan Val lebih besar daripada 5. Jadi ini adalah vektor SALAH SALAH BETUL. Oleh sebab itu ketika anda melihat ini, ia akan berkata jika, dan kemudian ia akan memberikan anda ini adalah vektor SALAH SALAH BETUL. Oleh itu, apabila anda lulus ini ke R, R tidak mempunyai idea apa yang anda lakukan. Kerana ia menjangka satu tunggal nilai, yang merupakan Boolean, dan kini anda memberikan satu vektor Booleans. Jadi secara lalai, R sahaja akan mengatakan apa yang palang pintu itu, Saya akan menganggap bahawa anda akan mengambil elemen pertama di sini. Jadi saya akan say-- saya akan untuk menganggap bahawa ini adalah PALSU. Jadi ia akan berkata tidak, ini tidak betul. Begitu juga, ia akan menjadi Val sama sama satu. Tidak, maaf 5. Dan ia juga akan menjadi palsu juga. Jadi ia akan mengatakan tidak, ia tidak BENAR dan juga supaya ia akan kembali terkini ini. Jadi ini adalah sama ada satu perkara yang baik atau buruk perkara, bergantung kepada bagaimana anda melihat ia. Kerana apabila anda mewujudkan fungsi-fungsi ini, anda tidak benar-benar tahu apa yang berlaku. Jadi kadang-kadang anda akan mahu ralat, atau mungkin anda hanya mahu amaran. Dalam kes ini, R tidak berbuat demikian. Jadi ia adalah benar-benar sehingga anda berdasarkan kira apa anda berfikir bahasa perlu dilakukan dalam kes ini jika anda meninggal dalam vektor Booleans apabila anda lakukan jika keadaan. Jadi mari kita mengatakan bahawa anda mempunyai asal satu dengan lain jika kembali BENAR dan anda akan kembali PALSU. Jadi salah satu cara untuk pengabstrakan ini adalah untuk mengatakan saya tidak perlu perkara ini bersyarat. Satu lagi perkara yang boleh saya lakukan adalah hanya kembali nilai-nilai diri mereka. Jadi, jika anda perhatikan, jika anda melakukan Val adalah lebih besar daripada 5, ini akan mengembalikan vektor SALAH SALAH BETUL. Mungkin ini adalah apa yang anda mahu untuk bounded.compare. Anda mahu kembali vektor daripada Booleans di mana ia membandingkan setiap satu daripada nilai-nilai kepada diri mereka sendiri. Jadi anda hanya boleh jangan bounded.compare fungsi x, yang sama dengan 5. Dan ketika itu dan bukannya melakukan ini jika keadaan lain, Saya hanya akan kembali x lebih besar daripada 5. Jadi, jika ia benar, maka ia akan kembali BENAR. Dan kemudian jika tidak, ia akan kembali PALSU. Dan ini akan bekerja untuk mana-mana struktur ini. Jadi saya boleh bounded.compare c 1 6 atau 9 dan kemudian saya akan mengatakan yang sama dengan 6, sebagai contoh. Dan kemudian ia akan memberikan anda Boolean yang betul vektor yang anda mereka bentuk. Jadi mereka hanya fungsi dan sekarang biar saya menunjukkan beberapa visual interaktif. Saya tidak fikir saya benar-benar mempunyai Wi-Fi di sini jadi biarlah saya pergi ke hadapan dan langkau satu ini saya rasa. Tetapi satu perkara yang sejuk walaupun adalah bahawa jika anda hanya ingin menguji berbagai perintah data yang berbeza, terdapat sekumpulan set data yang berbeza yang telah pramuat ke R. Jadi salah seorang daripada mereka adalah dipanggil dataset iris. Ini adalah salah satu yang paling baik yang diketahui yang dalam pembelajaran mesin. Anda akan biasanya hanya melakukan beberapa jenis kes-kes ujian untuk melihat jika kod anda berjalan. Jadi mari kita semak apa iris adalah. Jadi perkara ini akan menjadi bingkai data. Dan ia jenis panjang kerana Saya hanya dicetak iris. Ia mencetak perkara keseluruhan. Oleh itu, ia mempunyai semua nama-nama yang berbeza. Jadi iris adalah koleksi Bunga-bunga yang berbeza. Dalam kes ini, Ia memberitahu anda spesies itu, semua ini lebar yang berbeza dan panjang daripada sepal dan kelopak. Dan jadi biasanya, jika anda ingin mencetak iris, sebagai contoh, anda tidak mahu untuk memilikinya melakukan semua ini kerana yang boleh mengambil alih keseluruhan konsol anda. Jadi satu perkara yang benar-benar bagus adalah fungsi kepala. Jadi jika anda hanya melakukan kepala iris, ini akan memberikan anda lima baris pertama, atau enam saya rasa. Dan kemudian dengan baik, anda hanya boleh menentukan di sini. Jadi 20-- ini akan memberikan anda 20 baris pertama. Dan saya sebenarnya adalah jenis daripada terkejut bahawa ini dia memberi saya enam itu hantarkanlah daku pergi ke hadapan dan memeriksa iris-- atau kepala, maaf. Dan di sini ia akan memberi anda dokumentasi apa yang ketua nilai tidak. Jadi ia mengembalikan pertama atau lepas objek. Dan kemudian saya akan melihat 'default'. Dan kemudian ia berkata lalai kaedah kepala x dan n sama 6L. Jadi ini mengembalikan pertama enam unsur. Begitu juga jika anda perhatikan di sini, saya tidak perlu nyatakan n bersamaan 6. Secara lalai ia menggunakan enam, saya rasa. Dan kemudian, jika saya ingin nyatakan yang tertentu nilai, maka saya boleh melihat bahawa juga. Supaya adalah beberapa arahan mudah dan di sini adalah satu lagi satu yang just-- baik, Saya can-- ini sebenarnya kompleks sedikit lebih, tetapi ini hanya akan mengambil kelas setiap lajur dataset iris. Jadi ini akan menunjukkan kepada anda apa yang masing-masing ruangan adalah dari segi jenis mereka. Jadi panjang sepal adalah angka, lebar sepal adalah angka. Semua nilai-nilai ini hanya angka kerana anda boleh memberitahu dari data ini struktur ini adalah semua akan angka. Dan Spesies ruangan yang akan menjadi satu faktor. Jadi biasanya, anda akan berfikir bahawa ini adalah seperti rentetan aksara. Tetapi jika anda hanya melakukan irisSpecies, dan kemudian saya akan melakukan kepala 5, dan ini akan mencetak daripada lima nilai pertama. Dan kemudian melihat tahap ini. Jadi ini adalah saying-- ini adalah cara R mempunyai pembolehubah berkategori. Jadi, daripada hanya mempunyai rentetan aksara, ia mempunyai tahap dengan menjelaskan yang mana perkara-perkara ini. Jadi katakan irisSpecies 1. Jadi apa yang anda mahu lakukan di sini adalah saya subsetting hingga ruangan Spesies ini. Jadi ini mengambil Ruangan spesies dan kemudian ia indeks untuk mendapatkan elemen pertama. Jadi ini harus memberi anda setosa. Dan ia juga memberikan anda tahap sini. Oleh itu, anda juga boleh membandingkan ini untuk setosa watak dan ini tidak akan menjadi BETUL kerana satu adalah jenis yang berbeza dari yang lain. Atau saya rasa ia adalah benar kerana R adalah lebih bijak daripada itu. Dan ia kelihatan pada ini dan kemudian kata, mungkin ini adalah apa yang anda mahu. Jadi ia akan berkata watak rentetan setosa adalah yang sama dengan yang ini. Kemudian juga, anda boleh juga hanya merebut ini seperti sebagainya. Supaya hanya semacam perintah cepat dataset yang. Jadi di sini adalah beberapa penerokaan data. Jadi ini adalah lebih sedikit terlibat dengan analisis data. Dan ini diambil dari beberapa Bootcamp di R untuk di Berkeley. Jadi perpustakaan asing. Jadi saya akan memuatkan satu perpustakaan yang dinamakan asing. Jadi ini akan memberikan saya read.dta jadi menganggap bahawa saya mempunyai dataset ini. Ini disimpan dalam semasa Direktori konsol saya bekerja. Jadi mari kita lihat apa yang direktori kerja adalah. Jadi di sini adalah direktori kerja saya. Dan membaca data dot, ini perkara, mengatakan gambar ini terletak dalam folder data daripada ini kerja direktori semasa. Dan read.dta ini tidak arahan lalai. Saya rasa saya dimuatkan dalam sudah. IEI diandaikan saya ini dimuatkan dalam sudah. Tetapi begitu read.dta tidak akan menjadi arahan lalai. Sebab itulah anda akan mempunyai untuk dimuatkan dalam perpustakaan ini package-- Pakej ini dipanggil asing. Dan jika anda tidak mempunyai pakej, saya fikir asing adalah salah satu yang terbina dalam. Jika tidak, anda juga boleh melakukan install.packages dan ini akan memasang pakej. Dan ini akan memberikan anda R. Uh, tidak. Dan kemudian saya hanya akan berhenti ini kerana saya sudah mempunyai ia. Tetapi apa yang benar-benar bagus tentang R ialah pengurusan pakej sistem adalah sangat elegan. Kerana ia akan menyimpan segala-galanya benar-benar baik untuk anda. Jadi dalam kes ini, ia akan menyimpan dalam, saya percaya, perpustakaan ini di sini. Jadi bila-bila masa anda mahu memasang pakej baru, ia hanya semudah melakukan install.packages dan R akan menguruskan semua pakej untuk anda. Jadi anda tidak perlu untuk melakukan sesuatu yang di Python, di mana anda mempunyai pakej luar pengurus seperti kertas Anaconda di mana anda doing-- anda memasang pakej luar Python dan kemudian anda cuba untuk menjalankan mereka sendiri. Jadi ini adalah benar-benar cara yang bagus. Dan install.packages memerlukan internet. Ia mengambil ia dari pelayan dan repositori yang mengumpul semua pakej dipanggil Cran. Dan anda boleh menentukan jenis cermin anda mahu untuk memuat turun pakej dari. Jadi di sini saya mengambil dataset ini. Saya membacanya dalam menggunakan fungsi ini. Jadi biarlah saya teruskan niat saya itu. Jadi mari kita andaikan bahawa anda mempunyai dataset ini dan anda sama sekali tidak tahu apa yang ia adalah. Dan ini sebenarnya datang agak kerap dalam industri di mana anda hanya perlu ini tan dan tan perkara tidak kemas dan mereka sangat tidak berlabel. Jadi di sini saya mempunyai ini dataset dan saya tidak tahu apa yang jadi saya hanya menunjukkan kepada website saya. Jadi, saya akan lakukan kepala pertama. Jadi saya memeriksa enam pertama ruangan apa dataset ini. Jadi ini adalah negeri, pres04, dan kemudian semua jenis ini berbeza daripada tiang. Dan apa yang menarik di sini, saya rasa, adalah bahawa anda akan menganggap bahawa ini kelihatan seperti beberapa jenis pilihan raya. Dan saya rasa hanya dari melihat fail menamakan ini adalah beberapa jenis koleksi data mengenai calon-calon atau pengundi yang mengundi untuk presiden tertentu atau calon Presiden untuk pilihan raya 2004. Jadi di sini adalah nilai-nilai 1, 2 jadi satu cara untuk menyimpan calon-calon presiden adalah nama-nama mereka. Dalam kes ini, ia kelihatan seperti mereka hanya nilai integer. Jadi tahun 2004, ia adalah Bush versus Kerry saya percaya. Dan sekarang, mari kita mengatakan anda tidak tahu sama ada 1 sepadan dengan Bush atau 2 sepadan dengan Kerry atau dan sebagainya dan sebagainya, bukan? Dan ini adalah, hanya kepada-Ku, satu masalah yang agak biasa. Jadi apa yang boleh anda lakukan dalam kes ini? Jadi mari kita semak semua perkara ini lain. negeri, saya menganggap ini berasal dari negeri yang berlainan. partyid, pendapatan. Mari kita lihat partyid. Jadi mungkin satu perkara yang anda boleh lakukan ialah melihat setiap satu daripada pemerhatian yang mempunyai partyid daripada Republikan atau Demokrat atau sesuatu. Jadi mari kita melihat apa yang partyid adalah. Jadi, saya akan mengambil dat dan kemudian saya akan untuk melakukan tanda dolar ini Pengendali yang saya lakukan sebelum ini dan ini akan subset kepada lajur tersebut. Dan kemudian saya akan mengetuai ini dalam 20, hanya untuk melihat apa yang kelihatan seperti ini. Jadi ini adalah hanya sekumpulan nas. Jadi dalam erti kata lain, anda mempunyai hilang data mengenai lelaki ini. Tetapi anda juga perasan ini partyid dat adalah faktor yang jadi ini memberikan anda kategori yang berbeza. Jadi dalam erti kata lain, partyid boleh mengambil Demokrat, Republikan, Bebas, atau sesuatu yang lain. Jadi mari kita pergi ke depan dan mari kita lihat yang ini is-- oh, OK. Jadi saya akan subset untuk partyid dan kemudian melihat mana yang Demokrat, sebagai contoh. Ini akan memberi anda Boolean, Boolean yang besar TRUEs dan FALSEs. Dan sekarang, mari kita berkata saya mahu untuk subset kepada lelaki ini. Jadi ini akan mengambil dat saya dan subset kepada mana pemerhatian mempunyai setaraf partyid sama Demokrat. Dan ini adalah agak panjang kerana terdapat begitu banyak daripada mereka. Jadi sekarang, saya akan mengetuai ini dalam 20. Dan seperti yang anda perhatikan, sama setaraf adalah menarik, kerana anda already-- anda juga termasuk nas. Jadi dalam kes ini, anda masih tidak boleh mendapatkan apa-apa maklumat kerana sekarang anda mempunyai Nas dan anda hanya mahu melihat yang mana satu di pemerhatian sesuai dengan Demokrat dan tidak hilang ini menghargai diri mereka sendiri. Jadi bagaimana anda akan menghilangkan nas ini? Jadi di sini saya hanya menggunakan kekunci di atas saya Kursor dan kemudian berkata bergerak di sekitar. Dan maka di sini saya hanya akan untuk mengatakan datpartyid is.na. Jadi ini dan dan akan mengambil dua vektor Boolean berbeza dan mengatakan ia akan menjadi BETUL dan SALAH contohnya. Jadi ia akan lakukan komponen-bijak ini. Jadi di sini saya berkata pengambilalihan bingkai data, subset kepada orang-orang yang sesuai dengan Demokrat, dan mengeluarkan apa-apa daripada mereka yang tidak NA. Jadi will-- ini perlu memberikan anda sesuatu. Mari kita lihat is.na. Mari kita cuba datpartyid is.na. Dan ini perlu memberi you-- sorry-- hanya vektor Boolean. Dan kemudian, kerana ia begitu lama, Saya akan subset kepada 20. OK. Jadi ini harus bekerja. Dan yang satu ini juga akan TRUEs. Ah, jadi kesilapan saya di sini adalah bahawa I'm-- saya menggunakan C ++ dan R silih berganti supaya saya membuat kesilapan ini sepanjang masa. Dan pengendali adalah sebenarnya yang anda mahu. Anda tidak mahu menggunakan dua ampersands, hanya satu daripadanya. OK. Jadi mari kita lihat. Oleh itu, kita subsetted kepada partyid mana mereka Demokrat dan mereka tidak hilang nilai. Dan sekarang mari kita lihat yang mana mereka mengundi. Oleh itu, ia seolah-olah seperti kebanyakan daripada mereka mengundi untuk 1. Jadi, saya akan pergi ke depan dan mengatakan bahawa adalah Kerry. Begitu juga, anda boleh juga pergi ke Republik dan mudah-mudahan, ini harus memberi anda 2. Ia hanya mempunyai banyak ruangan yang berbeza. Dan sesungguhnya, itu 2. Jadi partyid semua Republikan, kebanyakan mereka mengundi 2. Oleh itu, ia seolah-olah seperti, hanya dengan melihat ini, Republikan akan menjadi yang very-- atau partyid yang akan menjadi sangat faktor besar dalam menentukan yang calon mereka akan mengundi. Dan ini adalah jelas benar secara umum. Dan ini perlawanan anda gerak hati, sudah tentu. Oleh itu, ia seolah-olah seperti saya kesuntukan masa jadi biar saya perlu pergi ke depan dan menunjukkan sesetengah imej cepat. Jadi di sini adalah sesuatu yang sedikit lebih rumit dengan visualisasi. Jadi dalam kes ini, ini adalah sangat analisis mudah hanya memeriksa apa Presiden '04 adalah. Jadi dalam kes ini, katakan anda mahu untuk menjawab soalan ini. Jadi sekiranya kita ingin tahu mengundi tingkah laku dalam pilihan raya presiden 2004 dan bagaimana yang berbeza mengikut kaum. Jadi bukan sahaja yang anda mahu melihat tingkah laku pengundian, tetapi anda mahu setiap subset bangsa dan jenis merumuskan bahawa. Dan anda hanya boleh memberitahu oleh tatatanda ini kompleks bahawa ini adalah jenis mendapat berjerebu. Jadi salah satu R yang lebih maju pakej itu juga jenis baru-baru ini dipanggil dplyr. Jadi ia adalah salah satu ini di sini. Dan ggplot2 ggg-- hanya bagus cara melakukan visualisasi lebih baik daripada yang terbina dalam. Jadi saya akan memuatkan kedua-dua perpustakaan. Dan kemudian, saya akan pergi hadapan dan jalankan arahan ini. Anda hanya boleh merawat ini sebagai kotak hitam. Apa yang berlaku ialah paip ini Pengendali berlalu dalam hujah ini ke sini. Jadi, saya berkata kumpulan oleh dat bangsa dan kemudian presiden 04. Dan kemudian, semua perintah lain yang menapis dan kemudian merumuskan di mana yang saya lakukan kiraan dan maka saya merancang di sini. OK sejuk. Jadi mari kita pergi ke depan dan melihat apa yang kelihatan seperti ini. Jadi apa yang berlaku di sini adalah saya yang hanya diplotkan setiap kaum dan kemudian yang mana mereka mengundi. Dan kedua-dua yang berbeza sesuai dengan nilai-nilai 2 dan 1. Jika anda mahu menjadi lebih elegan, anda juga boleh hanya menyatakan bahawa 2 adalah Kerry-- atau 2 adalah Bush, dan kemudian 1 adalah Kerry. Dan anda juga boleh mempunyai yang dalam legenda anda. Dan anda juga boleh berpecah ini graf bar. Oleh kerana satu perkara yang bahawa, jika anda perhatikan, ini tidak adalah sangat mudah untuk mengenal pasti yang kedua-dua nilai adalah lebih besar. Jadi satu perkara yang anda akan mahu lakukan adalah mengambil kawasan biru ini dan hanya bergerak di sini supaya anda boleh membandingkan kedua-dua sebelah menyebelah. Dan saya rasa itu sesuatu yang saya tidak mempunyai masa untuk lakukan sekarang, tetapi itu juga sangat mudah untuk dilakukan. Anda hanya boleh melihat ke dalam halaman abdi ggplot. Jadi anda hanya boleh jangan ggplot seperti itu dan membaca ke halaman orang ini. Maka biarlah saya dengan cepat menunjukkan kepada anda beberapa perkara yang sejuk. Mari kita pergi ke depan dan pergi hanya kepada- permohonan pengajian mesin. Jadi mari kita mengatakan bahawa kita mempunyai tiga pakej jadi saya akan memuatkan ini dalam. Jadi ini hanya mencetak beberapa maklumat selepas saya dimuatkan dalam perkara itu. Jadi saya katakan read.csv ini, dataset ini, dan kini Saya akan pergi ke depan dan melihat dan melihat apa yang di dalam dataset ini. Jadi 20 pemerhatian pertama. Jadi saya hanya mempunyai X1, X2, dan Y. Jadi seolah-olah seperti sekumpulan nilai-nilai ini adalah terdiri daripada mungkin 20 hingga 80 atau lebih. Dan kemudian juga untuk X2 dan kemudian Y ini seolah-olah menjadi label 0 dan 1. Untuk mengesahkan ini, saya boleh hanya melakukan ringkasan data X1. Dan kemudian juga untuk semua ruangan lain. Jadi ringkasan adalah jalan pantas hanya menunjukkan anda nilai cepat. Oh, maaf. Yang ini harus Y. Jadi dalam kes ini, memberikan quantiles, median, maxes juga. Dalam kes ini, dataY, anda boleh melihat bahawa ia hanya akan menjadi 0 dan 1. Juga min mengatakan 0.6, hanya bermaksud bahawa ia seolah-olah seperti saya mempunyai lebih daripada 1s 0-an. Jadi biarlah saya pergi ke depan dan pameran anda apa ini kelihatan seperti. Jadi, saya hanya akan reka ini. Mari kita lihat bagaimana untuk membersihkan ini. Oh OK. OK. Jadi ini adalah apa yang ia kelihatan seperti. Oleh itu, ia seolah-olah seperti kuning saya dinyatakan sebagai 0, dan kemudian merah saya dinyatakan sebagai 1s. Jadi di sini ia kelihatan seperti titik label dan ia seolah-olah seperti anda hanya mahu beberapa semacam pengelompokan pada ini. Dan biarlah saya pergi ke depan dan pameran anda beberapa fungsi-fungsi terbina dalam. Jadi di sini adalah lm. Jadi ini hanya cuba untuk muat garis untuk ini. Jadi apakah cara terbaik bahawa saya boleh muat garis itu yang terbaik ia akan memisahkan seperti ini kelompok. Dan ideal, anda hanya boleh melihat bahawa saya hanya menjalankan semua perintah ini dan kemudian, saya akan hadapan dan menambah baris. Jadi ini seolah-olah seperti tekaan yang terbaik. Ia mengambil yang terbaik yang mengurangkan kesilapan dalam cuba untuk muat baris ini. Jelas sekali, ini kelihatan jenis baik, tetapi ia bukan yang terbaik. Dan model linear, dalam umum, akan menjadi benar-benar hebat untuk teori dan hanya semacam asas pembinaan mesin pembelajaran. Tetapi dalam amalan, anda akan mahu melakukan sesuatu yang lebih umum. Jadi anda hanya boleh cuba berjalan sesuatu yang dipanggil rangkaian neural. Perkara-perkara ini adalah semakin lebih biasa. Dan mereka hanya bekerja fantastically untuk set data yang besar. Jadi dalam kes ini, kita hanya have-- mari kita see-- kita mempunyai nrow. Jadi nrow hanya berkata beberapa baris. Jadi dalam kes ini, saya mempunyai 100 pemerhatian. Jadi biarlah saya pergi ke depan dan membuat rangkaian neural. Jadi ini adalah benar-benar bagus kerana saya hanya boleh mengatakan nnet dan kemudian saya merosot Y. Jadi Y adalah lajur tersebut. Dan kemudian merosot pada yang lain dua pembolehubah. Jadi ini adalah lebih pendek notasi untuk X1 dan X2. Jadi mari kita pergi ke depan dan menjalankan ini. Oh, maaf. Saya perlukan untuk menjalankan perkara ini keseluruhan. Dan ini adalah hanya mencetak notasi untuk berapa cepat atau tidak dengan cepat ia bertumpu. Jadi ia kelihatan seperti ia berkumpul. Jadi biarlah saya pergi ke depan dan cetak apa ini kelihatan seperti. Lihat di sini adalah gambar dan di sini adalah kontur menunjukkan bagaimana ia sesuai. Dan ini adalah just-- anda boleh melihat ini bahawa ini adalah sangat, sangat bagus. Ia juga boleh menjadi overfitting, tetapi anda boleh juga akaun untuk ini dengan lain teknik seperti merentas pengesahan. Dan ini juga dibina ke R. Dan biarlah saya menunjukkan menyokong mesin vektor. Ini merupakan satu lagi benar-benar biasa teknik dalam pembelajaran mesin. Ia adalah hampir sama dengan model linear, tetapi ia menggunakan apa yang dipanggil kaedah kernel. Dan mari kita lihat seberapa baik yang tidak. Jadi satu ini adalah sangat serupa dengan bagaimana dan rangkaian neural melaksanakan, tetapi ia lebih lancar. Dan ini adalah berdasarkan off daripada what-- bagaimana SVMs kerja. Jadi ini adalah hanya yang sangat gambaran keseluruhan cepat beberapa fungsi terbina dalam yang anda boleh lakukan dan juga beberapa penerokaan data. Maka biarlah saya pergi ke hadapan dan kembali ke slaid. Jadi jelas, ini adalah tidak begitu menyeluruh. Dan ini adalah benar-benar hanya penggoda yang menunjukkan anda apa yang anda benar-benar boleh buat di R. Jadi jika anda ingin seperti untuk mengetahui lebih lanjut di sini adalah sekumpulan sumber yang berbeza. Jadi, jika anda suka buku teks atau anda hanya gemar membaca bahan dalam talian maka ini adalah hebat satu oleh Hadley Wickham, yang juga mencipta semua ini pakej benar-benar sejuk. Jika anda suka video, kemudian Berkeley mempunyai Bootcamp awesome itulah several-- itulah jenis panjang. Dan ia akan mengajar anda hampir semua yang anda ingin tahu tentang R. Begitu juga, ada Codeacademy dan semua jenis lain laman web interaktif. Mereka juga mendapat common-- lebih dan lebih biasa. Jadi ini adalah hampir sama dengan Codeacademy. Dan akhirnya, jika anda hanya Komuniti dan ingin membantu, ini adalah sekumpulan perkara yang anda boleh pergi ke. Jelas sekali, kita masih menggunakan senarai mel, hanya seperti hampir setiap lain masyarakat bahasa pengaturcaraan. Dan #rstats, ini adalah masyarakat kita Twitter. Itulah sebenarnya perkara biasa. Dan kemudian pengguna! Hanya persidangan kami. Dan kemudian, sudah tentu, anda boleh menggunakan semua Q & A lain perkara ini, seperti Stack Limpahan, Google, dan kemudian GitHub. Oleh kerana sebahagian besar daripada pakej-pakej ini dan banyak masyarakat akan tertumpu kepada membangunkan kod kerana ia adalah sumber terbuka. Dan ia hanya benar-benar baik pada GitHub. Dan akhirnya, anda boleh menghubungi saya jika anda hanya mempunyai apa-apa soalan cepat. Oleh itu, anda boleh mencari saya di Twitter di sini, laman web saya, dan hanya e-mel saya. Jadi mudah-mudahan, yang something-- hanya teaser pendek apa R adalah benar-benar mampu melakukan. Dan mudah-mudahan, anda hanya semak tiga pautan dan melihat apa yang anda boleh lakukan lebih. Dan saya rasa itu hanya mengenainya. Terima kasih. [Tepuk tangan]