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 Дъстин 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 учене алгоритъм, наречен Random Forest или дърво на решенията, 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 на променливата Val. 135 00:07:47,250 --> 00:07:50,160 >> И тогава аз съм отпечатване Вал и след това да го отпечатва три. 136 00:07:50,160 --> 00:07:53,920 По подразбиране в R преводач, той ще отпечата неща за вас 137 00:07:53,920 --> 00:07:57,280 така че не е нужно да се уточни отпечатате Вал всеки път, когато искате да отпечатате нещо. 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, сла е функция. 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 Така че вие ​​ще трябва да добавите Вашите номера от столицата L. 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'S след или по време на нея 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-- толкова вярно и неверни, и те са 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 Така че в началото, I съм като един 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 Това ще повторя TRUE три пъти. 224 00:13:09,680 --> 00:13:12,900 Така че това ще ви даде вектор Правилно, правилно TRUE. 225 00:13:12,900 --> 00:13:17,470 >> Rep FALSE 4-- това ще ви даде вектор на фалшиви, неверни, фалшиви, неверни. 226 00:13:17,470 --> 00:13:21,280 И тогава в ще се слеят тези две Booleans заедно. 227 00:13:21,280 --> 00:13:24,090 Така вие ще получите три TRUEs и след четири FALSEs. 228 00:13:24,090 --> 00:13:28,460 >> Така че, когато индекса валс, че си Ще получите Правилно, правилно вярно. 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 и повторете FALSE 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 Така че просто ще игнорира, че четвъртото FALSE. 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 >> И така, на векторни заданието Тук се показва на Vals 1-2. 254 00:14:53,910 --> 00:14:59,290 Така че е необходимо първите два елемента на валс и след това да ги възлага 0. 255 00:14:59,290 --> 00:15:03,940 И след това, можете да просто правя на Подобно нещо с Booleans. 256 00:15:03,940 --> 00:15:09,340 >> Така валс не е равно на 0-- тази воля ви дам един вектор FALSE, FALSE, TRUE 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 Той ги добавя компонент-мъдър, така това е един плюс 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 Така че това е фалшиви фалшиви вярно в това 1 случай, защото не е по-голяма от 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 или това, което се нарича продуктът Hadamard. 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 A данни рамка можеш да се сетиш, както матрица, но всеки самата колона 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 >> Накрая, така че те по същество са просто четирите основни обекти в Списък R. 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 >> LM е функция, която Просто прави линеен модел. 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 >> Така че нека да вървим напред и шоу някои демо на използване R. 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 Така че по подобен начин, можете да получите тази конзола сурово само чрез правене на капитала R. 389 00:23:02,160 --> 00:23:05,630 И това е точно същото като на конзолата. 390 00:23:05,630 --> 00:23:12,210 Така че аз може просто да направи ID функция х, х, х. 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 здравей. 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 можете да направите връщане ID на X, така че се връща 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 Така че аз съм проверка, ако ID на х равнява се равнява на х и предизвестие 415 00:24:38,350 --> 00:24:39,760 че тя дава две TRUEs. 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 Не, това не е толкова невярно. 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 >> Дъстин 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 Един от тях е, че тук съм уточняват връща стойност TRUE. 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 Така че аз дори не трябва да се връщане Booleans през цялото време, 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 OK. 497 00:28:44,836 --> 00:28:45,336 Cool. 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 е, че можете просто да направите Вал е по-голяма от една и да видим какво се случва там. 518 00:30:04,600 --> 00:30:09,720 >> Така val-- а е по подразбиране 5 така нека просто да Val-голямо от 5. 519 00:30:09,720 --> 00:30:14,280 Така че това е вектор фалшиви фалшиви TRUE. 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 Ако пък го дава вектор на Booleans. 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 >> Така че нека да кажем, че сте имали оригинала един с друг, ако се върне TRUE и сте 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 Така че, ако забележите, ако направя Вал е по-голям от 5, 549 00:31:53,240 --> 00:31:56,350 това ще се върне вектор фалшиви фалшиви TRUE. 550 00:31:56,350 --> 00:31:58,850 >> Може би това е, което ви искам за bounded.compare. 551 00:31:58,850 --> 00:32:02,940 Вие искате да се върнете вектор на Booleans където всеки от сравнява стойностите 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 И след това ще ви даде правилната Булев 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 И по същия начин, ако забележите тук, I не трябва да се уточни, п е 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 >> Така, че е някои прости команди и ето още един, който е just-- добре, 604 00:35:10,592 --> 00:35:12,550 I 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 И това ще ви даде R. Uh, не. 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 г., е Bush спрямо Kerry Вярвам. 696 00:41:04,030 --> 00:41:09,010 И сега, да речем, че просто не знам дали 1 отговаря на гъсталак или 2 697 00:41:09,010 --> 00:41:11,703 съответства на Kerry или и така нататък и така нататък, нали? 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 >> Така че това е просто един куп национални агенции. 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 да вземете Демократ, републиканец, Independent, 716 00:42:14,170 --> 00:42:16,640 или нещо друго. 717 00:42:16,640 --> 00:42:23,940 >> Така че нека да вървим напред и нека видим кои от тях is-- О, OK. 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 Това ще ви даде Булева, огромен Булева на TRUEs и 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-- сте в това число и на националните агенции. 730 00:43:13,250 --> 00:43:19,010 Така че в този случай, че все още не може да се получи всякаква информация, защото сега имате Националните агенции 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 OK. 751 00:44:49,760 --> 00:44:51,570 Така че това трябва да работи. 752 00:44:51,570 --> 00:44:54,700 >> И това също ще бъде TRUEs. 753 00:44:54,700 --> 00:45:01,830 Аха, значи грешка ми тук е, че I'm-- I използвате C ++ и R взаимозаменяемо така правя 754 00:45:01,830 --> 00:45:03,590 тази грешка през цялото време. 755 00:45:03,590 --> 00:45:05,807 The и оператора е Всъщност това, което желаете. 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 OK. 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 OK готино. 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 Така че това просто отпечатва някои информация след I зареден в нещо. 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 >> Така че в този случай, постанови quantiles, медианите maxes, както добре. 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 Изглежда, че имам повече от 1s 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 OK. 851 00:50:36,340 --> 00:50:37,590 >> Така че това е това, което изглежда. 852 00:50:37,590 --> 00:50:46,310 Така че изглежда като жълти I, посочени като 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 Така че тук е LM. 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 И това е just-- можете да видите това, че това е много, много хубаво. 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 И това е на базата на разстояние на what-- как 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 то това е фантастична един от Hadley Уикъм, 909 00:54:09,670 --> 00:54:13,010 който също създаде всичко това наистина готино пакети. 910 00:54:13,010 --> 00:54:17,420 Ако сте любители на видео, а след това Berkeley има едно страхотно Bootcamp 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 като Stack Overflow, 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