1 00:00:00,000 --> 00:00:00,750 2 00:00:00,750 --> 00:00:09,800 >> [Грає музика] 3 00:00:09,800 --> 00:00:13,014 4 00:00:13,014 --> 00:00:13,680 DUSTIN TRAN: Привіт. 5 00:00:13,680 --> 00:00:14,980 Дастін Мене звуть. 6 00:00:14,980 --> 00:00:18,419 Так що я буду представляти Аналіз даних в R. 7 00:00:18,419 --> 00:00:19,710 Просто трохи про себе. 8 00:00:19,710 --> 00:00:24,320 Я в даний час аспірант Інженерна та прикладної науки. 9 00:00:24,320 --> 00:00:28,330 Я вивчаю перетин машинне навчання і статистика 10 00:00:28,330 --> 00:00:31,375 так Аналіз даних в R є дійсно основне значення для 11 00:00:31,375 --> 00:00:33,790 Я роблю на щоденній основі. 12 00:00:33,790 --> 00:00:35,710 >> І R особливо добре для аналізу даних 13 00:00:35,710 --> 00:00:39,310 тому що це дуже добре для прототипування. 14 00:00:39,310 --> 00:00:43,590 І, як правило, коли ви робите якісь аналізу даних, багато проблем 15 00:00:43,590 --> 00:00:44,920 збираються пізнавальною. 16 00:00:44,920 --> 00:00:48,700 І так ви просто хочете мати деякі дійсно гарна мова, що 17 00:00:48,700 --> 00:00:53,770 це просто добре для цього вбудовані функції, на відміну 18 00:00:53,770 --> 00:00:57,430 для того, щоб мати справу з низькими речей рівня. 19 00:00:57,430 --> 00:01:01,040 Таким чином, на самому початку, я просто хочу, ввести те, що R, то чому б 20 00:01:01,040 --> 00:01:04,540 Ви хочете, щоб використовувати його, і потім переходять в якийсь демо, 21 00:01:04,540 --> 00:01:07,060 і просто піти далі. 22 00:01:07,060 --> 00:01:08,150 >> Так що ж таке R? 23 00:01:08,150 --> 00:01:11,180 R тільки мову розвинувся для статистичних розрахунків 24 00:01:11,180 --> 00:01:12,450 і візуалізація. 25 00:01:12,450 --> 00:01:16,000 Так що ж це означає, що це дуже хороший мову 26 00:01:16,000 --> 00:01:22,400 для будь-якого роду речі, що має справу з невпевненість або візуалізації даних. 27 00:01:22,400 --> 00:01:24,850 Так що ви повинні все це імовірнісних розподілів. 28 00:01:24,850 --> 00:01:27,140 Там збираються бути вбудовані функції. 29 00:01:27,140 --> 00:01:31,650 Ви також будете мати відмінний побудова пакетів. 30 00:01:31,650 --> 00:01:34,110 >> Python є ще одним конкуруючих мова для даних. 31 00:01:34,110 --> 00:01:40,020 І ще одна річ, яку я знаходжу, що R набагато краще візуалізація. 32 00:01:40,020 --> 00:01:45,200 Так що ви побачите в демо як а просто дуже інтуїтивним мову 33 00:01:45,200 --> 00:01:48,050 , Який просто працює дуже добре. 34 00:01:48,050 --> 00:01:53,140 Це також є безкоштовним і відкритим вихідним кодом, а будь-який інший хороший мову, я думаю. 35 00:01:53,140 --> 00:01:55,440 >> І ось, купа всього Ключові слова кинуті на вас. 36 00:01:55,440 --> 00:02:00,450 Це динамічний, тобто якщо у вас є Конкретний тип присвоєно об'єкту 37 00:02:00,450 --> 00:02:02,025 ніж просто змінити його на льоту. 38 00:02:02,025 --> 00:02:05,670 Це ледачий, так що це розумно, про як він це робить розрахунки. 39 00:02:05,670 --> 00:02:12,250 Функціональне значення це може дійсно працювати засновані від функцій, так anything-- 40 00:02:12,250 --> 00:02:16,910 будь-який вид маніпуляцій ви робити, він буде заснований офф функцій. 41 00:02:16,910 --> 00:02:20,162 >> Так бінарні оператори, наприклад, просто за своєю суттю функції. 42 00:02:20,162 --> 00:02:21,870 І все, що Ви збираєтеся зробити, це 43 00:02:21,870 --> 00:02:24,690 буде бігти функції самостійно. 44 00:02:24,690 --> 00:02:27,140 А потім об'єктно-орієнтована, а також. 45 00:02:27,140 --> 00:02:30,930 >> Так от сюжет XKCD. 46 00:02:30,930 --> 00:02:34,350 Не тільки тому, що я відчуваю, що XKCD має фундаментальне значення для будь-якого виду 47 00:02:34,350 --> 00:02:37,770 презентації, а тому, що Я відчуваю, що це дійсно 48 00:02:37,770 --> 00:02:42,160 молотки пункт, що багато час, коли ви робите якісь дані 49 00:02:42,160 --> 00:02:46,570 аналіз, проблема полягає не в так як швидко він працює, 50 00:02:46,570 --> 00:02:49,850 але як довго це буде вас програмувати завдання. 51 00:02:49,850 --> 00:02:54,112 Так от, це просто аналізуючи чи Стратегія або б є більш ефективним. 52 00:02:54,112 --> 00:02:55,820 Це буде те, що ви 53 00:02:55,820 --> 00:02:58,290 матимемо справу багато з в Сортувати низькорівневі мови 54 00:02:58,290 --> 00:03:03,440 де ви маєте справу з SEG несправностей, виділення пам'яті, ініціалізація, 55 00:03:03,440 --> 00:03:05,270 навіть роблячи вбудовані функції. 56 00:03:05,270 --> 00:03:09,920 І цей матеріал все обробляється дуже, дуже елегантно в R. 57 00:03:09,920 --> 00:03:12,839 >> Так що просто забити цей Справа, найвужче місце 58 00:03:12,839 --> 00:03:13,880 буде пізнавальним. 59 00:03:13,880 --> 00:03:17,341 Так аналіз даних дуже складна проблема. 60 00:03:17,341 --> 00:03:19,340 Якщо ви робите машинне навчання, або ви 61 00:03:19,340 --> 00:03:22,550 робити просто якесь Основна розвідка даних 62 00:03:22,550 --> 00:03:25,290 Ви не хочете, щоб взяти документ 63 00:03:25,290 --> 00:03:27,440 а потім скомпілювати те, що кожен раз, коли ви 64 00:03:27,440 --> 00:03:31,010 хочу подивитися, що колона виглядає, які саме записи в матриці 65 00:03:31,010 --> 00:03:32,195 виглядає. 66 00:03:32,195 --> 00:03:34,320 Таким чином, ви просто хочете мати деякі дійсно приємний інтерфейс 67 00:03:34,320 --> 00:03:37,740 Ви можете запустити просту функцію що індекси до того, що 68 00:03:37,740 --> 00:03:41,870 Ви хотіли б і просто запустити його звідти. 69 00:03:41,870 --> 00:03:44,190 І ви повинні домен конкретні мови для цього. 70 00:03:44,190 --> 00:03:51,750 І R дійсно допоможе вам визначити Проблема і вирішити цю проблему таким чином. 71 00:03:51,750 --> 00:03:58,690 >> Так ось графік, що показує програмування Популярність R, як це пішло з плином часу. 72 00:03:58,690 --> 00:04:04,060 Отже, як ви бачите, як 2013 або так що просто підірвали надзвичайно. 73 00:04:04,060 --> 00:04:09,570 І це був тільки через це Величезний тенденція в індустрії високих технологій 74 00:04:09,570 --> 00:04:10,590 про великі даних. 75 00:04:10,590 --> 00:04:13,010 Крім того, не тільки технологія промисловість, але насправді 76 00:04:13,010 --> 00:04:16,490 Будь-яка галузь that--, тому що багато галузей 77 00:04:16,490 --> 00:04:20,589 є свого роду основою для намагаються вирішити ці проблеми. 78 00:04:20,589 --> 00:04:24,590 І, як правило, ви можете мати деякі хороші спосіб вимірювання цих проблем 79 00:04:24,590 --> 00:04:29,720 або навіть визначаючи їх або їх вирішення, використовуючи дані. 80 00:04:29,720 --> 00:04:35,430 Так що я думаю, зараз R є 11- найпопулярніший мову на Tiobe 81 00:04:35,430 --> 00:04:38,200 і це зростає з тих пір. 82 00:04:38,200 --> 00:04:40,740 83 00:04:40,740 --> 00:04:43,080 >> Так ось деякі більш особливості R. Він має 84 00:04:43,080 --> 00:04:46,900 Величезна кількість пакетів і для всіх цих різних речей. 85 00:04:46,900 --> 00:04:52,470 Так в будь-який час у вас є певна проблема, більшість 86 00:04:52,470 --> 00:04:55,060 Час R матиме що функція для вас. 87 00:04:55,060 --> 00:04:58,520 Так ви хочете, щоб побудувати якесь машини 88 00:04:58,520 --> 00:05:02,770 Алгоритм навчання називається Випадкові Ліс або дерева рішень, 89 00:05:02,770 --> 00:05:07,530 або навіть намагаються взяти середнє функція або який-небудь з цього матеріалу, 90 00:05:07,530 --> 00:05:10,000 R буде мати це. 91 00:05:10,000 --> 00:05:14,190 >> І якщо ви робите ви дбаєте про оптимізація, одна річ, яка загальна 92 00:05:14,190 --> 00:05:17,430 є те, що після того як ви зробили прототипи якась мові високого рівня, 93 00:05:17,430 --> 00:05:19,810 ви будете кидати, що in-- Ви просто порт, який більш 94 00:05:19,810 --> 00:05:21,550 в якусь мову низького рівня. 95 00:05:21,550 --> 00:05:26,090 Те, що добре про R є те, що, як тільки ви зроблено прототипів, ви можете запустити C ++, 96 00:05:26,090 --> 00:05:29,510 або Fortran, або будь-який з них нижні рівня безпосередньо в R. 97 00:05:29,510 --> 00:05:32,320 Так ось один дійсно круто особливістю R, 98 00:05:32,320 --> 00:05:35,930 Якщо ви дійсно дбаєте про Справа в оптимізації. 99 00:05:35,930 --> 00:05:39,490 >> І це теж дуже добре для веб-візуалізації. 100 00:05:39,490 --> 00:05:43,530 Так D3.js, наприклад, Я думаю, ще один семінар 101 00:05:43,530 --> 00:05:45,130 що ми представили сьогодні. 102 00:05:45,130 --> 00:05:48,510 І це дійсно дивним для робити інтерактивні візуалізації. 103 00:05:48,510 --> 00:05:54,460 І D3.js припускає, що у вас є свого роду даних, які будуть нанесені 104 00:05:54,460 --> 00:05:58,080 і R є відмінним способом, щоб бути здатним робити Аналіз даних, перш ніж експортувати його 105 00:05:58,080 --> 00:06:04,220 до D3.js або навіть просто працювати D3.js команд в самій R, 106 00:06:04,220 --> 00:06:08,240 а також всі ці інші бібліотеки, а також. 107 00:06:08,240 --> 00:06:13,041 >> Так що просто впровадження що R і чому його можна використовувати. 108 00:06:13,041 --> 00:06:14,790 Так, ми сподіваємося, у мене переконані, що ви щось 109 00:06:14,790 --> 00:06:18,460 про просто намагаюся побачити, що це таке. 110 00:06:18,460 --> 00:06:23,930 Так що я збираюся йти вперед і пройти через деякі основи про об'єкти R 111 00:06:23,930 --> 00:06:26,150 і те, що ви дійсно можете зробити. 112 00:06:26,150 --> 00:06:29,690 >> Так от просто купа команд математику. 113 00:06:29,690 --> 00:06:35,000 Так кажуть you're-- ви хочете побудувати мову самостійно, і ви просто хочете 114 00:06:35,000 --> 00:06:38,080 мати купу різних інструментів. 115 00:06:38,080 --> 00:06:42,520 Будь-який вид роботи ви думаєте, ви хочу в значній мірі буде в R. 116 00:06:42,520 --> 00:06:44,150 >> Так от 2 плюс 2. 117 00:06:44,150 --> 00:06:46,090 Ось два рази пі. 118 00:06:46,090 --> 00:06:51,870 R має купу вбудованих констант що ви будете часто використовувати як пі, е. 119 00:06:51,870 --> 00:06:56,230 >> І потім, ось 7 плюс runif, так runif 1. 120 00:06:56,230 --> 00:07:02,450 Це функція, яка генерує одне випадкове рівномірне від 0 до 1. 121 00:07:02,450 --> 00:07:04,400 А тут ще від 3 до ступеня 4. 122 00:07:04,400 --> 00:07:06,430 Там це квадратні корені. 123 00:07:06,430 --> 00:07:07,270 >> Там же журналу. 124 00:07:07,270 --> 00:07:14,500 Так, авторизуйтесь буде робити базу Експонентний сам по собі. 125 00:07:14,500 --> 00:07:18,337 І потім, якщо ви вкажете базу, то Ви можете робити все, що база ви хочете. 126 00:07:18,337 --> 00:07:19,920 І тоді, ось деякі інші команди. 127 00:07:19,920 --> 00:07:22,180 Так що ви повинні 23 мод 2. 128 00:07:22,180 --> 00:07:24,910 Тоді у вас є залишок. 129 00:07:24,910 --> 00:07:27,110 Тоді у вас є науково позначення, якщо ви також 130 00:07:27,110 --> 00:07:34,060 хочу зробити просто більше і більш складні речі. 131 00:07:34,060 --> 00:07:37,320 >> Так от призначення. 132 00:07:37,320 --> 00:07:40,830 Так типові завдання в R виконується зі стрілкою 133 00:07:40,830 --> 00:07:43,440 так що це менше, ніж а потім дефіс. 134 00:07:43,440 --> 00:07:47,250 Так от, я просто призначення 3 зі змінною Вал. 135 00:07:47,250 --> 00:07:50,160 >> І тоді я друкую Val а потім виводить три. 136 00:07:50,160 --> 00:07:53,920 За умовчанням в R перекладача, його друкуватиме речі для вас 137 00:07:53,920 --> 00:07:57,280 так що вам не потрібно вказувати друку Val в будь-який час ви хочете, щоб щось надрукувати. 138 00:07:57,280 --> 00:08:00,200 Ви можете просто зробити Вел і то він буде робити це за вас. 139 00:08:00,200 --> 00:08:04,380 >> Крім того, ви можете використовувати дорівнює технічно як оператор присвоювання. 140 00:08:04,380 --> 00:08:07,190 Є невеликі тонкощі між використанням стрілку 141 00:08:07,190 --> 00:08:10,730 оператор і рівності Оператор для виконання завдань. 142 00:08:10,730 --> 00:08:15,470 В основному відповідно до Конвенції, все просто використовувати оператор стрілки. 143 00:08:15,470 --> 00:08:21,850 >> І ось, я задаю це косою позначення називається 1 двокрапка 6. 144 00:08:21,850 --> 00:08:26,010 Це генерує вектор від 1 до 6. 145 00:08:26,010 --> 00:08:29,350 І це дуже приємно, тому що тоді Ви просто призначити вектор Валь 146 00:08:29,350 --> 00:08:34,270 і що працює сама по собі. 147 00:08:34,270 --> 00:08:37,799 >> Так що це вже відбувається з single-- дуже інтуїтивний даних 148 00:08:37,799 --> 00:08:41,070 Структура просто двійник деякий тип типу в вектор 149 00:08:41,070 --> 00:08:45,670 і який буде збирати всі скалярні значення для вас. 150 00:08:45,670 --> 00:08:50,770 Таким чином, після переходу від скалярного, ви є об'єкти R, і це вектор. 151 00:08:50,770 --> 00:08:55,610 Вектор будь-який вид Збір і того ж типу. 152 00:08:55,610 --> 00:08:58,150 Так ось купа векторів. 153 00:08:58,150 --> 00:08:59,800 >> Так що це цифри. 154 00:08:59,800 --> 00:09:02,440 Числовий, є спосіб R спосіб сказати два рази. 155 00:09:02,440 --> 00:09:07,390 І так за замовчуванням, будь число буде в два рази. 156 00:09:07,390 --> 00:09:13,150 >> Так що, якщо у вас є з 1,1, 3, негативною 5,7, C є функцією. 157 00:09:13,150 --> 00:09:16,760 Це об'єднує всі три числа у векторі. 158 00:09:16,760 --> 00:09:19,619 І це буде be-- так що якщо Ви помітили, 3 само по собі, 159 00:09:19,619 --> 00:09:21,910 як правило, ви б припустити, що це, як ціле, 160 00:09:21,910 --> 00:09:25,050 а тому, що всі вектори той же самий тип, 161 00:09:25,050 --> 00:09:28,660 це вектор парному розряді або цифровий в цьому випадку. 162 00:09:28,660 --> 00:09:34,920 >> RNorm є функцією, яка створює стандартна нормальна variables-- 163 00:09:34,920 --> 00:09:36,700 або стандартні нормальні значення. 164 00:09:36,700 --> 00:09:38,360 І я, вказавши дві з них. 165 00:09:38,360 --> 00:09:43,840 Так що я роблю RNorm 2, призначення, що Розробники, а потім я друкую деви. 166 00:09:43,840 --> 00:09:47,350 Таким чином, ці тільки два Випадкові нормальні значення. 167 00:09:47,350 --> 00:09:50,060 >> А потім цілих чисел, якщо ви Ви дбаєте про цілих чисел. 168 00:09:50,060 --> 00:09:54,650 Так що це просто про пам'ять розподіл і збереження обсяг пам'яті. 169 00:09:54,650 --> 00:10:01,460 Таким чином, ви повинні додати ваші номери по столиці Л. 170 00:10:01,460 --> 00:10:04,170 >> Загалом, це Історичний позначення R в 171 00:10:04,170 --> 00:10:06,940 для того, що називається довге ціле. 172 00:10:06,940 --> 00:10:09,880 Тому більшу частину часу, ви будете мати справу з двійниками. 173 00:10:09,880 --> 00:10:15,180 І якщо ви коли-небудь буде пізно на оптимізувати свій код, 174 00:10:15,180 --> 00:10:18,110 Ви можете просто додати їх у L'років після або під час нього 175 00:10:18,110 --> 00:10:22,280 якщо ви, як віщі про те, що Ви збираєтеся зробити ці змінні. 176 00:10:22,280 --> 00:10:25,340 177 00:10:25,340 --> 00:10:26,890 >> Так ось векторний характер. 178 00:10:26,890 --> 00:10:31,440 Так, знову ж таки, я об'єднання три струни на цей раз. 179 00:10:31,440 --> 00:10:36,230 Зверніть увагу, що подвійні струни і поодинокі рядки же в R. 180 00:10:36,230 --> 00:10:41,000 Так що в мене Артур і Марвін і так коли я друкую це, всі вони 181 00:10:41,000 --> 00:10:43,210 збираємося показати подвійними струнами. 182 00:10:43,210 --> 00:10:45,880 І якщо ви також хочете, щоб включити подвійний або одинарної рядки 183 00:10:45,880 --> 00:10:50,070 в ваших персонажів, то ви можете або чергувати ваші рядки. 184 00:10:50,070 --> 00:10:53,540 >> Так Марвін для Другий елемент, це 185 00:10:53,540 --> 00:10:56,380 збирається show-- вас просто подвійними струнами 186 00:10:56,380 --> 00:10:59,050 а потім один рядок так що це змінного. 187 00:10:59,050 --> 00:11:04,040 В іншому випадку, якщо ви хочете використовувати двічі Рядок оператор в двомісному рядки 188 00:11:04,040 --> 00:11:07,090 коли ви оголосивши її, а потім ви просто використовуєте оператор втечі. 189 00:11:07,090 --> 00:11:10,600 Так що вам зворотний слеш подвійний рядок. 190 00:11:10,600 --> 00:11:13,330 >> І, нарешті, ми також є логічні вектори. 191 00:11:13,330 --> 00:11:15,890 Так logical-- так вірно і FALSE, і вони 192 00:11:15,890 --> 00:11:18,880 буде все великі літери. 193 00:11:18,880 --> 00:11:22,370 А потім, знову ж таки, я об'єднання їх, а потім призначати їх BOOLS. 194 00:11:22,370 --> 00:11:24,590 Так Bools збирається показати Ви TRUE, FALSE, і TRUE. 195 00:11:24,590 --> 00:11:28,280 196 00:11:28,280 --> 00:11:31,620 >> Так ось векторизация індексації. 197 00:11:31,620 --> 00:11:34,870 Таким чином, на початку, я беру function-- 198 00:11:34,870 --> 00:11:39,230 це називається sequence-- Послідовність від 2 до 12. 199 00:11:39,230 --> 00:11:42,490 І я беру послідовність, 2. 200 00:11:42,490 --> 00:11:46,660 Так це буде робити 2, 4, 6, 8, 10 і 12. 201 00:11:46,660 --> 00:11:50,080 І потім, я індексування щоб отримати третій елемент. 202 00:11:50,080 --> 00:11:55,770 >> Таким чином, одна річ, щоб мати на увазі, що г індекси, починаючи з 1. 203 00:11:55,770 --> 00:12:00,550 Так Вальс 3 даватиме Ви Третій елемент. 204 00:12:00,550 --> 00:12:04,580 Це свого роду відрізняється від інших мови, в яких він починається з нуля. 205 00:12:04,580 --> 00:12:09,780 Таким чином, в C або C ++, наприклад, ви збирається отримати четвертий елемент. 206 00:12:09,780 --> 00:12:13,280 >> А ось вальс від 3 до 5. 207 00:12:13,280 --> 00:12:16,030 Таким чином, одна річ, яка дійсно здорово, що ви 208 00:12:16,030 --> 00:12:20,410 може генерувати тимчасові змінні всередині а потім просто використовувати їх на льоту. 209 00:12:20,410 --> 00:12:21,960 Так от 3 до 5. 210 00:12:21,960 --> 00:12:25,070 Так я генерації вектор 3, 4 і 5, а потім 211 00:12:25,070 --> 00:12:29,700 Я індексації, щоб отримати третину, четвертий і п'ятий елементи. 212 00:12:29,700 --> 00:12:32,280 >> Отже, подібним чином, ви можете Анотація просто зробити 213 00:12:32,280 --> 00:12:35,280 будь-який вид вектора Це дає вам індексацію. 214 00:12:35,280 --> 00:12:40,050 Так ось вальс, а потім перший, третій, шостий і елементи. 215 00:12:40,050 --> 00:12:42,800 І потім, якщо ви хочете зробити доповнення, 216 00:12:42,800 --> 00:12:45,210 так що ви просто зробити мінус після цього і що буде 217 00:12:45,210 --> 00:12:48,600 дати вам все, що не перший, третій, шостий і елемент. 218 00:12:48,600 --> 00:12:51,590 Таким чином, це буде 4, 8 і 10. 219 00:12:51,590 --> 00:12:54,380 >> І якщо ви хочете отримати навіть більш просунуті, 220 00:12:54,380 --> 00:12:57,610 Ви можете об'єднати логічні вектори. 221 00:12:57,610 --> 00:13:05,210 Так цей показник буде давати вам це булева вектора довжини 6. 222 00:13:05,210 --> 00:13:07,280 Так представник TRUE, кома 3. 223 00:13:07,280 --> 00:13:09,680 Це буде повторювати ІСТИНА три рази. 224 00:13:09,680 --> 00:13:12,900 Так що це дасть вам вектор TRUE, TRUE, TRUE. 225 00:13:12,900 --> 00:13:17,470 >> представник FALSE 4-- це відбувається, щоб дати вам вектор FALSE, FALSE, FALSE, FALSE. 226 00:13:17,470 --> 00:13:21,280 І тоді з об'єднуватиме ці два Логічні разом. 227 00:13:21,280 --> 00:13:24,090 Таким чином, ви збираєтеся отримати три Істини, а потім чотири FALSEs. 228 00:13:24,090 --> 00:13:28,460 >> Так що, коли ви форумів вальс, ви збирається отримати TRUE, TRUE, TRUE. 229 00:13:28,460 --> 00:13:31,420 Так от хочу сказати, так, Я хочу, щоб ці три елементи. 230 00:13:31,420 --> 00:13:33,520 А потім FALSE, FALSE, БРЕХНЯ, БРЕХНЯ збирається 231 00:13:33,520 --> 00:13:37,140 щоб сказати ні, я не хочу, щоб ці елементи так що не збирається їх повернути. 232 00:13:37,140 --> 00:13:41,490 >> І я думаю, є насправді опечатка тут тому що це говорить повторіть TRUE, 3 233 00:13:41,490 --> 00:13:47,990 і повторювати брехливі 4, і технічно, вам тільки шість елементів, так повторювати брехливі, 234 00:13:47,990 --> 00:13:50,470 вона повинна бути повтор FALSE 3. 235 00:13:50,470 --> 00:13:55,260 Я думаю, що R також досить такий шикарний що якщо ви просто вказуєте 4 тут, то 236 00:13:55,260 --> 00:13:56,630 Це не буде навіть без помилок. 237 00:13:56,630 --> 00:13:58,480 Це буде просто дати вам цю величину. 238 00:13:58,480 --> 00:14:00,970 Так це буде просто ігнорувати, що в четвертому БРЕХНЯ. 239 00:14:00,970 --> 00:14:05,310 240 00:14:05,310 --> 00:14:09,270 >> Так ось векторизация призначення. 241 00:14:09,270 --> 00:14:15,480 Так set.seed-- це тільки встановлює насіння псевдовипадкових чисел. 242 00:14:15,480 --> 00:14:20,110 Так я встановлюю насіння з 42, це означає, що, якщо я можу генерувати 243 00:14:20,110 --> 00:14:22,950 три випадкових нормально значення, а потім, якщо вас 244 00:14:22,950 --> 00:14:27,400 запустити set.seed на свій розсуд комп'ютер, використовуючи той же значення 42, 245 00:14:27,400 --> 00:14:30,990 то ви також отримуєте Ті ж три випадкові нормалей. 246 00:14:30,990 --> 00:14:33,411 >> Так що це дуже добре відтворюваності. 247 00:14:33,411 --> 00:14:35,910 Зазвичай, коли ви робите деякі Сортувати наукового аналізу, 248 00:14:35,910 --> 00:14:37,230 Ви хотіли б встановити насіння. 249 00:14:37,230 --> 00:14:41,270 Таким чином, інші вчені можуть просто відтворити точно такий же код, який ви 250 00:14:41,270 --> 00:14:44,790 зроблено тому, що вони мають точне ж випадкові величини that-- або випадкова 251 00:14:44,790 --> 00:14:47,270 значення, які ви взяли, як добре. 252 00:14:47,270 --> 00:14:49,870 253 00:14:49,870 --> 00:14:53,910 >> І так векторизованних призначення тут показує Вальс з 1 по 2. 254 00:14:53,910 --> 00:14:59,290 Так що займає перші два елементи з вальсу, а потім привласнює їх 0. 255 00:14:59,290 --> 00:15:03,940 І потім, ви також можете просто зробити Подібна річ з перемикачів. 256 00:15:03,940 --> 00:15:09,340 >> Так вальс не дорівнює 0-- цю волю дати вам вектор БРЕХНЯ, БРЕХНЯ, ІСТИНА 257 00:15:09,340 --> 00:15:10,350 в цьому випадку. 258 00:15:10,350 --> 00:15:13,770 І потім, це буде говорити будь з тих індексів, які були щирими, 259 00:15:13,770 --> 00:15:15,270 то це буде призначити що 5. 260 00:15:15,270 --> 00:15:18,790 Так він приймає третій елемент тут, а потім привласнює його 5. 261 00:15:18,790 --> 00:15:22,300 >> І це дуже приємно в порівнянні з низькорівневих мовах 262 00:15:22,300 --> 00:15:25,560 де ви повинні використовувати для петель зробити все це векторизованних речі 263 00:15:25,560 --> 00:15:30,281 тому що це просто дуже інтуїтивним і це єдиний один вкладиш. 264 00:15:30,281 --> 00:15:32,030 І те, що є великим про векторизация позначення 265 00:15:32,030 --> 00:15:37,020 в тому, що в R, це свого роду вбудовані таким чином, що вони майже так само швидко, 266 00:15:37,020 --> 00:15:42,490 як робити на мові низького рівня, як на відміну від рішень для петлі в R 267 00:15:42,490 --> 00:15:46,317 , А потім з його робити Сам динамічний індексації. 268 00:15:46,317 --> 00:15:48,900 І це буде повільніше, ніж робити Цей вид векторизованних речі 269 00:15:48,900 --> 00:15:55,950 де він може зробити це паралельно, де він робить це в заправці в принципі. 270 00:15:55,950 --> 00:15:58,650 >> Так ось векторизуется операцій. 271 00:15:58,650 --> 00:16:04,920 Так я генерації значення 1 до 3, призначаючи що vec1, від 3 до 5, vec2, 272 00:16:04,920 --> 00:16:05,950 складаючи їх разом. 273 00:16:05,950 --> 00:16:11,490 Він додає їм покомпонентно так це 1 плюс 3, 2 плюс 4, і так далі. 274 00:16:11,490 --> 00:16:13,330 >> vec1 раз vec2. 275 00:16:13,330 --> 00:16:16,110 Це примножує два ціннісний компонент мудрим. 276 00:16:16,110 --> 00:16:21,830 Так що це один раз 3, 2 рази 4, а потім 3 рази 5. 277 00:16:21,830 --> 00:16:28,250 >> А потім, так само ви можете також зробити comparisons-- логічне порівняння. 278 00:16:28,250 --> 00:16:33,640 Так що це БРЕХНЯ БРЕХНЯ ІСТИНА в цьому так, бо один не більше, ніж 3, 279 00:16:33,640 --> 00:16:35,920 2 максимум, ніж 4. 280 00:16:35,920 --> 00:16:41,160 Це, я думаю ,, інший опечатка, 3 безумовно не більше, ніж 5. 281 00:16:41,160 --> 00:16:41,660 Так. 282 00:16:41,660 --> 00:16:45,770 І тому ви можете просто зробити все Ці прості операції 283 00:16:45,770 --> 00:16:48,350 тому що їх у спадщину від самих класів. 284 00:16:48,350 --> 00:16:51,110 285 00:16:51,110 --> 00:16:52,580 >> Так що було просто вектор. 286 00:16:52,580 --> 00:16:56,530 І це свого роду найбільш фундаментальним R об'єкт, тому що заданий вектор, 287 00:16:56,530 --> 00:16:59,170 Ви можете побудувати більш складні об'єкти. 288 00:16:59,170 --> 00:17:00,560 >> Так ось матриця. 289 00:17:00,560 --> 00:17:05,030 Це, по суті абстракція що матриця сама по собі. 290 00:17:05,030 --> 00:17:10,099 Таким чином, в цьому випадку, це три різні вектори, де кожен з колонки, 291 00:17:10,099 --> 00:17:12,710 або ви можете розглядати його як кожного з них ряд. 292 00:17:12,710 --> 00:17:18,250 >> Так що я зберігаю матрицю від 1 до 9, а потім я зазначенням 3 рядків. 293 00:17:18,250 --> 00:17:23,364 Так з 1 по 9 дасть вам вектор 1, 2, 3, 4, 5, 6, і аж до 9. 294 00:17:23,364 --> 00:17:29,250 >> Одна річ, щоб мати на увазі, що R зберігає значення в стовпці-майор форматі. 295 00:17:29,250 --> 00:17:34,160 Отже, іншими словами, коли ви бачите 1 9, це буде зберігати them-- 296 00:17:34,160 --> 00:17:36,370 це буде 1, 2, 3 в першому стовпці, 297 00:17:36,370 --> 00:17:38,510 а потім він буде робити 4, 5, 6 у другому стовпці, 298 00:17:38,510 --> 00:17:41,440 а потім 7, 8, 9, в третьому стовпці. 299 00:17:41,440 --> 00:17:45,570 >> А ось деякі інші загальні функції, які ви можете використовувати. 300 00:17:45,570 --> 00:17:49,650 Так тьмяний мат, це дасть вам розміри матриці. 301 00:17:49,650 --> 00:17:52,620 Це буде повертати вас вектор розмірності. 302 00:17:52,620 --> 00:17:55,580 Таким чином, в цьому випадку, оскільки наша матриця 3 на 3, 303 00:17:55,580 --> 00:18:01,900 це буде давати вам цифрова векторна це 3 березня. 304 00:18:01,900 --> 00:18:05,270 >> А ось просто показує множення матриць. 305 00:18:05,270 --> 00:18:11,970 Так зазвичай, якщо ви просто робите asterisk-- так килимок зірочка mat-- 306 00:18:11,970 --> 00:18:15,380 це буде покомпонентно робота 307 00:18:15,380 --> 00:18:17,300 або те, що називається продукт Адамара. 308 00:18:17,300 --> 00:18:21,310 Так це буде робити кожен елемент покомпонентно. 309 00:18:21,310 --> 00:18:23,610 Тим не менше, якщо ви хочете матриця multiplication-- 310 00:18:23,610 --> 00:18:29,380 так множення перший раз рядків Перший стовпець другого матриці в 311 00:18:29,380 --> 00:18:34,510 і так on-- ви повинні використовувати цей відсоток операція. 312 00:18:34,510 --> 00:18:38,110 >> І т мату просто Робота для транспозиції. 313 00:18:38,110 --> 00:18:42,590 Так що я кажу, прийняти транспонування в матриця, помножити його на матрицю 314 00:18:42,590 --> 00:18:43,090 Сам. 315 00:18:43,090 --> 00:18:45,006 І тоді це буде повернутися до вас ще 3 316 00:18:45,006 --> 00:18:50,700 на 3 матриці показу продукт, який ви хотіли. 317 00:18:50,700 --> 00:18:53,750 >> І так, щоб було матриця. 318 00:18:53,750 --> 00:18:56,020 Ось те, що називається кадр даних. 319 00:18:56,020 --> 00:19:00,780 Кадр даних ви можете думати про якість матриця, а сама кожен стовпець 320 00:19:00,780 --> 00:19:02,990 буде іншого типу. 321 00:19:02,990 --> 00:19:07,320 >> Так що дійсно здорово про дані кадри, що в аналізі даних самого, 322 00:19:07,320 --> 00:19:11,260 Ви будете мати все це гетерогенні дані і все це насправді 323 00:19:11,260 --> 00:19:15,640 брудні речі, де кожна з колон самі по собі можуть бути різних типів. 324 00:19:15,640 --> 00:19:21,460 Так от я і кажу створити кадр даних, зробити цілими від 1 до 3, 325 00:19:21,460 --> 00:19:24,750 а потім також векторний характер. 326 00:19:24,750 --> 00:19:28,470 Так що я можу індекс через кожен з цих колонок 327 00:19:28,470 --> 00:19:30,930 і тоді я отримаю самі значення. 328 00:19:30,930 --> 00:19:34,370 І ви також можете зробити якийсь операцій з фреймів даних. 329 00:19:34,370 --> 00:19:38,040 І більшу частину часу, коли ви робити аналіз даних або якийсь 330 00:19:38,040 --> 00:19:42,042 попередньої обробки, ви будете працювати з цими структурами даних 331 00:19:42,042 --> 00:19:44,250 де кожен стовпець щоб бути іншого типу. 332 00:19:44,250 --> 00:19:47,880 333 00:19:47,880 --> 00:19:52,970 >> Нарешті, так що це в основному тільки чотири основні об'єкти до Списку Р. 334 00:19:52,970 --> 00:19:55,820 буде просто збирати будь інші об'єкти, які ви хочете. 335 00:19:55,820 --> 00:20:00,130 Так він буде зберігати це в одному змінна, яку можна легко отримати доступ. 336 00:20:00,130 --> 00:20:02,370 >> Так от, я беру список. 337 00:20:02,370 --> 00:20:04,460 Я кажу речі дорівнює 3. 338 00:20:04,460 --> 00:20:08,060 Так що я буду мати один елемент у Список, і це називається матеріал, 339 00:20:08,060 --> 00:20:10,570 і це буде мати значення 3. 340 00:20:10,570 --> 00:20:13,140 >> Я можу також створити матрицю. 341 00:20:13,140 --> 00:20:17,970 Так що це від 1 до 4 і кінцевого поспіль дорівнює 2, так що матриця 2 × 2. 342 00:20:17,970 --> 00:20:20,270 Крім того, в списку, і це називається мат. 343 00:20:20,270 --> 00:20:24,690 moreStuff, рядок символів, і навіть один список сам по собі. 344 00:20:24,690 --> 00:20:27,710 >> Так що це список, це 5 і ведмедя. 345 00:20:27,710 --> 00:20:30,990 Так що має значення 5 і його має символьного рядка ведмедя 346 00:20:30,990 --> 00:20:32,710 і це список всередині списку. 347 00:20:32,710 --> 00:20:35,965 Таким чином, ви можете мати це рекурсивні речей, де 348 00:20:35,965 --> 00:20:38,230 у вас є another-- А введіть в межах типу. 349 00:20:38,230 --> 00:20:41,420 Отже, подібним чином, ви можете мати матрицю в іншій матриці і так далі. 350 00:20:41,420 --> 00:20:44,264 І список просто хороший спосіб збору та агрегування 351 00:20:44,264 --> 00:20:45,430 всі ці різні об'єкти. 352 00:20:45,430 --> 00:20:50,210 353 00:20:50,210 --> 00:20:57,150 >> І, нарешті, тут просто допоможе у випадку Це було якраз перейшли дуже швидко. 354 00:20:57,150 --> 00:21:01,350 Так в будь-який час ви заплуталися про якусь функції, 355 00:21:01,350 --> 00:21:03,510 Ви можете зробити допомогу цієї функції. 356 00:21:03,510 --> 00:21:07,120 Таким чином, ви можете зробити довідкову матрицю або знак питання матриця. 357 00:21:07,120 --> 00:21:11,430 І допомога і знак питання є тільки обраховувати за те ж саме 358 00:21:11,430 --> 00:21:13,040 так що вони псевдоніми. 359 00:21:13,040 --> 00:21:16,820 >> ЛМ функція, яка просто робить лінійна модель. 360 00:21:16,820 --> 00:21:20,340 Але якщо ви просто поняття не маю, як це Роботи, ви можете просто зробити допомогу лм 361 00:21:20,340 --> 00:21:24,610 і це дасть вам деякі Сортувати документації, яка 362 00:21:24,610 --> 00:21:27,960 виглядає ніби як Людина сторінки в Unix, де 363 00:21:27,960 --> 00:21:34,210 у вас є короткий опис того, що він робить, і те, що її аргументи, 364 00:21:34,210 --> 00:21:38,850 що це повертається, і всього порад про те, щоб використовувати його, і деякі приклади. 365 00:21:38,850 --> 00:21:41,680 366 00:21:41,680 --> 00:21:52,890 >> Отже, дозвольте мені йти вперед і шоу деякі демо за допомогою Р. OK. 367 00:21:52,890 --> 00:21:55,470 Так що я пішов на дуже швидко тільки дані 368 00:21:55,470 --> 00:21:59,440 структури і якийсь op-- деякі операції. 369 00:21:59,440 --> 00:22:02,960 Ось деякі функції. 370 00:22:02,960 --> 00:22:06,750 >> Так от я просто хочу, визначити функцію. 371 00:22:06,750 --> 00:22:09,970 Так я також використовую Оператор присвоювання тут, 372 00:22:09,970 --> 00:22:12,610 і тоді я говорю, оголосити його як функцію. 373 00:22:12,610 --> 00:22:14,140 І він приймає значення х. 374 00:22:14,140 --> 00:22:18,210 Так що це якесь значення ви хочете і я збираюся повернутися х сам по собі. 375 00:22:18,210 --> 00:22:20,840 Так що це функція тотожності. 376 00:22:20,840 --> 00:22:23,670 >> І те, що це круто про це в порівнянні з іншими мовами 377 00:22:23,670 --> 00:22:26,330 а інший з низьким рівнем мов полягає в тому х 378 00:22:26,330 --> 00:22:29,350 може бути самою різних типів і вона поверне цей тип. 379 00:22:29,350 --> 00:22:35,251 Таким чином, ви можете imagine-- так що давайте мені просто запустити це швидко. 380 00:22:35,251 --> 00:22:35,750 Вибачте. 381 00:22:35,750 --> 00:22:40,300 >> Таким чином, одна річ, яку я повинен також згадати, є те, що цей редактор я використовую 382 00:22:40,300 --> 00:22:41,380 називається RStudio. 383 00:22:41,380 --> 00:22:44,389 Це те, що називається IDE. 384 00:22:44,389 --> 00:22:46,180 І одна річ, яка дуже приємно про це 385 00:22:46,180 --> 00:22:51,500 є те, що вона включає в себе безліч речі, які ви хочете зробити в R само по собі 386 00:22:51,500 --> 00:22:53,180 просто дуже інтуїтивно. 387 00:22:53,180 --> 00:22:55,550 >> Так ось пульт перекладача. 388 00:22:55,550 --> 00:23:02,160 Отже, подібним чином, ви також можете отримати це Консоль сировини просто робити великої літери 389 00:23:02,160 --> 00:23:05,630 І це саме те, Те ж саме, як консоль. 390 00:23:05,630 --> 00:23:12,210 Так що я можу робити документа функція х, х, х. 391 00:23:12,210 --> 00:23:16,130 І then--, а потім, що буде прекрасно себе. 392 00:23:16,130 --> 00:23:19,200 393 00:23:19,200 --> 00:23:21,740 >> Так RStudio великий тому що вона має консоль. 394 00:23:21,740 --> 00:23:25,360 Вона також має документи Ви хотіли б працювати на. 395 00:23:25,360 --> 00:23:28,629 І тоді вона має деякі змінні що ви можете побачити в навколишньому середовищі. 396 00:23:28,629 --> 00:23:30,420 І потім, якщо у вас є зробити ділянки, то вам 397 00:23:30,420 --> 00:23:33,730 можна просто бачити його тут, на відміну від управління всі ці різні вікна 398 00:23:33,730 --> 00:23:35,940 самі по собі. 399 00:23:35,940 --> 00:23:40,530 >> Я насправді особисто використовую Vim, але я відчуваю, що RStudio відмінно просто 400 00:23:40,530 --> 00:23:44,640 для отримання хорошою ідеєю про те, як використовувати R. Зазвичай 401 00:23:44,640 --> 00:23:47,040 коли ви намагаєтеся дізнатися деякі нові завдання, 402 00:23:47,040 --> 00:23:49,590 Ви не хочете обробляти занадто багато речей відразу. 403 00:23:49,590 --> 00:23:53,120 Так R просто very-- RStudio це дуже хороший спосіб навчання R 404 00:23:53,120 --> 00:23:56,760 без необхідності мати справу з всі ці інші речі. 405 00:23:56,760 --> 00:23:58,600 >> Так от я біжу ID Hello. 406 00:23:58,600 --> 00:24:00,090 Це повертає привіт. 407 00:24:00,090 --> 00:24:01,740 ID 123. 408 00:24:01,740 --> 00:24:04,610 Ось вектор цілих чисел. 409 00:24:04,610 --> 00:24:08,620 Отже, подібним чином, тому що ви можете приймати будь-які якусь цінність, 410 00:24:08,620 --> 00:24:16,060 Ви можете зробити повернення ідентифікатор х, так що повертається 1234 і 5. 411 00:24:16,060 --> 00:24:22,210 >> І дозвольте мені показати вам, що це дійсно ціле число. 412 00:24:22,210 --> 00:24:28,800 І точно так само, якщо ви клас ID х, це буде ціле число. 413 00:24:28,800 --> 00:24:34,170 І потім, ви також можете порівняти два і це правда. 414 00:24:34,170 --> 00:24:38,350 Так я перевіряю, якщо ідентифікатор X дорівнює дорівнює х і повідомлення 415 00:24:38,350 --> 00:24:39,760 що вона дає вам два істини. 416 00:24:39,760 --> 00:24:44,280 Так що це не говорить, є два об'єкти ідентичні, 417 00:24:44,280 --> 00:24:46,845 але кожен з записів в вектори збігаються. 418 00:24:46,845 --> 00:24:50,000 419 00:24:50,000 --> 00:24:52,090 >> Ось bounded.compare. 420 00:24:52,090 --> 00:24:58,470 Так що це трохи складніше тим, що він має, і якщо умова ще 421 00:24:58,470 --> 00:25:00,960 а потім він приймає два Аргументи в той час. 422 00:25:00,960 --> 00:25:02,640 Так х будь-якого типу. 423 00:25:02,640 --> 00:25:06,280 І я кажу це Другий аргумент. 424 00:25:06,280 --> 00:25:08,380 Це може бути що завгодно, як добре. 425 00:25:08,380 --> 00:25:12,490 Але за умовчанням, це займе 5, якщо ви не вкажете що-небудь. 426 00:25:12,490 --> 00:25:16,730 >> Так от я хочу сказати, якщо х більше. 427 00:25:16,730 --> 00:25:19,220 Так що, якщо я не вказую, його говорить, що якщо х більше, ніж 5, 428 00:25:19,220 --> 00:25:20,470 потім я збираюся повернутися TRUE. 429 00:25:20,470 --> 00:25:23,230 ще, я збираюся повернутися FALSE. 430 00:25:23,230 --> 00:25:24,870 Отже, дозвольте мені йти вперед і визначити це. 431 00:25:24,870 --> 00:25:30,600 432 00:25:30,600 --> 00:25:34,550 >> А тепер я збираюся запустити bounded.compare 3. 433 00:25:34,550 --> 00:25:39,150 Так він говорить в 3 менше, than-- 3 більше, ніж 5. 434 00:25:39,150 --> 00:25:41,830 Ні, це не так FALSE. 435 00:25:41,830 --> 00:25:46,550 >> І bounded.compare 3, і я збираюся порівняти його з допомогою дорівнює 2. 436 00:25:46,550 --> 00:25:50,700 Так що тепер я кажу так, тепер я хочу, щоб щось інше. 437 00:25:50,700 --> 00:25:52,750 Так що я збираюся сказати, ви повинні бути 2. 438 00:25:52,750 --> 00:25:56,640 >> Я можу або робити такого роду позначення або я кажу дорівнює 2. 439 00:25:56,640 --> 00:25:58,720 Це більш читабельним в тому, що, коли ви 440 00:25:58,720 --> 00:26:01,450 Дивлячись на ці дійсно складні функції, які 441 00:26:01,450 --> 00:26:08,110 взяти кілька arguments-- і це може бути десятки oftentimes-- просто кажу, 442 00:26:08,110 --> 00:26:11,140 дорівнює 2 є більш читабельним для Ви, щоб потім в майбутньому 443 00:26:11,140 --> 00:26:13,020 Ви будете знати, що ви робите. 444 00:26:13,020 --> 00:26:17,120 >> Таким чином, в цьому випадку, я приказка 3 більше, ніж 2. 445 00:26:17,120 --> 00:26:18,270 Та це так. 446 00:26:18,270 --> 00:26:22,350 І точно так само, я можу просто видалити це і говорять, 3 більше, ніж 2 447 00:26:22,350 --> 00:26:23,440 де дорівнює 2. 448 00:26:23,440 --> 00:26:26,230 І це теж правда. 449 00:26:26,230 --> 00:26:26,730 Так? 450 00:26:26,730 --> 00:26:29,670 >> АУДИТОРІЯ: Ви виконання построчно? 451 00:26:29,670 --> 00:26:30,670 >> DUSTIN TRAN: Так, я. 452 00:26:30,670 --> 00:26:33,900 Так, що я роблю тут сприймає текст document-- 453 00:26:33,900 --> 00:26:39,825 і те, що є великим про RStudio в тому, що Я можу просто запустити short-- ключову ярлик. 454 00:26:39,825 --> 00:26:41,820 Так що я роблю Control-Enter. 455 00:26:41,820 --> 00:26:44,850 >> І потім, я везу рядок у текстовому документі 456 00:26:44,850 --> 00:26:46,710 а потім покласти в консолі. 457 00:26:46,710 --> 00:26:50,800 Так от я й кажу, bounded.compare і я роблю Control-X. 458 00:26:50,800 --> 00:26:52,540 Так що я можу просто запустити тут. 459 00:26:52,540 --> 00:26:54,920 І тоді візьму лінії, а потім помістити його тут. 460 00:26:54,920 --> 00:26:57,900 А потім так само, я можу біжать тут. 461 00:26:57,900 --> 00:27:04,630 І тоді це буде просто тримати визначення лінії в консолі, як, що. 462 00:27:04,630 --> 00:27:10,690 >> І якщо ви також помітите, кучеряве брекети там так само, як в синтаксисі C. 463 00:27:10,690 --> 00:27:13,910 x-- якщо якщо умова також збираєтеся використовувати дужки, а потім 464 00:27:13,910 --> 00:27:15,350 Ви можете використати в іншому місці. 465 00:27:15,350 --> 00:27:17,496 Ще один ще, якщо. 466 00:27:17,496 --> 00:27:21,440 Так що це буде х дорівнює дорівнює, наприклад. 467 00:27:21,440 --> 00:27:24,190 468 00:27:24,190 --> 00:27:26,350 А потім я збираюся повернути щось тут. 469 00:27:26,350 --> 00:27:29,490 >> Зверніть увагу, що є два різних речі, які тут відбувається. 470 00:27:29,490 --> 00:27:34,360 По-перше, тут я з зазначенням повернутися значення ІСТИНА. 471 00:27:34,360 --> 00:27:35,950 Тут я просто кажу х. 472 00:27:35,950 --> 00:27:39,970 Так R буде зазвичай за замовчуванням взяти останній arguments-- 473 00:27:39,970 --> 00:27:43,510 або взяти останній рядок коду, і це буде те, що він повернувся. 474 00:27:43,510 --> 00:27:46,920 Так от, це ж річ, як робити зворотний х. 475 00:27:46,920 --> 00:27:49,450 476 00:27:49,450 --> 00:27:50,540 >> І просто щоб показати вам. 477 00:27:50,540 --> 00:27:54,000 478 00:27:54,000 --> 00:27:57,052 І потім, він буде працювати саме так. 479 00:27:57,052 --> 00:27:58,260 Отже, дозвольте мені продовжити з цим. 480 00:27:58,260 --> 00:28:00,630 >> Так ще, якщо. 481 00:28:00,630 --> 00:28:04,060 І справді, я можу повернутися все, що я хотів би. 482 00:28:04,060 --> 00:28:06,680 Так що я навіть не доведеться Зворотні Логічні весь час, 483 00:28:06,680 --> 00:28:08,410 Я можу просто повернути щось інше. 484 00:28:08,410 --> 00:28:10,670 Так що я можу зробити зворотний ведмедя. 485 00:28:10,670 --> 00:28:12,989 >> Так що, якщо х дорівнює одно, це збирається повернутися ведмедя. 486 00:28:12,989 --> 00:28:14,530 В іншому випадку, це буде повернути TRUE. 487 00:28:14,530 --> 00:28:19,310 Я також можу зробити вектор або дійсно що-небудь. 488 00:28:19,310 --> 00:28:22,210 >> І звичайно в статично типізованих мовах, 489 00:28:22,210 --> 00:28:23,840 ви повинні вказати тип тут. 490 00:28:23,840 --> 00:28:25,750 І зауважте, що це може бути просто що-небудь. 491 00:28:25,750 --> 00:28:32,400 І R досить розумний, що він просто це зробити, і вона буде прекрасно працювати. 492 00:28:32,400 --> 00:28:33,620 >> Отже, дозвольте мені визначити це. 493 00:28:33,620 --> 00:28:39,460 494 00:28:39,460 --> 00:28:41,230 Unexpected-- ех шкода. 495 00:28:41,230 --> 00:28:44,336 Вона повинна бути фігурна дужка тут. 496 00:28:44,336 --> 00:28:44,836 ОК. 497 00:28:44,836 --> 00:28:45,336 Круто. 498 00:28:45,336 --> 00:28:52,580 499 00:28:52,580 --> 00:28:54,530 Добре. 500 00:28:54,530 --> 00:28:58,250 Так що тепер давайте порівняємо 3 і дорівнює 3. 501 00:28:58,250 --> 00:29:01,860 Так воно і повинно return-- yeah-- значення ведмедя. 502 00:29:01,860 --> 00:29:06,740 >> Так що тепер більш загальний Справа в тому, як як щодо інших структур даних. 503 00:29:06,740 --> 00:29:09,110 Так що ви повинні цю функцію. 504 00:29:09,110 --> 00:29:15,360 Це буде працювати на будь-якої вартості, як 3 або будь-яку цифрову, 505 00:29:15,360 --> 00:29:17,500 Іншими словами, в два рази. 506 00:29:17,500 --> 00:29:19,330 >> Але те, що про щось, як вектора. 507 00:29:19,330 --> 00:29:27,750 Так що ж відбувається, якщо ви do-- тому я збирається призначити Вал, скажімо, від 4 до 6. 508 00:29:27,750 --> 00:29:31,640 Так що, якщо я повернуся це, це є вектором з 4, 5, 6. 509 00:29:31,640 --> 00:29:34,935 >> Тепер давайте подивимося, що відбувається якщо я bounded.compare Вал. 510 00:29:34,935 --> 00:29:37,680 511 00:29:37,680 --> 00:29:42,450 Так що це буде давати вам 15 1251. 512 00:29:42,450 --> 00:29:46,440 Отже, іншими словами, це говорить якщо ви подивитеся на цього умови 513 00:29:46,440 --> 00:29:50,040 так він говорить х менше ніж або чогось. 514 00:29:50,040 --> 00:29:51,880 Так що це трохи в оману, оскільки в даний час 515 00:29:51,880 --> 00:29:53,379 ви просто не знаєте, що відбувається. 516 00:29:53,379 --> 00:29:58,690 Так що я думаю, одна річ, яка дійсно добре про просто намагаюся налагоджувати 517 00:29:58,690 --> 00:30:04,600 є те, що ви можете просто зробити Val більше чим і подивитися, що там відбувається. 518 00:30:04,600 --> 00:30:09,720 >> Так val-- за замовчуванням 5 так давайте просто Валь більше, ніж 5. 519 00:30:09,720 --> 00:30:14,280 Так що це вектор БРЕХНЯ БРЕХНЯ ІСТИНА. 520 00:30:14,280 --> 00:30:17,206 Так що тепер, коли ви дивитеся на це, скаже, якщо, 521 00:30:17,206 --> 00:30:20,080 а потім він збирається дати вам це є вектор помилкових помилкових TRUE. 522 00:30:20,080 --> 00:30:23,450 >> Тому, коли ви проходите це в R, R не має ні найменшого уявлення, що ви робите. 523 00:30:23,450 --> 00:30:26,650 Тому що він очікує один сингл значення, яке є логічним, а тепер 524 00:30:26,650 --> 00:30:29,420 Ви даєте йому вектор логічних значень. 525 00:30:29,420 --> 00:30:31,970 Тому за замовчуванням R просто хочу сказати, що, чорт візьми, 526 00:30:31,970 --> 00:30:35,440 Я буду вважати, що ви збирається взяти перший елемент тут. 527 00:30:35,440 --> 00:30:38,320 Так що я збираюся say-- я збираюся припустити, що це невірно. 528 00:30:38,320 --> 00:30:40,890 Так що збирається сказати Ні, це не правильно. 529 00:30:40,890 --> 00:30:45,246 >> Крім того, він збирається бути Val дорівнює дорівнює. 530 00:30:45,246 --> 00:30:47,244 Ні, вибачте 5. 531 00:30:47,244 --> 00:30:48,910 І це також буде хибним, а також. 532 00:30:48,910 --> 00:30:52,410 Так що скаже ні, Це не правда, а тому 533 00:30:52,410 --> 00:30:53,680 збирається повернути цю останню. 534 00:30:53,680 --> 00:30:56,420 535 00:30:56,420 --> 00:31:01,360 >> Так це чи добре чи погано що, залежно від того, як ви його перегляду. 536 00:31:01,360 --> 00:31:05,104 Тому що, коли ви створення цих функцій, 537 00:31:05,104 --> 00:31:06,770 Ви насправді не знаю, що відбувається. 538 00:31:06,770 --> 00:31:10,210 Так що іноді ви хотіли б помилку, або, може бути, ви просто хочете попередження. 539 00:31:10,210 --> 00:31:12,160 У цьому випадку, R не робити. 540 00:31:12,160 --> 00:31:14,300 Так що це дійсно до Ви засновані від того, що 541 00:31:14,300 --> 00:31:17,310 Ви думаєте, що мову повинен робити в цьому випадку 542 00:31:17,310 --> 00:31:22,920 якщо ви проходите у векторі Booleans коли ви робите, якщо умови. 543 00:31:22,920 --> 00:31:31,733 >> Отже, давайте говорити, що у вас оригінал один з тим, якщо ще повертає істину, і ви 544 00:31:31,733 --> 00:31:34,190 збирається повернутися FALSE. 545 00:31:34,190 --> 00:31:39,300 Так один із способів абстрагування це сказати, що я 546 00:31:39,300 --> 00:31:41,530 навіть не потрібно цю умовну річ. 547 00:31:41,530 --> 00:31:47,220 Інша справа, що я можу зробити, це просто повернення самі значення. 548 00:31:47,220 --> 00:31:53,240 Так що, якщо ви помітили, якщо ви Do Val більше, ніж 5, 549 00:31:53,240 --> 00:31:56,350 це збирається повернутися вектор БРЕХНЯ БРЕХНЯ ІСТИНА. 550 00:31:56,350 --> 00:31:58,850 >> Може бути, це те, що ви хочу на bounded.compare. 551 00:31:58,850 --> 00:32:02,940 Ви хочете, щоб повернутися вектор логічних значень, де він порівнює кожне з значень 552 00:32:02,940 --> 00:32:04,190 до себе. 553 00:32:04,190 --> 00:32:11,165 Таким чином, ви можете просто bounded.compare функція х, дорівнює 5. 554 00:32:11,165 --> 00:32:13,322 555 00:32:13,322 --> 00:32:15,363 І тоді замість того, щоб робити це, якщо ще умову, 556 00:32:15,363 --> 00:32:21,430 Я просто хочу, щоб повернутися х більше 5. 557 00:32:21,430 --> 00:32:23,620 Так що, якщо це правда, то це збирається повертатися TRUE. 558 00:32:23,620 --> 00:32:26,830 І потім, якщо це не так, це збирається повернутися FALSE. 559 00:32:26,830 --> 00:32:30,880 >> І це буде працювати для будь-який з цих структур. 560 00:32:30,880 --> 00:32:41,450 Так що я можу bounded.compare з 1 6 або 9 і тоді я буду говорити дорівнює 6, 561 00:32:41,450 --> 00:32:42,799 наприклад. 562 00:32:42,799 --> 00:32:44,840 І тоді це буде дати вам право Boolean 563 00:32:44,840 --> 00:32:48,240 вектор, ви розробляєте. 564 00:32:48,240 --> 00:32:50,660 >> Так що ті просто функції і тепер мені просто 565 00:32:50,660 --> 00:32:54,980 показати вам деякі інтерактивні візуальні ефекти. 566 00:32:54,980 --> 00:32:59,700 Я не думаю, що я насправді є Wi-Fi тут, так що дозвольте мені йти вперед 567 00:32:59,700 --> 00:33:01,970 і пропустити цей я думаю. 568 00:33:01,970 --> 00:33:05,260 >> Але одна річ, яка круто хоча те, що, якщо ви просто 569 00:33:05,260 --> 00:33:09,600 хочете перевірити купу різні команди даних, 570 00:33:09,600 --> 00:33:13,320 є купа різних наборів даних які вже попередньо завантажуються в R. 571 00:33:13,320 --> 00:33:15,770 Таким чином, одна з них називається набір даних ірис. 572 00:33:15,770 --> 00:33:18,910 Це одна з найбільш добре відомих ті, у машинному навчанні. 573 00:33:18,910 --> 00:33:23,350 Ви, як правило, тільки робити якісь тестів, щоб побачити, якщо ваш код працює. 574 00:33:23,350 --> 00:33:27,520 Так що давайте просто перевірити, що райдужна оболонка. 575 00:33:27,520 --> 00:33:33,130 >> Так що ця справа буде бути кадр даних. 576 00:33:33,130 --> 00:33:36,000 І це свого роду довго, тому що Я просто роздрукувати діафрагми. 577 00:33:36,000 --> 00:33:38,810 Це роздрукувавши всю річ. 578 00:33:38,810 --> 00:33:42,830 Так що є всі ці різні назви. 579 00:33:42,830 --> 00:33:45,505 Так діафрагми колекція різних кольорів. 580 00:33:45,505 --> 00:33:48,830 У цьому випадку, це говорить Ви вид з нього, 581 00:33:48,830 --> 00:33:54,760 всі ці різної ширини і Довжини чашолистків і пелюсток. 582 00:33:54,760 --> 00:33:58,880 >> І так нормально, якщо Ви хочете, щоб роздрукувати діафрагми, 583 00:33:58,880 --> 00:34:03,680 Наприклад, ви не хочете, щоб він робити все це, тому що це може взяти на себе 584 00:34:03,680 --> 00:34:05,190 Вся ваша консоль. 585 00:34:05,190 --> 00:34:09,280 Таким чином, одна річ, яка дійсно приємно, функція глава. 586 00:34:09,280 --> 00:34:12,929 Так що, якщо ви просто робите голову ірис, це дасть вам 587 00:34:12,929 --> 00:34:17,389 Перші п'ять рядків, або шість років, я думаю. 588 00:34:17,389 --> 00:34:19,909 І тоді добре, ви можна просто вказати тут. 589 00:34:19,909 --> 00:34:22,914 Так 20-- це дасть Ви перші 20 рядків. 590 00:34:22,914 --> 00:34:24,830 І я насправді був добрий здивований, що це 591 00:34:24,830 --> 00:34:28,770 дав мені шість, тому дозвольте мені йти вперед і перевірте iris-- або голову, вибачте. 592 00:34:28,770 --> 00:34:31,699 593 00:34:31,699 --> 00:34:34,960 І ось він дасть Ви документація 594 00:34:34,960 --> 00:34:37,960 що значення глава робить. 595 00:34:37,960 --> 00:34:40,839 Так вона повертає перший або останній з об'єкта. 596 00:34:40,839 --> 00:34:42,630 А потім я збираюся подивитися на значення за замовчуванням. 597 00:34:42,630 --> 00:34:47,340 І тоді він каже за замовчуванням Метод глава х і н дорівнює 6L. 598 00:34:47,340 --> 00:34:50,620 Так що це повертає перші шість елементів. 599 00:34:50,620 --> 00:34:55,050 І точно так само, якщо ви помітили тут, я не потрібно вказувати N дорівнює 6. 600 00:34:55,050 --> 00:34:56,840 За замовчуванням він використовує шість, я думаю. 601 00:34:56,840 --> 00:35:00,130 І потім, якщо я хочу, щоб вказати впевнений, значення, то я можу подивитися, що добре. 602 00:35:00,130 --> 00:35:02,970 603 00:35:02,970 --> 00:35:10,592 >> Так що кілька простих команд і ось ще один це просто-- добре, 604 00:35:10,592 --> 00:35:12,550 Я can-- це насправді трохи складніше, 605 00:35:12,550 --> 00:35:17,130 але це буде просто взяти клас кожного шпальти райдужної оболонки даних. 606 00:35:17,130 --> 00:35:20,910 Так що це буде показати вам, що кожен з них колонки з точки зору їх типів. 607 00:35:20,910 --> 00:35:23,665 Так чашелістнікі довжина цифровий, чашелістнікі ширина є числовий. 608 00:35:23,665 --> 00:35:26,540 Всі ці значення є лише числовим тому що ви можете сказати з цими даними 609 00:35:26,540 --> 00:35:29,440 структурувати ці всі збираємося числовий. 610 00:35:29,440 --> 00:35:34,310 >> І колона Види буде фактором. 611 00:35:34,310 --> 00:35:37,270 Так нормально, можна подумати, що це як рядок символів. 612 00:35:37,270 --> 00:35:48,830 Але якщо ви просто робите irisSpecies, і тоді я буду робити голову 5, 613 00:35:48,830 --> 00:35:51,820 і це буде роздрукувати з перших п'яти значень. 614 00:35:51,820 --> 00:35:54,150 >> І зверніть увагу на те це рівні. 615 00:35:54,150 --> 00:35:58,870 Так що це saying-- це спосіб R в того, категоріальні змінні. 616 00:35:58,870 --> 00:36:03,765 Таким чином, замість того, щоб просто маючи символьних рядків, 617 00:36:03,765 --> 00:36:06,740 вона має Налаштування рівнів які з цих речей. 618 00:36:06,740 --> 00:36:12,450 >> Отже, давайте говорити irisSpecies 1. 619 00:36:12,450 --> 00:36:17,690 Так що ви хочете зробити тут я підмножини в цій колонці видів. 620 00:36:17,690 --> 00:36:21,480 Так це відбувається Колонка виду і потім 621 00:36:21,480 --> 00:36:23,820 він індексує, щоб отримати перший елемент. 622 00:36:23,820 --> 00:36:27,140 Так що це повинно дати вам setosa. 623 00:36:27,140 --> 00:36:28,710 І це також дає вам рівень тут. 624 00:36:28,710 --> 00:36:32,812 >> Таким чином, ви можете також порівняти це до setosa символів 625 00:36:32,812 --> 00:36:34,645 і це не буде правда, тому що один 626 00:36:34,645 --> 00:36:37,940 це іншого типу, ніж інші. 627 00:36:37,940 --> 00:36:40,590 Або я припускаю, що це правда, тому що R розумніші, ніж це. 628 00:36:40,590 --> 00:36:45,420 І він дивиться на це, а потім каже, може бути, це те, що ви хочете. 629 00:36:45,420 --> 00:36:51,860 Так що скаже характер Рядок setosa є такою ж, як цей. 630 00:36:51,860 --> 00:37:01,290 А потім так само, ви можете також просто захопити ці як так далі. 631 00:37:01,290 --> 00:37:05,580 >> Так що це просто якесь швидких команд, набору даних. 632 00:37:05,580 --> 00:37:08,030 Так ось деякі дослідження даних. 633 00:37:08,030 --> 00:37:11,360 Так що це трохи більше, бере участь в аналізі даних. 634 00:37:11,360 --> 00:37:18,340 І це береться з деяких Bootcamp в R для в Берклі. 635 00:37:18,340 --> 00:37:20,790 >> Так бібліотека іноземної. 636 00:37:20,790 --> 00:37:24,880 Так що я збираюся завантажити в бібліотека, яка називається зовнішньої. 637 00:37:24,880 --> 00:37:32,460 Так що це дасть мені read.dta тому припустимо, що у мене є цей набір даних. 638 00:37:32,460 --> 00:37:39,000 Це зберігається в даний час Робочий каталог моєї консолі. 639 00:37:39,000 --> 00:37:42,190 Отже, давайте подивимося, що робочий каталог. 640 00:37:42,190 --> 00:37:44,620 >> Отже, ось мій робочий каталог. 641 00:37:44,620 --> 00:37:50,040 І читати точкові дані, це річ, каже цей файл 642 00:37:50,040 --> 00:37:54,650 знаходиться в папці даних це поточний робочий каталог. 643 00:37:54,650 --> 00:38:00,520 І read.dta це не Команда за замовчуванням. 644 00:38:00,520 --> 00:38:02,760 Я припускаю, що я завантажив його у вже. 645 00:38:02,760 --> 00:38:04,750 IEI припустив, що я навантажена в уже. 646 00:38:04,750 --> 00:38:08,115 >> Але так read.dta не збирається бути команда за замовчуванням. 647 00:38:08,115 --> 00:38:11,550 І ось чому ви будете мати для завантаження в цій бібліотеці package-- 648 00:38:11,550 --> 00:38:14,500 Цей пакет називається зовнішньої. 649 00:38:14,500 --> 00:38:16,690 І якщо у вас немає Пакет, я думаю, 650 00:38:16,690 --> 00:38:19,180 зовнішня є одним з вбудованих в них. 651 00:38:19,180 --> 00:38:31,150 В іншому випадку, ви можете також зробити install.packages 652 00:38:31,150 --> 00:38:33,180 і це буде встановити пакет. 653 00:38:33,180 --> 00:38:36,878 І це дасть вам Р. Е-е, ні. 654 00:38:36,878 --> 00:38:39,830 655 00:38:39,830 --> 00:38:43,140 А потім я просто хочу, щоб зупинити Це тому, що я вже є. 656 00:38:43,140 --> 00:38:46,920 >> Але те, що дійсно добре про R є те, що управління пакетами 657 00:38:46,920 --> 00:38:48,510 Система дуже елегантно. 658 00:38:48,510 --> 00:38:52,470 Тому що це буде зберігати всі дійсно добре для вас. 659 00:38:52,470 --> 00:38:59,780 Таким чином, в цьому випадку, це буде для зберігання це, я вважаю, ця бібліотека тут. 660 00:38:59,780 --> 00:39:02,390 >> Так в будь-який час ви хочете встановити нові пакети, 661 00:39:02,390 --> 00:39:04,980 це так само просто, як робити install.packages 662 00:39:04,980 --> 00:39:07,500 і R обійдеться всього пакети для вас. 663 00:39:07,500 --> 00:39:12,900 Таким чином, ви не повинні робити щось в Python, де у вас є зовнішній пакет 664 00:39:12,900 --> 00:39:15,330 менеджери як папір Anaconda, де ви 665 00:39:15,330 --> 00:39:18,310 doing-- установки пакети поза Python 666 00:39:18,310 --> 00:39:20,940 а потім спробуйте запустити їх самостійно. 667 00:39:20,940 --> 00:39:22,210 Так що це дійсно хороший спосіб. 668 00:39:22,210 --> 00:39:25,590 >> І install.packages потрібен доступ в Інтернет. 669 00:39:25,590 --> 00:39:31,950 Вона приймає від сервера і сховище, в якому 670 00:39:31,950 --> 00:39:33,960 збирає всі пакети, називається КРАН. 671 00:39:33,960 --> 00:39:40,690 І ви можете визначити, який вид дзеркала Ви хочете, щоб завантажити пакети. 672 00:39:40,690 --> 00:39:43,420 >> Так от, я беру цей набір даних. 673 00:39:43,420 --> 00:39:46,240 Я читаю його за допомогою цієї функції. 674 00:39:46,240 --> 00:39:49,360 Отже, дозвольте мені йти вперед і робити це. 675 00:39:49,360 --> 00:39:52,900 >> Отже, давайте припустимо, що у вас є цей набір даних 676 00:39:52,900 --> 00:39:55,550 і у вас є абсолютно Не знаю, що це таке. 677 00:39:55,550 --> 00:39:58,560 І це насправді відбувається до досить часто в промисловості 678 00:39:58,560 --> 00:40:00,910 де ви просто повинні це тонни і тонни брудної речі 679 00:40:00,910 --> 00:40:02,890 і вони неймовірно немічених. 680 00:40:02,890 --> 00:40:06,380 Так от у мене є це набір даних, і я не знаю, 681 00:40:06,380 --> 00:40:08,400 що це таке, так що я просто показуючи, щоб перевірити його. 682 00:40:08,400 --> 00:40:10,620 >> Так що я збираюся зробити з головою. 683 00:40:10,620 --> 00:40:14,190 Так що я перевірити перші шість колони, що це набір даних. 684 00:40:14,190 --> 00:40:21,730 Так що це держава, pres04, а потім Всі ці різні роду стовпців. 685 00:40:21,730 --> 00:40:25,612 І що цікаво, тут, я думаю, є те, що вам 686 00:40:25,612 --> 00:40:27,945 було б припустити, що це виглядає як свого роду виборів. 687 00:40:27,945 --> 00:40:30,482 688 00:40:30,482 --> 00:40:32,190 І я думаю, тільки з дивлячись на файл 689 00:40:32,190 --> 00:40:41,070 назвати це якийсь колекції даних про кандидатів або виборців 690 00:40:41,070 --> 00:40:44,920 хто голосував за конкретних президентів або президента кандидати 691 00:40:44,920 --> 00:40:46,550 для обрання в 2004 році. 692 00:40:46,550 --> 00:40:52,920 >> Так от значення 1, 2 так один спосіб зберігання 693 00:40:52,920 --> 00:40:56,540 кандидати президент їхні імена. 694 00:40:56,540 --> 00:40:59,780 У цьому випадку, схоже, вони просто цілі значення. 695 00:40:59,780 --> 00:41:04,030 Так 2004 році він був Буш в порівнянні з Керрі я вірю. 696 00:41:04,030 --> 00:41:09,010 А тепер, припустимо, що ви просто не знаєте, Чи 1 відповідає Буша або 2 697 00:41:09,010 --> 00:41:11,703 відповідає Керрі або й так далі, і так далі, чи не так? 698 00:41:11,703 --> 00:41:15,860 >> І це, тільки мені, досить поширена проблема. 699 00:41:15,860 --> 00:41:18,230 Так що ви можете робити в цьому випадку? 700 00:41:18,230 --> 00:41:20,000 Так давайте перевіримо всі ці інші речі. 701 00:41:20,000 --> 00:41:22,790 >> стан, я припускаю, що це приходить з різних держав. 702 00:41:22,790 --> 00:41:25,100 partyid, дохід. 703 00:41:25,100 --> 00:41:27,710 Давайте подивимося на partyid. 704 00:41:27,710 --> 00:41:32,800 Так, може бути, одна річ, ви можете зробити це розглянемо кожен з спостережень 705 00:41:32,800 --> 00:41:36,250 які мають partyid республіканського або демократ або щось. 706 00:41:36,250 --> 00:41:38,170 Так що давайте просто подивимося на те, що partyid є. 707 00:41:38,170 --> 00:41:41,946 >> Так що я збираюся взяти DAT, а потім я йду 708 00:41:41,946 --> 00:41:47,960 зробити це знак долара оператор, що я зробив раніше 709 00:41:47,960 --> 00:41:50,770 і це буде підмножина в цьому стовпці. 710 00:41:50,770 --> 00:41:57,760 А потім я збираюся очолити це 20, просто щоб подивитися, як це виглядає. 711 00:41:57,760 --> 00:42:00,170 >> Так що це просто купа NAS. 712 00:42:00,170 --> 00:42:02,800 Отже, іншими словами, у вас є відсутні дані про ці хлопців. 713 00:42:02,800 --> 00:42:08,100 Але ви також помітите, це DAT partyid є фактором 714 00:42:08,100 --> 00:42:10,030 так що це дає вам різні категорії. 715 00:42:10,030 --> 00:42:14,170 Отже, іншими словами, partyid може зайняти Демократ, республіканець, незалежна, 716 00:42:14,170 --> 00:42:16,640 або щось ще. 717 00:42:16,640 --> 00:42:23,940 >> Так що давайте йти вперед і давайте дізнатися, які з них is-- О, добре. 718 00:42:23,940 --> 00:42:28,480 Так що я збираюся підмножини в partyid, а потім 719 00:42:28,480 --> 00:42:32,780 подивитися на ті, які є Демократ, наприклад. 720 00:42:32,780 --> 00:42:37,150 Це буде давати вам логічний, Величезний Boolean істин і FALSEs. 721 00:42:37,150 --> 00:42:41,630 >> А тепер, давайте говорити, що я хочу подмножеству з цими хлопцями. 722 00:42:41,630 --> 00:42:47,260 Так що це збираюся прийняти мої DAT і підмножина до якого б спостереження 723 00:42:47,260 --> 00:42:48,910 є partyid рівних одно демократ. 724 00:42:48,910 --> 00:42:52,830 725 00:42:52,830 --> 00:42:55,180 І це досить довго, тому що є так багато з них. 726 00:42:55,180 --> 00:42:59,060 Так що тепер, я збираюся очолити це в 20. 727 00:42:59,060 --> 00:43:05,690 728 00:43:05,690 --> 00:43:11,270 >> І, як ви помітили, приймається рівним рівних Цікаво, що ви 729 00:43:11,270 --> 00:43:13,250 already-- ви також включає NAS. 730 00:43:13,250 --> 00:43:19,010 Таким чином, в цьому випадку, ви все одно не можете отримати будь-яка інформація, тому що тепер у вас є NAS 731 00:43:19,010 --> 00:43:22,650 і ви просто хочете, щоб побачити, які з спостереження відповідають демократ 732 00:43:22,650 --> 00:43:24,670 а не ці відсутні себе цінує. 733 00:43:24,670 --> 00:43:27,680 Так як же позбутися від цих ВПЛ? 734 00:43:27,680 --> 00:43:36,410 >> Так от я тільки за допомогою клавішу вгору на моєму курсора, а потім кажуть пересуватися. 735 00:43:36,410 --> 00:43:39,778 А потім ось я просто хочу, сказати is.na datpartyid. 736 00:43:39,778 --> 00:43:48,970 737 00:43:48,970 --> 00:43:52,720 Так це і та буде приймати два різних булеві вектори 738 00:43:52,720 --> 00:43:57,160 і сказати, що це буде ІСТИНА і НЕПРАВДА наприклад. 739 00:43:57,160 --> 00:43:59,190 Так що буде робити цей компонент Мудрий. 740 00:43:59,190 --> 00:44:02,910 Так от я і кажу взяття кадр даних, підмножини 741 00:44:02,910 --> 00:44:10,170 на ті, які відповідають демократ, і видалити будь-який з них, які не є NA. 742 00:44:10,170 --> 00:44:13,540 >> Так що це will-- повинні дати вам щось. 743 00:44:13,540 --> 00:44:16,540 744 00:44:16,540 --> 00:44:17,600 Давайте подивимося, is.na. 745 00:44:17,600 --> 00:44:24,670 746 00:44:24,670 --> 00:44:27,690 Давайте спробуємо is.na datpartyid. 747 00:44:27,690 --> 00:44:36,290 748 00:44:36,290 --> 00:44:45,290 І це повинно дати you-- sorry-- тільки логічне вектор. 749 00:44:45,290 --> 00:44:49,260 І потім, тому що це так довго, Я збираюся підмножина до 20. 750 00:44:49,260 --> 00:44:49,760 ОК. 751 00:44:49,760 --> 00:44:51,570 Так що це має працювати. 752 00:44:51,570 --> 00:44:54,700 >> І на цей раз також буде істин. 753 00:44:54,700 --> 00:45:01,830 Ах, так моя помилка в тому, що I'm-- Я використовувати C ++ і R взаємозамінні, так що я зробити 754 00:45:01,830 --> 00:45:03,590 ця помилка весь час. 755 00:45:03,590 --> 00:45:05,807 І оператор насправді той, який ви хочете. 756 00:45:05,807 --> 00:45:08,140 Ви ж не хочете, щоб використовувати два амперсанди, просто один. 757 00:45:08,140 --> 00:45:14,970 758 00:45:14,970 --> 00:45:17,010 ОК. 759 00:45:17,010 --> 00:45:18,140 >> Отже, давайте подивимося. 760 00:45:18,140 --> 00:45:20,930 761 00:45:20,930 --> 00:45:23,920 Таким чином, ми subsetted в partyid, де вони демократ 762 00:45:23,920 --> 00:45:25,300 і вони не вистачає значень. 763 00:45:25,300 --> 00:45:27,690 А тепер давайте подивимося на які вони голосували. 764 00:45:27,690 --> 00:45:31,530 Так що, схоже, як і більшість з них проголосували за 1. 765 00:45:31,530 --> 00:45:36,090 Так що я збираюся йти вперед і сказати, що Керрі. 766 00:45:36,090 --> 00:45:39,507 >> І точно так само, ви можете також піти в Республіканський 767 00:45:39,507 --> 00:45:41,090 і, сподіваюся, це повинно дати вам 2. 768 00:45:41,090 --> 00:45:49,730 769 00:45:49,730 --> 00:45:51,770 Це просто купа різних колонках. 770 00:45:51,770 --> 00:45:53,070 І справді, це два. 771 00:45:53,070 --> 00:45:55,750 Так partyid всіх республіканських, більшість з них голосують за 2. 772 00:45:55,750 --> 00:45:58,390 >> Так що схоже, просто дивлячись на це, 773 00:45:58,390 --> 00:46:00,600 Республіканський буде very-- або partyid 774 00:46:00,600 --> 00:46:02,790 буде дуже важливим фактором у визначенні 775 00:46:02,790 --> 00:46:05,420 який кандидат вони збирається голосувати. 776 00:46:05,420 --> 00:46:07,120 І це, очевидно, вірно в цілому. 777 00:46:07,120 --> 00:46:10,139 І це відповідає вашому інтуїція, звичайно. 778 00:46:10,139 --> 00:46:11,930 Так що, схоже, як ніби я не вистачає часу, щоб 779 00:46:11,930 --> 00:46:17,040 дозвольте мені йти вперед і показати кілька швидких знімків. 780 00:46:17,040 --> 00:46:21,120 Так от те, що це трохи Чим складніше з візуалізацією. 781 00:46:21,120 --> 00:46:26,450 Таким чином, в цьому випадку, це дуже Простий аналіз просто перевірка, що 782 00:46:26,450 --> 00:46:28,500 Президент '04 є. 783 00:46:28,500 --> 00:46:33,920 >> Таким чином, в цьому випадку, припустимо, що ви хотів відповісти на це питання. 784 00:46:33,920 --> 00:46:38,540 Тому припустимо, що ми хотіли знати голосування поведінку в 2004 виборів президента 785 00:46:38,540 --> 00:46:41,170 і як це залежить від раси. 786 00:46:41,170 --> 00:46:44,380 Так що не тільки ви хочете подивитися поведінку голосування, 787 00:46:44,380 --> 00:46:47,860 але ви хочете, щоб підмножина друг раси і роду резюмувати, що. 788 00:46:47,860 --> 00:46:50,770 І можна тільки сказати, цієї комплексної записи 789 00:46:50,770 --> 00:46:52,580 що це свого роду отримання туманними. 790 00:46:52,580 --> 00:46:56,390 >> Отже, один з більш просунутих R пакети, які також вид недавнє 791 00:46:56,390 --> 00:47:00,070 називається dplyr. 792 00:47:00,070 --> 00:47:03,060 Так що це прямо тут. 793 00:47:03,060 --> 00:47:08,080 І ggg-- ggplot2 просто приємно спосіб зробити краще візуалізації 794 00:47:08,080 --> 00:47:09,400 ніж вбудована в одному. 795 00:47:09,400 --> 00:47:11,108 >> Так що я збираюся завантажити Ці дві бібліотеки. 796 00:47:11,108 --> 00:47:13,200 797 00:47:13,200 --> 00:47:16,950 І потім, я збираюся піти вперед і виконайте наступну команду. 798 00:47:16,950 --> 00:47:19,050 Ви можете розглядати це як чорний ящик. 799 00:47:19,050 --> 00:47:23,460 >> Що відбувається, що цю трубу Оператор проходить у цій суперечці 800 00:47:23,460 --> 00:47:24,110 в тут. 801 00:47:24,110 --> 00:47:28,070 Так що я кажу, групу, DAT Гонка, а потім президентом 04. 802 00:47:28,070 --> 00:47:31,530 І потім, всі ці інші команди фільтруються, а потім підведення підсумків 803 00:47:31,530 --> 00:47:34,081 де я роблю лічильник і то я в змові його тут. 804 00:47:34,081 --> 00:47:39,980 805 00:47:39,980 --> 00:47:42,500 ОК здорово. 806 00:47:42,500 --> 00:47:44,620 Так що давайте йти вперед і см, як це виглядає. 807 00:47:44,620 --> 00:47:52,280 808 00:47:52,280 --> 00:47:57,290 >> Так, що тут відбувається, що я просто нанесені кожної з рас, а потім 809 00:47:57,290 --> 00:47:59,670 які вони голосували. 810 00:47:59,670 --> 00:48:03,492 І ці два різних значення відповідають 2 і 1. 811 00:48:03,492 --> 00:48:05,325 Якщо ви хочете бути більш елегантний, ви також можете 812 00:48:05,325 --> 00:48:11,770 просто вказати, що 2 Kerry-- або 2 Буш, а потім 1 Керрі. 813 00:48:11,770 --> 00:48:13,700 І ви також можете мати що в свою легенду. 814 00:48:13,700 --> 00:48:17,410 >> І ви також можете розділити ці гістограми. 815 00:48:17,410 --> 00:48:19,480 Тому що одна справа що, якщо ви помітили, 816 00:48:19,480 --> 00:48:24,560 це не дуже легко визначити який з цих двох значень більше. 817 00:48:24,560 --> 00:48:27,920 Таким чином, одна річ, яку ви хотіли б зробити, це прийняти цю синю область 818 00:48:27,920 --> 00:48:31,855 і просто перемістити його сюди, щоб ви Можна порівняти ці два пліч-о-пліч. 819 00:48:31,855 --> 00:48:34,480 І я думаю, що це те, що я не було часу, щоб зробити прямо зараз, 820 00:48:34,480 --> 00:48:36,660 але це також дуже легко зробити. 821 00:48:36,660 --> 00:48:40,310 Ви можете просто подивитися в в людино сторінки ggplot. 822 00:48:40,310 --> 00:48:47,170 Таким чином, ви можете просто ggplot як що і читати в цьому довідкової сторінці. 823 00:48:47,170 --> 00:48:51,920 >> Так дозвольте мені швидко показати вам деякі цікаві речі. 824 00:48:51,920 --> 00:48:57,610 Давайте йти вперед і йти to-- тільки Застосування машинного навчання. 825 00:48:57,610 --> 00:49:02,450 Так що давайте, у нас є ці три пакети, так що я збираюся завантажити їх в. 826 00:49:02,450 --> 00:49:05,500 827 00:49:05,500 --> 00:49:09,170 Так що це просто виводить деякі Інформація після того як я завантажений в речі. 828 00:49:09,170 --> 00:49:15,220 Так що я кажу це read.csv, Цей набір даних, і тепер 829 00:49:15,220 --> 00:49:18,940 Я збираюся йти вперед і дивитися і подивитися, що всередині цього набору даних. 830 00:49:18,940 --> 00:49:22,080 >> Таким чином, перші 20 спостережень. 831 00:49:22,080 --> 00:49:27,190 Так що я просто X1, X2, і Y. Таким чином, Схоже, купою цих значень 832 00:49:27,190 --> 00:49:31,640 які, можливо, в межах від 20 до 80 або близько того. 833 00:49:31,640 --> 00:49:37,700 А потім так само для X2, а потім Цей Y мабуть, етикетки 0 і 1. 834 00:49:37,700 --> 00:49:49,500 >> Щоб переконатися в цьому, я можу просто робити зведені дані X1. 835 00:49:49,500 --> 00:49:51,660 А потім так само для всі ці інші стовпці. 836 00:49:51,660 --> 00:49:55,300 Так короткий виклад швидкий спосіб просто показуючи вам швидко значення. 837 00:49:55,300 --> 00:49:56,330 Ех, шкода. 838 00:49:56,330 --> 00:49:58,440 Це треба бути Y. 839 00:49:58,440 --> 00:50:03,420 >> Таким чином, в цьому випадку, дає квантилі, медіана, вичерпаний, а також. 840 00:50:03,420 --> 00:50:07,130 У цьому випадку, dataY, ви можете побачити що це просто буде 0 і 1. 841 00:50:07,130 --> 00:50:10,100 Також середня говорить 0,6, означає лише те, що воно 842 00:50:10,100 --> 00:50:13,380 Схоже, у мене є ще 1с, ніж 0s. 843 00:50:13,380 --> 00:50:16,160 >> Отже, дозвольте мені йти вперед і шоу Ви, як це виглядає. 844 00:50:16,160 --> 00:50:17,470 Так що я просто хочу, щоб побудувати це. 845 00:50:17,470 --> 00:50:22,852 846 00:50:22,852 --> 00:50:24,636 Давайте подивимося, як очистити цей. 847 00:50:24,636 --> 00:50:30,492 848 00:50:30,492 --> 00:50:31,468 Про OK. 849 00:50:31,468 --> 00:50:35,840 850 00:50:35,840 --> 00:50:36,340 ОК. 851 00:50:36,340 --> 00:50:37,590 >> Так що це, як він виглядає. 852 00:50:37,590 --> 00:50:46,310 Так що схоже жовтих Я зазначених 0, а потім червоний я вказав у вигляді 1. 853 00:50:46,310 --> 00:50:52,190 Так от, схоже, точки міток і це 854 00:50:52,190 --> 00:50:56,410 Схоже, ви просто хотіли деякі Сортувати кластеризації з цього питання. 855 00:50:56,410 --> 00:51:01,020 >> І дозвольте мені просто йти вперед і шоу вам деякі з цих вбудованих функцій. 856 00:51:01,020 --> 00:51:03,580 Так ось лм. 857 00:51:03,580 --> 00:51:06,060 Так що це просто намагається щоб відповідати рядок до цього. 858 00:51:06,060 --> 00:51:08,640 Так що кращий спосіб що я можу відповідати лінії таких 859 00:51:08,640 --> 00:51:14,020 що він буде краще розділити Цей вид кластеризації. 860 00:51:14,020 --> 00:51:21,790 А в ідеалі, ви можете просто подивитися що я просто запустити всі ці команди 861 00:51:21,790 --> 00:51:25,450 а потім, я збираюся вперед і додайте рядок. 862 00:51:25,450 --> 00:51:28,970 >> Так це здається найбільш ймовірне припущення. 863 00:51:28,970 --> 00:51:34,150 Це займає найкраще, що зводить до мінімуму Помилка при спробі, щоб відповідати цій лінії. 864 00:51:34,150 --> 00:51:40,000 Очевидно, що це виглядає начебто добре, але це не найкраще. 865 00:51:40,000 --> 00:51:43,130 І лінійні моделі, в взагалі, буде 866 00:51:43,130 --> 00:51:46,811 дійсно відмінно підходить для теорії, так і тільки вид будівельних основ машини 867 00:51:46,811 --> 00:51:47,310 навчання. 868 00:51:47,310 --> 00:51:50,330 Але на практиці, ви збираєтеся хочу зробити щось більш загальне. 869 00:51:50,330 --> 00:51:54,280 >> Таким чином, ви можете просто спробувати запустити те, що називається нейронної мережі. 870 00:51:54,280 --> 00:51:57,110 Ці речі більшого поширення. 871 00:51:57,110 --> 00:52:00,530 І вони просто працюють фантастично для великих наборів даних. 872 00:52:00,530 --> 00:52:07,080 Таким чином, в цьому випадку, ми тільки have-- давайте see-- у нас є nrow. 873 00:52:07,080 --> 00:52:09,010 Так nrow просто говорю число рядків. 874 00:52:09,010 --> 00:52:11,790 Таким чином, в цьому випадку, я є 100 спостережень. 875 00:52:11,790 --> 00:52:15,010 >> Отже, дозвольте мені йти вперед і зробити нейронну мережу. 876 00:52:15,010 --> 00:52:18,620 Так що це дуже приємно тому що я можу тільки сказати, Nnet 877 00:52:18,620 --> 00:52:21,767 а потім я регрес Y. Так Y є те, що колонка. 878 00:52:21,767 --> 00:52:23,850 А потім регрес його на дві інші змінні. 879 00:52:23,850 --> 00:52:27,360 Так що це коротше Позначення X1 і X2. 880 00:52:27,360 --> 00:52:29,741 >> Так що давайте йти вперед і запуску цього. 881 00:52:29,741 --> 00:52:30,240 Ех, шкода. 882 00:52:30,240 --> 00:52:32,260 Мені потрібно, щоб запустити всю цю справу. 883 00:52:32,260 --> 00:52:37,500 І це тільки друк позначення про те, як швидко чи нешвидко вона 884 00:52:37,500 --> 00:52:38,460 сходилися. 885 00:52:38,460 --> 00:52:41,420 Так це виглядає, як це було сходяться. 886 00:52:41,420 --> 00:52:44,970 Отже, дозвольте мені йти вперед і друку , Що це виглядає. 887 00:52:44,970 --> 00:52:51,260 >> См ось картина й тут Контур показує, наскільки добре вона підходить. 888 00:52:51,260 --> 00:52:56,380 І це просто-- ви можете побачити це, що це дуже, дуже приємно. 889 00:52:56,380 --> 00:52:59,400 Це може бути навіть перенавчання, але ви також можете 890 00:52:59,400 --> 00:53:03,390 доводиться це з іншими такі методи, як крос-перевірки. 891 00:53:03,390 --> 00:53:06,180 І це також вбудовані в R. 892 00:53:06,180 --> 00:53:09,170 >> І дозвольте мені показати вам, Машина опорних векторів. 893 00:53:09,170 --> 00:53:12,470 Це ще один дуже поширений Техніка в машинному навчанні. 894 00:53:12,470 --> 00:53:18,550 Це дуже схоже на лінійних моделей, а він використовує те, що називається метод ядра. 895 00:53:18,550 --> 00:53:22,790 І давайте подивимося, як добре, що робить. 896 00:53:22,790 --> 00:53:26,430 Таким чином, це одна дуже схожа на те а Нейронні мережі виконує, 897 00:53:26,430 --> 00:53:27,900 але це набагато більш гладкою. 898 00:53:27,900 --> 00:53:35,740 І це базується з подав що хау SVMs роботу. 899 00:53:35,740 --> 00:53:40,250 >> Так що це просто дуже короткий огляд деяких 900 00:53:40,250 --> 00:53:43,822 з вбудованих функцій ви можете зробити а також деякі з дослідження даних. 901 00:53:43,822 --> 00:53:45,905 Отже, дозвольте мені просто йти вперед і повернутися до слайдів. 902 00:53:45,905 --> 00:53:50,290 903 00:53:50,290 --> 00:53:53,670 >> Так очевидно, що це не надто всеосяжний характер. 904 00:53:53,670 --> 00:53:57,140 І це насправді просто тизер показуючи вам, що ви дійсно можете зробити в R. 905 00:53:57,140 --> 00:53:59,100 Так що якщо ви просто хотів щоб дізнатися більше, тут 906 00:53:59,100 --> 00:54:01,210 купа різних ресурсів. 907 00:54:01,210 --> 00:54:06,890 >> Так що якщо ви любите підручників або ви просто люблю читати речі в Інтернеті, 908 00:54:06,890 --> 00:54:09,670 то це фантастичний один Хедлі Уікхемом, 909 00:54:09,670 --> 00:54:13,010 який також створив все це дійсно здорово пакети. 910 00:54:13,010 --> 00:54:17,420 Якщо ви любите відео, то Berkeley має відмінну буткемп 911 00:54:17,420 --> 00:54:21,060 це several-- це якісь довгі. 912 00:54:21,060 --> 00:54:24,210 І він буде вчити вас майже все, що ви хотіли б знати про R. 913 00:54:24,210 --> 00:54:27,770 >> І точно так само, є Codeacademy і все це іншого роду 914 00:54:27,770 --> 00:54:29,414 інтерактивних веб-сайтів. 915 00:54:29,414 --> 00:54:31,580 Вони також отримують common-- більш і більш поширеним. 916 00:54:31,580 --> 00:54:33,749 Таким чином, це дуже схоже на Codeacademy. 917 00:54:33,749 --> 00:54:35,790 І, нарешті, якщо ви просто хочете співтовариства і допомогти, 918 00:54:35,790 --> 00:54:38,800 це купа речі, які ви можете піти. 919 00:54:38,800 --> 00:54:40,880 Очевидно, що ми досі використовувати поштові розсилки, просто 920 00:54:40,880 --> 00:54:44,860 як і майже всі інші мова програмування спільноти. 921 00:54:44,860 --> 00:54:47,880 І #rstats, це Наше співтовариство Twitter. 922 00:54:47,880 --> 00:54:49,580 Це насправді досить поширеним явищем. 923 00:54:49,580 --> 00:54:50,850 І тоді користувач! 924 00:54:50,850 --> 00:54:52,340 Це просто наша конференція. 925 00:54:52,340 --> 00:54:55,390 >> І тоді, звичайно, ви можете використовувати всі ці інші Q & A речі, 926 00:54:55,390 --> 00:54:57,680 як переповнення стека, Google, а потім GitHub. 927 00:54:57,680 --> 00:55:00,490 Оскільки більшість з цих пакетів і багато спільноти 928 00:55:00,490 --> 00:55:03,420 буде зосереджена навколо розробки Код, бо це з відкритим вихідним кодом. 929 00:55:03,420 --> 00:55:05,856 І це дуже-дуже хороший на GitHub. 930 00:55:05,856 --> 00:55:08,730 І, нарешті, ви можете зв'язатися зі мною, якщо ви просто є які-небудь простих питань. 931 00:55:08,730 --> 00:55:13,530 Таким чином, ви можете знайти мене на Twitter тут, мій сайт, і тільки мою адресу електронної пошти. 932 00:55:13,530 --> 00:55:17,840 Так, ми сподіваємося, що було something-- тільки короткий тизер 933 00:55:17,840 --> 00:55:20,900 чого R дійсно здатний. 934 00:55:20,900 --> 00:55:23,990 І ми сподіваємося, Ви просто перевірити ці три посилання 935 00:55:23,990 --> 00:55:25,760 і подивитися, що можна зробити ще більше. 936 00:55:25,760 --> 00:55:28,130 І я думаю, що це якраз про це. 937 00:55:28,130 --> 00:55:28,630 Спасибо. 938 00:55:28,630 --> 00:55:30,780 >> [Оплески] 939 00:55:30,780 --> 00:55:31,968