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 Вот 2 раза пи. 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 Так что это 1 раз 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 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 И в самом деле, это 2. 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