1 00:00:00,000 --> 00:00:05,691 2 00:00:05,691 --> 00:00:07,690 Конър HARRIS: Still I че някои вълнуващо видео 3 00:00:07,690 --> 00:00:12,570 произведена от професионална консултация който използва R много в работата си. 4 00:00:12,570 --> 00:00:16,329 >> Разказвач: Какво се крие зад статистиката, на анализи и визуализациите 5 00:00:16,329 --> 00:00:19,770 че днешните учени-ярките данни и бизнес лидери разчитат на 6 00:00:19,770 --> 00:00:22,012 да направи мощни решения? 7 00:00:22,012 --> 00:00:23,540 Вие не може винаги да го видите. 8 00:00:23,540 --> 00:00:24,790 Но това е там. 9 00:00:24,790 --> 00:00:29,460 Тя се нарича R, с отворен код r-- на Статистически програмен език 10 00:00:29,460 --> 00:00:32,630 че експерти на данни в света повече от употреба за всичко 11 00:00:32,630 --> 00:00:35,350 от картографиране широка социална и маркетингови тенденции онлайн 12 00:00:35,350 --> 00:00:39,210 за развитието на финансовия и климат модели, които помагат на двигател за икономиките ни 13 00:00:39,210 --> 00:00:40,780 и общности. 14 00:00:40,780 --> 00:00:44,910 >> Но какво точно е R и откъде да започне R? 15 00:00:44,910 --> 00:00:48,620 Ами първоначално, R започна тук с двама професори 16 00:00:48,620 --> 00:00:51,950 които искаха по-добра статистическа платформа за своите ученици. 17 00:00:51,950 --> 00:00:56,030 Така те създават една моделирани след статистическата език S. 18 00:00:56,030 --> 00:01:00,480 Те, наред с много други, държат на работа и използването на R, 19 00:01:00,480 --> 00:01:05,489 създаване на инструменти за R и намиране нови приложения за R всеки ден. 20 00:01:05,489 --> 00:01:07,750 >> Благодарение на това е в световен мащаб усилия на общността, 21 00:01:07,750 --> 00:01:11,850 R продължиха да нарастват с хиляди на създадени от потребителя библиотеки, построени 22 00:01:11,850 --> 00:01:15,500 да се подобри функционалността на R и валидиране на качеството на тълпата 23 00:01:15,500 --> 00:01:19,740 и подкрепа от най-признатите индустриални лидери във всяка област, които 24 00:01:19,740 --> 00:01:25,040 използва R. Което е страхотно, защото R е най-добрият в това, което прави. 25 00:01:25,040 --> 00:01:28,540 Талантливи млади експерти бързо и лесно се тълкува, взаимодействат с, 26 00:01:28,540 --> 00:01:33,790 и визуализиране на данни, показващ тяхната бързо нарастващата общност на R потребители по целия свят 27 00:01:33,790 --> 00:01:36,380 и да видим как с отворен код R продължава да оформя 28 00:01:36,380 --> 00:01:39,340 бъдеще на статистическа анализ и науката данни. 29 00:01:39,340 --> 00:01:44,660 30 00:01:44,660 --> 00:01:47,710 >> Конър HARRIS: OK, страхотно. 31 00:01:47,710 --> 00:01:50,360 Така че моята собствена презентация ще бъде малко по-трезвен. 32 00:01:50,360 --> 00:01:54,380 Той не включва толкова вълнуваща музика за фон. 33 00:01:54,380 --> 00:01:59,160 Но както видяхте във видеото, R е нещо на общ език за програмиране цел. 34 00:01:59,160 --> 00:02:03,720 Но то е създадено най-вече за статистическата работа. 35 00:02:03,720 --> 00:02:07,980 >> Така че той е проектиран за статистиката, за анализ на данните, за извличане на данни. 36 00:02:07,980 --> 00:02:12,420 И така можете да видите това в много избор на дизайн, че създателите на R 37 00:02:12,420 --> 00:02:13,320 направено. 38 00:02:13,320 --> 00:02:15,472 Той е проектиран за до голяма степен, хора, които не са 39 00:02:15,472 --> 00:02:17,930 експерти в програмирането, които са просто бране на програмиране 40 00:02:17,930 --> 00:02:23,460 на страната, така че те могат да вършат своята работа в социалните науки или в областта на статистиката 41 00:02:23,460 --> 00:02:25,440 или нещо такова. 42 00:02:25,440 --> 00:02:27,850 >> Тя има много много важни разлики от C. 43 00:02:27,850 --> 00:02:33,200 Но синтаксиса и парадигмите че той използва широко са еднакви. 44 00:02:33,200 --> 00:02:36,830 И трябва да се чувстват доста у дома правото на разстояние бухалката. 45 00:02:36,830 --> 00:02:38,520 Това е наложително език. 46 00:02:38,520 --> 00:02:40,260 >> Не се притеснявайте твърде много за това ако не знаете този термин. 47 00:02:40,260 --> 00:02:42,676 Но има разлика между наложително, декларативно, 48 00:02:42,676 --> 00:02:43,810 и функционални. 49 00:02:43,810 --> 00:02:47,600 Наложително просто означава, че можете да отчети, които са основно команди. 50 00:02:47,600 --> 00:02:52,340 И тогава преводачът или компютър тях следва една по една. 51 00:02:52,340 --> 00:02:56,630 Той е слабо написали, има Не декларации тип в R. 52 00:02:56,630 --> 00:02:59,130 >> И след това линиите между различни видове 53 00:02:59,130 --> 00:03:03,920 са малко повече, отколкото в насипно състояние те са в ° С, например. 54 00:03:03,920 --> 00:03:06,450 И както казах има много широки възможности 55 00:03:06,450 --> 00:03:15,610 за графики, за статистическа анализ, за ​​извличане на данни. 56 00:03:15,610 --> 00:03:19,540 Това са двата вградени в език и, като видеото каза, 57 00:03:19,540 --> 00:03:23,680 хиляди библиотеки на трети страни, които можете да изтеглите и използвате безплатно 58 00:03:23,680 --> 00:03:25,340 с много либерални условия за лицензии. 59 00:03:25,340 --> 00:03:28,800 60 00:03:28,800 --> 00:03:31,500 >> Така че като цяло, бих препоръчал че се вгледате в тези две книги 61 00:03:31,500 --> 00:03:34,610 ако ти започваш да работят на R. One от тях е официален R начинаещи 62 00:03:34,610 --> 00:03:35,110 направлява. 63 00:03:35,110 --> 00:03:38,660 Той е поддържан от основните разработчици на R. 64 00:03:38,660 --> 00:03:42,400 Можете да го изтеглите отново, свободен от зареждате и законно в тази връзка съществува. 65 00:03:42,400 --> 00:03:45,430 66 00:03:45,430 --> 00:03:49,869 Всички тези слайдове ще отидат нагоре в интернет, на CS50 сайт 67 00:03:49,869 --> 00:03:50,660 След това се прави. 68 00:03:50,660 --> 00:03:53,690 Така че няма нужда да копирате нещата надолу трескаво. 69 00:03:53,690 --> 00:03:56,800 >> Другият е учебник по Козма Shalizi, 70 00:03:56,800 --> 00:04:00,100 който е професор в статистиката Carnegie Mellon, наречена Advanced Data 71 00:04:00,100 --> 00:04:02,160 Анализ от Начални Гледна точка. 72 00:04:02,160 --> 00:04:04,010 Това не е основно на R книга. 73 00:04:04,010 --> 00:04:07,130 Това е една книга, статистика и това е анализ на данните книга. 74 00:04:07,130 --> 00:04:11,990 Но това е много достъпна за хора, които имат поне малко статистика знания. 75 00:04:11,990 --> 00:04:13,750 >> Аз никога не са взели официално разбира се. 76 00:04:13,750 --> 00:04:17,269 Просто знам, бита и парчета от различни съюзнически теми 77 00:04:17,269 --> 00:04:18,579 че съм направил курсове инча 78 00:04:18,579 --> 00:04:21,839 И аз бях в състояние да се разбере то много добре. 79 00:04:21,839 --> 00:04:25,630 >> Всички са дадени цифрите в R. Те са изработени в R 80 00:04:25,630 --> 00:04:30,280 и те също имат кодови обяви под всяка цифра, която ви кажа 81 00:04:30,280 --> 00:04:33,270 как се правят всяка фигура с R-код. 82 00:04:33,270 --> 00:04:37,400 И това е много полезно, ако която се опитвате да подражават 83 00:04:37,400 --> 00:04:38,650 някоя личност, което виждате в една книга. 84 00:04:38,650 --> 00:04:47,840 >> И отново за сваляне безплатно stat.cmu.edu/cshalizi/ Съжаляваме, 85 00:04:47,840 --> 00:04:50,230 че трябва да се намали Тилда cshalizi. 86 00:04:50,230 --> 00:04:53,150 Ще се погрижа да се коригира, че когато официалните слайдовете вървят нагоре. 87 00:04:53,150 --> 00:04:57,000 / ADAfaEPoV който е само на акроним на заглавието на книгата. 88 00:04:57,000 --> 00:04:59,850 89 00:04:59,850 --> 00:05:02,500 >> Така че като цяло caveats-- R има много възможности. 90 00:05:02,500 --> 00:05:05,331 Аз само ще бъде в състояние да покрие повърхността на много неща. 91 00:05:05,331 --> 00:05:08,580 Също като първата част на семинара ще бъде нещо като сметище данни. 92 00:05:08,580 --> 00:05:11,437 Аз съм доста съжалявам за това. 93 00:05:11,437 --> 00:05:13,770 По принцип, аз отивам да се ви запозная с много неща 94 00:05:13,770 --> 00:05:15,350 правото на разстояние бухалката, ще възможно най-бързо. 95 00:05:15,350 --> 00:05:17,058 И тогава стигаме до най-забавната част, което е 96 00:05:17,058 --> 00:05:20,570 демото, където мога да ви покажа всичко че сме говорили за по екрана. 97 00:05:20,570 --> 00:05:23,321 И вие можете да си поиграете на собствения си. 98 00:05:23,321 --> 00:05:26,070 Така че там ще бъде много технически неща се изхвърля нагоре от тук. 99 00:05:26,070 --> 00:05:28,060 Не се притеснявайте за копиране на всички, че надолу. 100 00:05:28,060 --> 00:05:31,740 Тъй като A, можете да получите всички неща на сайта на CS50-късно. 101 00:05:31,740 --> 00:05:37,780 И B, това не е наистина толкова важно да запомни това от слайдовете. 102 00:05:37,780 --> 00:05:40,462 По-важно е, че можете да получите някои интуитивен съоръжение с него 103 00:05:40,462 --> 00:05:44,220 и че идва от само играя наоколо. 104 00:05:44,220 --> 00:05:45,720 >> Така че защо да използвате R? 105 00:05:45,720 --> 00:05:49,440 По принцип, ако имате проект, който включва добив на големи масиви от данни, информация 106 00:05:49,440 --> 00:05:52,664 визуализация, вие трябва да използвате R. Ако сте 107 00:05:52,664 --> 00:05:55,830 правене на сложни статистически анализи, че би било трудно в Excel, 108 00:05:55,830 --> 00:05:58,010 например, би да бъдат също good-- 109 00:05:58,010 --> 00:06:00,506 ако правиш статистическа анализ, който е автоматизирано. 110 00:06:00,506 --> 00:06:02,130 Нека кажем, че поддържането на интернет страница. 111 00:06:02,130 --> 00:06:06,320 И искате да прочетете дневника на сървъра всеки ден и събират някои списък, 112 00:06:06,320 --> 00:06:10,320 като най-добрите страни, които Вашите потребители идват, 113 00:06:10,320 --> 00:06:15,100 някои обобщени статистически данни за колко време те харчат за вашия сайт или каквото. 114 00:06:15,100 --> 00:06:16,910 И вие искате да стартирате това всеки ден. 115 00:06:16,910 --> 00:06:20,280 >> Сега, ако правиш това в Excel, ще трябва да отидете на вашия сървър лог, 116 00:06:20,280 --> 00:06:23,490 внасят, че в едно Таблица Excel данни, 117 00:06:23,490 --> 00:06:24,910 тече всички анализа ръчно. 118 00:06:24,910 --> 00:06:27,100 С R, можете да напишете един скрипт просто. 119 00:06:27,100 --> 00:06:29,520 График тя да тече всеки ден от вашата операционна система. 120 00:06:29,520 --> 00:06:33,657 И след това всяка вечер в 2:00 AM, или когато сте го планирате да тичам, 121 00:06:33,657 --> 00:06:35,990 тя ще изглежда през вашия интернет трафик за този ден. 122 00:06:35,990 --> 00:06:39,010 И тогава, като на следващия ден, вие ще получите този лъскав, нов доклад 123 00:06:39,010 --> 00:06:41,710 или каквото и с всички информация, която поиска. 124 00:06:41,710 --> 00:06:44,960 125 00:06:44,960 --> 00:06:50,217 >> Така че основно R е за Cisco програмиране в сравнение Cisco анализ. 126 00:06:50,217 --> 00:06:51,050 Предварително е направено. 127 00:06:51,050 --> 00:06:53,104 Нека влязат в истинските неща. 128 00:06:53,104 --> 00:06:55,020 Така че има три недвижими типове в езика. 129 00:06:55,020 --> 00:06:56,120 Има цифров тип. 130 00:06:56,120 --> 00:07:01,250 Има нещо като разлика между числа и плаващи точки, 131 00:07:01,250 --> 00:07:02,769 но не съвсем. 132 00:07:02,769 --> 00:07:04,560 Има един герой написали, което е струни. 133 00:07:04,560 --> 00:07:07,100 И има логична написали, което е Булев тип. 134 00:07:07,100 --> 00:07:11,080 >> И вие можете да конвертирате между типове използването на тези функции, цифров, 135 00:07:11,080 --> 00:07:15,220 като характер, като логично. 136 00:07:15,220 --> 00:07:17,510 Ако се обадите, например, с цифри, като на низ, 137 00:07:17,510 --> 00:07:20,030 тя ще се опита да прочете, че низ като брой, по същия начин, 138 00:07:20,030 --> 00:07:25,897 че a2i и scanf направи, и C. Ако ти се обадя като числова на истина или лъжа 139 00:07:25,897 --> 00:07:26,980 тя ще се превърнат в 1 или 0. 140 00:07:26,980 --> 00:07:29,110 Ако се обадите по характер за всичко това ще 141 00:07:29,110 --> 00:07:32,550 конвертирате, че в низ. 142 00:07:32,550 --> 00:07:34,990 >> И тогава там са вектори и матрици. 143 00:07:34,990 --> 00:07:37,580 Така вектори са основно 1 масиви. 144 00:07:37,580 --> 00:07:40,600 Те са това, което ние наричаме масиви в C. Матрици, 2 масиви. 145 00:07:40,600 --> 00:07:42,350 И след това по-висока масиви можете да 146 00:07:42,350 --> 00:07:48,560 има 3, 4, 5 или каквото и размери на числови стойности, от низове, 147 00:07:48,560 --> 00:07:52,860 на логическите стойности. 148 00:07:52,860 --> 00:07:55,380 >> Можете също така да разполагат със списъци, които са един вид асоциативен масив. 149 00:07:55,380 --> 00:07:57,390 Аз ще вляза в тази малко. 150 00:07:57,390 --> 00:07:59,390 Така че едно важно нещо че хората пътувания в R 151 00:07:59,390 --> 00:08:01,470 е, че не са налице реални, чисти атомни видове. 152 00:08:01,470 --> 00:08:05,870 Няма никаква разлика между действителното редица, като числова стойност, 153 00:08:05,870 --> 00:08:07,920 както и списък на числови стойности. 154 00:08:07,920 --> 00:08:12,370 Числени стойности са всъщност Същото като вектори на дължина 1. 155 00:08:12,370 --> 00:08:14,959 И това има редица важни последици. 156 00:08:14,959 --> 00:08:17,500 One, това означава, че можете да направите нещата много лесно, които включват 157 00:08:17,500 --> 00:08:21,037 като добавяне на номер към вектор. 158 00:08:21,037 --> 00:08:23,120 R ще основно фигура какво искаш да кажеш с това. 159 00:08:23,120 --> 00:08:24,610 И аз ще стигнем до това в секунда. 160 00:08:24,610 --> 00:08:27,930 Това означава също така, че няма начин за типа checker-- до степен 161 00:08:27,930 --> 00:08:30,530 че нещо подобно съществува в r-- да кажа 162 00:08:30,530 --> 00:08:33,780 когато сте преминали в единния стойност когато тя очаква масив или обратното. 163 00:08:33,780 --> 00:08:39,159 И това може да доведе до някои странни проблеми, които се натъкнах, когато 164 00:08:39,159 --> 00:08:42,252 Бях с R по време на моята работа през лятото. 165 00:08:42,252 --> 00:08:43,710 И няма никакви смесен тип масиви. 166 00:08:43,710 --> 00:08:46,543 Така че не може да има множество бяха Първите елементи се, аз не знам, 167 00:08:46,543 --> 00:08:49,332 низа "John" и Вторият елемент е номер 42. 168 00:08:49,332 --> 00:08:52,540 Ако се опитаме да направим това, тогава вие ще получите всичко просто се превръща в низ. 169 00:08:52,540 --> 00:08:54,760 Така че ние имаме низ John, низ 42. 170 00:08:54,760 --> 00:08:58,250 171 00:08:58,250 --> 00:09:02,025 >> Така необичайно синтактична features-- най- на R синтаксис е много подобен на C. 172 00:09:02,025 --> 00:09:04,690 Има няколко важни разлики. 173 00:09:04,690 --> 00:09:05,620 Писането е много слаб. 174 00:09:05,620 --> 00:09:07,360 Така че няма никакви декларации на променливи. 175 00:09:07,360 --> 00:09:12,670 Възлагане използва странното Операторът грешка по-малко от тире. 176 00:09:12,670 --> 00:09:15,340 Коментари са с марката на хеш. 177 00:09:15,340 --> 00:09:19,230 Предполагам, че сега дни ние го наричаме таг макар, че не е наистина не accurate-- 178 00:09:19,230 --> 00:09:21,810 двойната черта. 179 00:09:21,810 --> 00:09:24,710 >> Остатъци Модулни са с %% знаци. 180 00:09:24,710 --> 00:09:30,172 Integer разделение е с% /%, което е много трудно да се чете, когато е проектирана 181 00:09:30,172 --> 00:09:30,880 на екрана. 182 00:09:30,880 --> 00:09:34,150 183 00:09:34,150 --> 00:09:37,200 Можете да получите диапазони на числа с дебелото черво. 184 00:09:37,200 --> 00:09:41,840 Така че 2,5 ще ви дам един вектор на всички числа от 2 до 5. 185 00:09:41,840 --> 00:09:44,530 >> Масивите са една-индексирани, които винтове много хора 186 00:09:44,530 --> 00:09:47,540 нагоре, ако те са от по- типични езици за програмиране, 187 00:09:47,540 --> 00:09:50,450 като C, където най- нещата са нулеви индексирани. 188 00:09:50,450 --> 00:09:54,420 Отново, това е мястото, където R е наследство като език за подобно не 189 00:09:54,420 --> 00:09:56,560 професионални програмисти идва инча 190 00:09:56,560 --> 00:09:59,680 Ако сте социолог или икономист или нещо 191 00:09:59,680 --> 00:10:01,980 и вие се опитвате да използвате R основно като допълнение 192 00:10:01,980 --> 00:10:03,832 да си по-важен професионална работа, 193 00:10:03,832 --> 00:10:06,040 започваш да се намери една индексиране на малко по-естествено. 194 00:10:06,040 --> 00:10:09,890 Тъй като започнете да броим към 1 в ежедневието, а не 0. 195 00:10:09,890 --> 00:10:13,260 >> За-линии, това е подобно на на foreach изгради в PHP, 196 00:10:13,260 --> 00:10:17,090 които вие ще получите, за да научите in-- съвсем скоро. 197 00:10:17,090 --> 00:10:22,540 Кое е за стойност в вектор и След това можете да правите неща с стойност. 198 00:10:22,540 --> 00:10:24,040 АУДИТОРИЯ: Това е дошъл в лекция. 199 00:10:24,040 --> 00:10:26,248 Конър HARRIS: О, това е излезе лекция, отлична. 200 00:10:26,248 --> 00:10:29,815 АУДИТОРИЯ: Заданието, че е трябва да се отбележи, от дясно на ляво? 201 00:10:29,815 --> 00:10:31,440 Конър HARRIS: От дясно на ляво, да. 202 00:10:31,440 --> 00:10:34,720 Можете да мислите за него като стойността на правото блъсна в променливата 203 00:10:34,720 --> 00:10:36,240 наляво. 204 00:10:36,240 --> 00:10:36,781 АУДИТОРИЯ: OK. 205 00:10:36,781 --> 00:10:39,770 206 00:10:39,770 --> 00:10:42,330 >> Конър HARRIS: И накрая синтактична функция е малко странно. 207 00:10:42,330 --> 00:10:48,460 Имате на Mt. на името на функцията, назначена към тази дума функция, следван 208 00:10:48,460 --> 00:10:51,530 от всички аргументи и след това тяло на функцията след това. 209 00:10:51,530 --> 00:10:53,280 Отново тези неща може изглежда малко странно. 210 00:10:53,280 --> 00:10:57,181 Те ще станат втора природа след работите с езика за малко. 211 00:10:57,181 --> 00:10:58,930 Така вектори, начина можете конструира вектор 212 00:10:58,930 --> 00:11:04,550 е ли тип C, което е ключова дума, а след това всички числа, които искате или струни 213 00:11:04,550 --> 00:11:06,490 или нещо такова. 214 00:11:06,490 --> 00:11:07,995 Аргументите да бъдат вектори. 215 00:11:07,995 --> 00:11:09,620 Но в резултат на масива получава повален. 216 00:11:09,620 --> 00:11:14,385 Така че не може да има масиви, където е някои елементи са единични номера 217 00:11:14,385 --> 00:11:17,010 и някои елементи са самите масиви. 218 00:11:17,010 --> 00:11:20,010 >> Така че, ако се опитате да се конструира масив са първият елемент е 4 219 00:11:20,010 --> 00:11:22,370 и вторият елемент е 3,5 масив ще 220 00:11:22,370 --> 00:11:25,890 просто се три елемента масив, 4,3,5. 221 00:11:25,890 --> 00:11:27,760 Те не може да бъде от смесен тип. 222 00:11:27,760 --> 00:11:32,290 Ако се опитате да четат или пишат извън пределите на вектор 223 00:11:32,290 --> 00:11:36,640 вие ще получите тази стойност, наречена NA а което е съкращение от липсваща стойност. 224 00:11:36,640 --> 00:11:39,900 Това е предназначено за като статистици, които 225 00:11:39,900 --> 00:11:43,080 Работим с непълни данни. 226 00:11:43,080 --> 00:11:46,460 >> Ако приложите функция, която е трябвало да вземе само един номер към масив 227 00:11:46,460 --> 00:11:49,220 След това, което ще получите, толкова по- функция ще очертае над масива. 228 00:11:49,220 --> 00:11:52,130 Така че, ако си функция да речем отнема номер и го връща кв. 229 00:11:52,130 --> 00:11:58,170 Можете да прилагат тази масива 2,3,5 Какво ще получите е масива 4,9,25. 230 00:11:58,170 --> 00:12:00,010 >> И това е много полезно защото това означава, че вие 231 00:12:00,010 --> 00:12:03,374 не се налага да пиша за вериги за справя много прости неща, като се прилага 232 00:12:03,374 --> 00:12:05,040 функция за всички членове на набор данни. 233 00:12:05,040 --> 00:12:08,557 Което, ако работите с голям набори от данни, които трябва да се направи много. 234 00:12:08,557 --> 00:12:10,390 Двоични функции са приложни влизане чрез вписване. 235 00:12:10,390 --> 00:12:12,430 Аз ще вляза в тази. 236 00:12:12,430 --> 00:12:16,750 Можете да получите достъп до тях с масиви или вектори с квадратни скоби. 237 00:12:16,750 --> 00:12:22,300 Така че името вектор квадратни скоби 1 ще ви даде първия елемент. 238 00:12:22,300 --> 00:12:25,510 Име Vector квадратни скоби 2 ще ви даде на втория елемент. 239 00:12:25,510 --> 00:12:27,530 >> Можете да давате на вектор на индексите и ще 240 00:12:27,530 --> 00:12:29,640 се върна от основно под фактор. 241 00:12:29,640 --> 00:12:34,990 Така че можете да направите вектор име скоби C, 2,4 и ще се измъкнем вектор, съдържащ 242 00:12:34,990 --> 00:12:38,804 на втория и четвъртия елементи на масива. 243 00:12:38,804 --> 00:12:40,720 А ако искате просто обобщено статистика 244 00:12:40,720 --> 00:12:47,529 на вектор като интерквартилен диапазон, средната, максималната, независимо, 245 00:12:47,529 --> 00:12:49,820 можете просто да напишете резюме Име на вектор и се получи, че навън. 246 00:12:49,820 --> 00:12:52,680 Това не е наистина полезно в програмиране, но ако играете 247 00:12:52,680 --> 00:12:55,990 около масивите от данни, това е удобен. 248 00:12:55,990 --> 00:12:58,650 >> Matrices-- основно високи масиви. 249 00:12:58,650 --> 00:13:01,190 Те имат тази специална нотация синтаксис. 250 00:13:01,190 --> 00:13:07,620 Matrix с масив, който получава попълнено in-- Съжалявам, матрица с данни, 251 00:13:07,620 --> 00:13:09,780 брой редове, брой колони. 252 00:13:09,780 --> 00:13:13,180 Когато имате някои данни, той попълва масива основно става отгоре надолу 253 00:13:13,180 --> 00:13:13,380 на първо място. 254 00:13:13,380 --> 00:13:14,190 Тогава ляво на дясно. 255 00:13:14,190 --> 00:13:15,030 Така, така. 256 00:13:15,030 --> 00:13:17,809 257 00:13:17,809 --> 00:13:19,600 И R е построен в матрични умножения, 258 00:13:19,600 --> 00:13:24,310 спектрален разлагане, diagonalization, много неща. 259 00:13:24,310 --> 00:13:27,785 Ако искате по-високи измерения масиви, така че 3, 4, 5, 260 00:13:27,785 --> 00:13:29,410 или каквото и размери, можете да направите това. 261 00:13:29,410 --> 00:13:34,400 Синтаксисът е масив мъждивата равнява с, след списъка на размерите. 262 00:13:34,400 --> 00:13:38,620 Така че, ако искате по 4 мерен масив с размери 4, 7, 8, 9, масива, 263 00:13:38,620 --> 00:13:45,470 мъждивата равнява в (4,7,8,9). 264 00:13:45,470 --> 00:13:51,180 >> Можете достъп единични стойности с брекети първото влизане запетая втория пост. 265 00:13:51,180 --> 00:13:54,870 Можете да получите целия филийки на редове или колони. 266 00:13:54,870 --> 00:13:59,900 С тази непълна синтаксис това е Просто ред номер със запетая или запетая колона 267 00:13:59,900 --> 00:14:00,400 номер. 268 00:14:00,400 --> 00:14:02,874 269 00:14:02,874 --> 00:14:04,540 Така списъци са един вид, свързан масив. 270 00:14:04,540 --> 00:14:06,360 Те имат собствен синтаксис тук. 271 00:14:06,360 --> 00:14:08,320 Отново не трескаво копирате всичко това надолу. 272 00:14:08,320 --> 00:14:11,370 Това е просто, така че хората преминавайки през слайдовете по-късно 273 00:14:11,370 --> 00:14:13,089 имаме всичко това в хубава справка. 274 00:14:13,089 --> 00:14:16,130 И това ще стане много естествено веднъж Аз всъщност ходи през демоса. 275 00:14:16,130 --> 00:14:19,295 276 00:14:19,295 --> 00:14:20,920 Така изброява основно свързани масиви. 277 00:14:20,920 --> 00:14:27,040 Можете да получите достъп до стойности с Име на списъка, знака за долар, ключ. 278 00:14:27,040 --> 00:14:31,370 Така че, ако вашия списък е кръстен Foo, След това можете да получите достъп до него по този начин. 279 00:14:31,370 --> 00:14:37,032 Можете да получите цялата ключ-стойност двойка чрез преминаване в индекса на квадратен скоба. 280 00:14:37,032 --> 00:14:39,240 Ако четете от несъществуващ ключ, вие ще получите нула. 281 00:14:39,240 --> 00:14:41,150 Тя няма да грешка. 282 00:14:41,150 --> 00:14:43,590 Работата е там, R ще направи, както много с нищожна, тъй като може. 283 00:14:43,590 --> 00:14:46,580 И това може да означава, че ако сте Не очаквах да се получи нула навън 284 00:14:46,580 --> 00:14:51,840 на някои списък за четене, вие ще получите някои непредвидими грешки по-надолу 285 00:14:51,840 --> 00:14:52,620 линията. 286 00:14:52,620 --> 00:14:54,890 >> Това се случи на мен ми сезонна работа през лятото, когато бях с R 287 00:14:54,890 --> 00:14:58,410 където съм променил начина, определен списък е определена на едно място 288 00:14:58,410 --> 00:15:05,410 но не се промени по-късно през код, който чете стойности от него. 289 00:15:05,410 --> 00:15:10,190 И така, това, което се случи, беше Бях четене нула стойности от този списък, 290 00:15:10,190 --> 00:15:13,090 прекарването им в функции, и е много объркана 291 00:15:13,090 --> 00:15:16,000 когато имам всички видове произволни безкрайности пълзят 292 00:15:16,000 --> 00:15:16,790 в тази функция. 293 00:15:16,790 --> 00:15:20,730 Защото, ако се прилага определена максимална или минимални функции за нищожна, 294 00:15:20,730 --> 00:15:22,570 вие ще получите безкрайно стойности навън. 295 00:15:22,570 --> 00:15:26,400 296 00:15:26,400 --> 00:15:29,180 >> Рамки за данни, те са подклас на списъка. 297 00:15:29,180 --> 00:15:31,170 Всяка стойност е вектор със същата дължина. 298 00:15:31,170 --> 00:15:34,220 И те се използват за представяне, основно, таблици с данни. 299 00:15:34,220 --> 00:15:36,175 Има тази инициализация синтаксис. 300 00:15:36,175 --> 00:15:38,800 Това ще всички отново да бъде много по-ясна, когато стигнем до демото. 301 00:15:38,800 --> 00:15:42,240 302 00:15:42,240 --> 00:15:44,240 И хубавото кадри от данни е, че сте 303 00:15:44,240 --> 00:15:49,380 може да даде имена на всеки колоните и имената на всички редове. 304 00:15:49,380 --> 00:15:53,890 И така, това прави достъпа до ги малко по-приятелски. 305 00:15:53,890 --> 00:15:59,130 Също така това е как повечето функции, които Прочети в електронни таблици Excel данни от 306 00:15:59,130 --> 00:16:03,820 или от текстови файлове, например, ще прочетете в техните данни. 307 00:16:03,820 --> 00:16:07,555 Те ще го сложи в някакъв вид данни рамка. 308 00:16:07,555 --> 00:16:09,680 Така functions-- функциите синтаксис е малко странно. 309 00:16:09,680 --> 00:16:16,160 Отново това е името на функцията, възлага, тази ключова дума функция и след това 310 00:16:16,160 --> 00:16:17,900 списъка от аргументи. 311 00:16:17,900 --> 00:16:24,080 Така че има някои хубави неща за това как функции работят тук. 312 00:16:24,080 --> 00:16:28,170 От една страна, всъщност можете да зададете приети стойности за някои аргументи. 313 00:16:28,170 --> 00:16:32,910 Така че може да се каже R1 equals-- може да се каже Foo 314 00:16:32,910 --> 00:16:38,290 е функция, където R1 равнява нещо по подразбиране, ако потребителят се уточнява 315 00:16:38,290 --> 00:16:39,090 без аргументи. 316 00:16:39,090 --> 00:16:41,932 В противен случай, това е, което той постави инча 317 00:16:41,932 --> 00:16:44,140 И това е много удобен защото много от нашите функции 318 00:16:44,140 --> 00:16:47,910 Трябва често десетки или стотици аргументи. 319 00:16:47,910 --> 00:16:51,210 Например тези за заговор графики или заговор разсейване 320 00:16:51,210 --> 00:16:54,430 има доводи, които контролират всичко от титлата, а оста 321 00:16:54,430 --> 00:16:59,512 етикети до цвета на регресионни линии. 322 00:16:59,512 --> 00:17:01,470 И така, ако не искате да накара хората да уточнят 323 00:17:01,470 --> 00:17:04,050 всеки един от тях стотици аргументи 324 00:17:04,050 --> 00:17:07,674 контролиране на всеки един аспект от парцел или регресия или каквото и да, 325 00:17:07,674 --> 00:17:09,299 това е хубаво да има тези стойности по подразбиране. 326 00:17:09,299 --> 00:17:12,700 327 00:17:12,700 --> 00:17:19,146 >> И тогава всъщност можете да напиши като те видях тук. 328 00:17:19,146 --> 00:17:22,869 Или намери по-добър пример за това. 329 00:17:22,869 --> 00:17:28,690 Когато се обадите функции всъщност можете да им се обадя, използвайки име на аргумент. 330 00:17:28,690 --> 00:17:33,919 Така че тук е един пример за матрицата конструктора. 331 00:17:33,919 --> 00:17:34,960 Отнема три аргумента. 332 00:17:34,960 --> 00:17:36,760 Обикновено имате данни, който е вектор. 333 00:17:36,760 --> 00:17:38,920 Имате N ред, които е броят редове. 334 00:17:38,920 --> 00:17:41,160 Имате N cols-- брой колони. 335 00:17:41,160 --> 00:17:43,920 Работата е там, ако сте написали N ред е равен на каквото и 336 00:17:43,920 --> 00:17:46,520 и N цв равнява каквото и когато се обаждате на тази функция, 337 00:17:46,520 --> 00:17:47,770 всъщност можете да ги обърне. 338 00:17:47,770 --> 00:17:51,590 Така че можете да сложите N цв първо и N ред второ и той ще направи никаква разлика. 339 00:17:51,590 --> 00:17:54,660 Така че това е една хубава малка особеност. 340 00:17:54,660 --> 00:17:56,260 >> Знаете внос и износ. 341 00:17:56,260 --> 00:18:00,010 Това може да стане, по същество. 342 00:18:00,010 --> 00:18:03,816 Има и съоръжения, за да напишете произволна R възразява двоичен файл 343 00:18:03,816 --> 00:18:05,190 и след това да ги прочетете отново по-късно. 344 00:18:05,190 --> 00:18:08,030 Кое е по-удобно, ако сте прави голяма интерактивна сесия R 345 00:18:08,030 --> 00:18:12,850 и вие трябва да запазите нещата много бързо. 346 00:18:12,850 --> 00:18:16,460 По подразбиране R има работна директория че файловете се изписват в 347 00:18:16,460 --> 00:18:19,410 и прочетете отново от. 348 00:18:19,410 --> 00:18:22,350 Можете да видите, че с getwg, променете го с setdw. 349 00:18:22,350 --> 00:18:25,630 Нищо особено интересно тук 350 00:18:25,630 --> 00:18:28,270 >> Така че сега реалните статистически данни stuff-- многопараметричен регресия. 351 00:18:28,270 --> 00:18:30,960 352 00:18:30,960 --> 00:18:34,910 Така обичайната синтаксис е малко по-сложно. 353 00:18:34,910 --> 00:18:37,260 Моделът е голям обект, основно. 354 00:18:37,260 --> 00:18:39,910 Той получава назначен LM, което е функция повикване. 355 00:18:39,910 --> 00:18:43,840 Първият елемент, ш Тилда x1 плюс каквото. 356 00:18:43,840 --> 00:18:46,574 357 00:18:46,574 --> 00:18:47,990 Синтаксис My тук е малко объркващо. 358 00:18:47,990 --> 00:18:49,490 Аз съм доста Съжалявам, това е стандартен начин 359 00:18:49,490 --> 00:18:50,990 че по компютърни науки книги правят това. 360 00:18:50,990 --> 00:18:54,890 Но това е малко странно. 361 00:18:54,890 --> 00:18:58,200 >> Така че основно, това е л.м. скоби, първа позиция 362 00:18:58,200 --> 00:19:06,730 е variable-- Съжалявам, зависим променлива Тилда x1 x2 плюс плюс 363 00:19:06,730 --> 00:19:10,910 Въпреки това много от независим променливи, които имате. 364 00:19:10,910 --> 00:19:14,240 И след това те могат да бъдат или вектори, всички с еднаква дължина. 365 00:19:14,240 --> 00:19:16,220 Или те могат да бъдат колона хедъри в рамката на данни 366 00:19:16,220 --> 00:19:18,553 че просто зададени в Вторият аргумент данни рамка. 367 00:19:18,553 --> 00:19:23,270 368 00:19:23,270 --> 00:19:26,380 >> Можете също да укажете по-сложна формула 369 00:19:26,380 --> 00:19:31,990 така че не е нужно да се линейно регрес на една зависима променлива, 370 00:19:31,990 --> 00:19:34,440 или един вектор на по-рано съществуващото вектор. 371 00:19:34,440 --> 00:19:38,070 Можете да го направите, например, вектор компонент у квадрат плюс 1 372 00:19:38,070 --> 00:19:42,100 и регрес, че се изправя срещу влезте от някакъв друг вектор. 373 00:19:42,100 --> 00:19:45,200 Можете да отпечатате резюмета на модел с тази команда, наречена 374 00:19:45,200 --> 00:19:48,607 summary-- просто обобщение parens модел. 375 00:19:48,607 --> 00:19:50,190 Отново нещо друго, което трябва да се изясни. 376 00:19:50,190 --> 00:19:55,407 377 00:19:55,407 --> 00:19:58,615 Нещо друго, което ще се коригира когато стъклата се изкачат в интернет. 378 00:19:58,615 --> 00:20:01,127 379 00:20:01,127 --> 00:20:03,210 Ако просто искате да се изчисли проста корелация 380 00:20:03,210 --> 00:20:09,170 можете да използвате корелация вектор 1 вектор 2 функция ядро. 381 00:20:09,170 --> 00:20:11,856 Метод е по подразбиране Pearson корелации. 382 00:20:11,856 --> 00:20:13,480 Това са стандартните които можете да направите. 383 00:20:13,480 --> 00:20:15,990 Има също така и Спиърмън Kendell корелации 384 00:20:15,990 --> 00:20:19,530 които са сред разнообразие от ранг корелация ред. 385 00:20:19,530 --> 00:20:23,600 Ами те не изчисляват продукт моменти между самите вектори, 386 00:20:23,600 --> 00:20:28,511 но на класиране поръчки на вектора. 387 00:20:28,511 --> 00:20:29,510 Ще ти обясня по-късно. 388 00:20:29,510 --> 00:20:30,120 >> АУДИТОРИЯ: Quick въпрос 389 00:20:30,120 --> 00:20:30,360 >> Конър HARRIS: Разбира се. 390 00:20:30,360 --> 00:20:33,151 >> АУДИТОРИЯ: Така че, когато сте изчисляване за простите корелациите направя 391 00:20:33,151 --> 00:20:37,655 можете да приемем, че има статистическа значение за връзката? 392 00:20:37,655 --> 00:20:39,030 Конър HARRIS: Не е нужно да. 393 00:20:39,030 --> 00:20:41,840 394 00:20:41,840 --> 00:20:43,960 Един л.м. е основно само една машина. 395 00:20:43,960 --> 00:20:47,690 Това ще отнеме от две неща и той ще изплюе 396 00:20:47,690 --> 00:20:49,770 Коефициентите за най-добре линия. 397 00:20:49,770 --> 00:20:52,310 Той също така съобщава, стандарт грешки на тези коефициенти. 398 00:20:52,310 --> 00:20:55,865 И това ще ти кажа, като е отрязъкът статистически значима 399 00:20:55,865 --> 00:20:56,740 или разликата от 0. 400 00:20:56,740 --> 00:20:59,400 Дали склон на най-добрия годни линия статистически 401 00:20:59,400 --> 00:21:01,510 различно от нула, и така нататък. 402 00:21:01,510 --> 00:21:06,260 Така тя приема нищо, аз мисля, Най-добре е отговор на въпроса си. 403 00:21:06,260 --> 00:21:07,410 ДОБРЕ. 404 00:21:07,410 --> 00:21:14,650 >> Plotting-- така, че основната причина, че трябва използвате R, като многопараметричен регресия. 405 00:21:14,650 --> 00:21:17,320 По принцип всеки език има някои съоръжение за това. 406 00:21:17,320 --> 00:21:21,365 И синтаксис честно R за регресия е малко тайнствена. 407 00:21:21,365 --> 00:21:22,990 Но заговор е мястото, където тя наистина блести. 408 00:21:22,990 --> 00:21:28,090 >> Функцията за кон е парцел и отнема два вектора, х и у. 409 00:21:28,090 --> 00:21:33,010 И тогава елипсите стендове за много голям брой допълнителни аргументи, които 410 00:21:33,010 --> 00:21:39,190 контролира всичко от заглавия в цветове на различни линии или различни точки, 411 00:21:39,190 --> 00:21:40,200 вида на парцел. 412 00:21:40,200 --> 00:21:42,250 Можете да имате разпръсна строителство или договорени за строителство. 413 00:21:42,250 --> 00:21:47,900 414 00:21:47,900 --> 00:21:49,710 >> [Недоловим] 2 вектори със същата дължина. 415 00:21:49,710 --> 00:21:53,780 Можете да го предшестват с прикачите данни рамка във вашия скрипт. 416 00:21:53,780 --> 00:22:01,220 И това ще ви позволи да използвате само колона хедъри, вместо отделни вектори. 417 00:22:01,220 --> 00:22:05,410 Можете да добавите най-добрите линии годни и местно кривите на регресия към вашата графика. 418 00:22:05,410 --> 00:22:09,390 >> Тези команди, изброени Оттук аб линия и линии, 419 00:22:09,390 --> 00:22:11,640 По подразбиране те се писмено в поп-нагоре прозорци 420 00:22:11,640 --> 00:22:15,560 защото тя предполага, че вие използвате R интерактивно. 421 00:22:15,560 --> 00:22:17,310 Ако не сте се може напиши два файла, които 422 00:22:17,310 --> 00:22:21,600 са в наистина всеки формат, който искате. 423 00:22:21,600 --> 00:22:25,410 За съжаление, имам правописна грешка Току-що разбрах. 424 00:22:25,410 --> 00:22:30,887 425 00:22:30,887 --> 00:22:32,720 Ако искате да отворите друго графично устройство 426 00:22:32,720 --> 00:22:39,200 можете да използвате тази функция, наречена PNG или JPEG или много други графични формати. 427 00:22:39,200 --> 00:22:42,319 И вие можете да пишете на графики каквото и име на файл сте задали. 428 00:22:42,319 --> 00:22:45,110 За да отмените, че трябва да use-- Аз не пиша това в slide-- 429 00:22:45,110 --> 00:22:49,650 но има функция, наречена Дев точка на разстояние, което отнема без аргументи. 430 00:22:49,650 --> 00:22:51,517 >> Тогава там са съоръжения за 3D чертане 431 00:22:51,517 --> 00:22:53,350 и за нанасяне контур ако искате да се 432 00:22:53,350 --> 00:22:55,700 графики на две независими променливи. 433 00:22:55,700 --> 00:22:57,150 Аз няма да отида в тях точно сега. 434 00:22:57,150 --> 00:22:59,130 >> Има и някои съоръжения за анимация 435 00:22:59,130 --> 00:23:01,300 тези, които обикновено са поддържани от трети лица. 436 00:23:01,300 --> 00:23:06,330 Аз направих анимации с R графики, но аз не съм използвал тези от трета страна 437 00:23:06,330 --> 00:23:06,940 библиотеки. 438 00:23:06,940 --> 00:23:09,929 Така че аз наистина не може да удостовери до колко са добри. 439 00:23:09,929 --> 00:23:12,220 Това, което аз препоръчвам, ако искате да направят анимации използващи R 440 00:23:12,220 --> 00:23:16,480 се можете да напишете всички рамки за анимациите 441 00:23:16,480 --> 00:23:18,470 и след това можете да използвате program-- трета страна 442 00:23:18,470 --> 00:23:23,630 типични такива се наричат ​​FFmpeg или ImageMagick-- да бод 443 00:23:23,630 --> 00:23:26,540 всичките си кадри в една анимация. 444 00:23:26,540 --> 00:23:28,380 >> Така че време за демо. 445 00:23:28,380 --> 00:23:31,030 446 00:23:31,030 --> 00:23:37,189 Така че, ако използвате някоя Unix система, подобна на което е Linux BSD, но който използва BSD. 447 00:23:37,189 --> 00:23:39,730 OS X отворете терминален прозорец и Типове R в командния ред. 448 00:23:39,730 --> 00:23:42,820 Ако имате R студио или подобни, които също работи. 449 00:23:42,820 --> 00:23:46,270 За потребителите на Windows трябва да бъде в състояние да намери R във вашето меню Start. 450 00:23:46,270 --> 00:23:50,390 Трябва да се нарича нещо като R x64 3 точка каквото. 451 00:23:50,390 --> 00:23:53,110 Отворете, че там горе. 452 00:23:53,110 --> 00:23:58,850 >> Така че сега ме пусне само отворете терминален прозорец. 453 00:23:58,850 --> 00:24:02,562 Добре, търсене. 454 00:24:02,562 --> 00:24:03,520 АУДИТОРИЯ: Command-Space 455 00:24:03,520 --> 00:24:06,675 Конър HARRIS: Command-Space, благодаря ви. 456 00:24:06,675 --> 00:24:10,030 Аз не обикновено използват Mac-ове. 457 00:24:10,030 --> 00:24:13,310 Terminal, покаже нов прозорец. 458 00:24:13,310 --> 00:24:18,120 New прозорец е настройки основни, R. Така че вие ​​трябва да получите 459 00:24:18,120 --> 00:24:22,230 приветствено съобщение, нещо подобно на това. 460 00:24:22,230 --> 00:24:31,060 >> Така че аз съм с R интерактивно. 461 00:24:31,060 --> 00:24:32,719 Можете също да напишете R скриптове, разбира се. 462 00:24:32,719 --> 00:24:34,510 Основно се изпълняват скриптове точно същия начин, както 463 00:24:34,510 --> 00:24:40,250 ако седяхте пред компютъра пишете във всяка линия един по един. 464 00:24:40,250 --> 00:24:42,660 Така че нека да започнем, като вектор. 465 00:24:42,660 --> 00:24:46,230 Една стрелка с 1, 2. 466 00:24:46,230 --> 00:24:49,400 1, 2, 4. 467 00:24:49,400 --> 00:24:50,050 OK, разбира се. 468 00:24:50,050 --> 00:24:51,630 Аз може да направи по-голям размер на шрифта. 469 00:24:51,630 --> 00:24:53,030 >> АУДИТОРИЯ: Command-Plus 470 00:24:53,030 --> 00:24:53,650 >> Конър HARRIS: Command-Plus. 471 00:24:53,650 --> 00:24:54,191 Command-Plus. 472 00:24:54,191 --> 00:24:57,610 473 00:24:57,610 --> 00:25:00,370 Добре, как е това? 474 00:25:00,370 --> 00:25:00,870 Добър? 475 00:25:00,870 --> 00:25:01,551 ДОБРЕ. 476 00:25:01,551 --> 00:25:03,300 Така че нека да започнем от обявява списък на вектор. 477 00:25:03,300 --> 00:25:08,710 Направете, стрелка, C 1.2.4. 478 00:25:08,710 --> 00:25:11,181 Ние можем да видим. 479 00:25:11,181 --> 00:25:12,680 Не се притеснявайте за конзолата там. 480 00:25:12,680 --> 00:25:18,590 Скобите са така че ако разпечатате много дълги редици, ние можем къде се намирате. 481 00:25:18,590 --> 00:25:26,987 Един пример ще бъде, ако аз Просто искам диапазон 2-200. 482 00:25:26,987 --> 00:25:28,820 Ако аз отпечатани много дълго масив, конзолите 483 00:25:28,820 --> 00:25:31,060 са просто толкова мога да продължа следите на която индекс 484 00:25:31,060 --> 00:25:33,250 ние сме от това, ако аз търся чрез това визуално. 485 00:25:33,250 --> 00:25:36,570 486 00:25:36,570 --> 00:25:38,280 Така или иначе, ние имаме. 487 00:25:38,280 --> 00:25:43,326 >> Така казах и преди, че масиви взаимодействат много добре с, например, 488 00:25:43,326 --> 00:25:44,450 унарен операции като тази. 489 00:25:44,450 --> 00:25:46,500 Така че това, което мисля, че ще получите, ако пиша плюс 1? 490 00:25:46,500 --> 00:25:49,630 491 00:25:49,630 --> 00:25:51,140 Да. 492 00:25:51,140 --> 00:25:54,250 Точно така, сега аз ще направя този различен спектър. 493 00:25:54,250 --> 00:26:01,650 Да речем, б в 20,40, 80. 494 00:26:01,650 --> 00:26:03,400 И така, какво мислите тази команда ще правим? 495 00:26:03,400 --> 00:26:09,962 496 00:26:09,962 --> 00:26:10,670 Добави елементите. 497 00:26:10,670 --> 00:26:14,950 И така, в общи линии това е, което го прави. 498 00:26:14,950 --> 00:26:16,740 Така че това е доста удобно. 499 00:26:16,740 --> 00:26:23,800 Така че аз как за да направя това. ° С е, да речем, 6 пъти от 1 до 10. 500 00:26:23,800 --> 00:26:26,789 501 00:26:26,789 --> 00:26:28,830 Така че това, което правя аз искам да видя съдържаща се, как мислиш? 502 00:26:28,830 --> 00:26:37,110 503 00:26:37,110 --> 00:26:38,110 Така че всички кратни на шест. 504 00:26:38,110 --> 00:26:42,170 Сега, какво мислите ще се случи, ако го направя? 505 00:26:42,170 --> 00:26:48,090 Ще направя това малко по-ясно, C, C. 506 00:26:48,090 --> 00:26:50,365 Така че това, което се случва, което правите мисля, ако мога да направя това? 507 00:26:50,365 --> 00:26:51,488 плюс гр. 508 00:26:51,488 --> 00:26:55,550 509 00:26:55,550 --> 00:26:56,050 [Недоловим] 510 00:26:56,050 --> 00:26:58,552 511 00:26:58,552 --> 00:27:02,350 >> АУДИТОРИЯ: Или грешка или да го просто добавя първите три елемента. 512 00:27:02,350 --> 00:27:04,510 >> Конър HARRIS: Не съвсем. 513 00:27:04,510 --> 00:27:05,522 Това е това, което имаме. 514 00:27:05,522 --> 00:27:08,910 Какво се случва, е по-къс масив, а, имам карах. 515 00:27:08,910 --> 00:27:13,990 Така че ние имаме 124, 124, 124. 516 00:27:13,990 --> 00:27:15,710 Да. 517 00:27:15,710 --> 00:27:18,940 И в общи линии, можете да видите това поведение преди, плюс 1, 518 00:27:18,940 --> 00:27:22,190 като подклас на този проблем, където най-краткия масива е само броя 519 00:27:22,190 --> 00:27:25,410 1, който е един масив. 520 00:27:25,410 --> 00:27:27,740 Аз просто се казва вектор всички времето, вместо масив, 521 00:27:27,740 --> 00:27:30,290 защото това е, което на R документация обикновено прави. 522 00:27:30,290 --> 00:27:33,070 Това е вкоренено в навик. 523 00:27:33,070 --> 00:27:37,590 >> OK, и така сега имаме този масив. 524 00:27:37,590 --> 00:27:38,830 Така че ние имаме този масив, гр. 525 00:27:38,830 --> 00:27:41,380 Можем да получим обобщение статистика за в, обобщена в. 526 00:27:41,380 --> 00:27:46,920 527 00:27:46,920 --> 00:27:48,280 И това е хубаво. 528 00:27:48,280 --> 00:27:51,070 529 00:27:51,070 --> 00:27:52,670 Така че сега нека да направим някои матрични неща. 530 00:27:52,670 --> 00:27:56,160 Да кажем, че m е матрица. 531 00:27:56,160 --> 00:27:57,780 Нека си го направи по три една. 532 00:27:57,780 --> 00:28:01,630 Така nrows равнява на 3, и ncols равнява 3. 533 00:28:01,630 --> 00:28:04,190 534 00:28:04,190 --> 00:28:10,710 И за данни нека do-- и какво от това мислите ли, че това ще бъде направено? 535 00:28:10,710 --> 00:28:15,310 536 00:28:15,310 --> 00:28:16,580 >> Точно така, това е следващата. 537 00:28:16,580 --> 00:28:17,970 Това е nrow и ncolumn. 538 00:28:17,970 --> 00:28:22,164 539 00:28:22,164 --> 00:28:24,580 Така че това, което съм направил е Нямам Обявен е за по три матрица 540 00:28:24,580 --> 00:28:26,950 и съм преминал през девет масив. 541 00:28:26,950 --> 00:28:30,530 Така логаритъм на всички елементи един през девет. 542 00:28:30,530 --> 00:28:33,400 543 00:28:33,400 --> 00:28:37,285 И всички тези ценности изпълват нагоре по array-- съжалявам? 544 00:28:37,285 --> 00:28:38,660 АУДИТОРИЯ: Тези са базови 10 трупи? 545 00:28:38,660 --> 00:28:41,284 Конър HARRIS: Не, дневник е натурални логаритми, така базова д. 546 00:28:41,284 --> 00:28:44,886 547 00:28:44,886 --> 00:28:47,010 Да, ако искате база 10 дневник, мисля, че ще трябва 548 00:28:47,010 --> 00:28:51,620 да влезете независимо, разделено на лог 10. 549 00:28:51,620 --> 00:28:56,750 И така данните от [недоловим] само запълва масива, така че горе до долу, 550 00:28:56,750 --> 00:28:59,490 след това от ляво на дясно. 551 00:28:59,490 --> 00:29:06,890 И ако искаш да направиш някакъв друг масив, нека да кажем, п е матрица. 552 00:29:06,890 --> 00:29:10,317 Нека да направим, аз не знам, 2-13. 553 00:29:10,317 --> 00:29:11,900 Или аз ще направя нещо по-интересно. 554 00:29:11,900 --> 00:29:13,770 Ще направя 2-4. 555 00:29:13,770 --> 00:29:15,780 nrow равна, да речем, 3. 556 00:29:15,780 --> 00:29:18,992 Ncol равнява 4. 557 00:29:18,992 --> 00:29:20,360 п. 558 00:29:20,360 --> 00:29:22,090 Така че ние имаме това. 559 00:29:22,090 --> 00:29:26,130 >> И сега, ако искаме да се размножават тези, ние ще направим п сто пъти процента, 560 00:29:26,130 --> 00:29:27,680 защото това е п. 561 00:29:27,680 --> 00:29:30,234 562 00:29:30,234 --> 00:29:31,400 И ние имаме матрични продукти. 563 00:29:31,400 --> 00:29:33,970 564 00:29:33,970 --> 00:29:37,810 Чрез тях начин, видя ли как когато бях обявен за п, на 2 до 4 565 00:29:37,810 --> 00:29:43,570 вектор имам карах, докато запълниха всички п? 566 00:29:43,570 --> 00:29:45,710 Ако исках да взема собствена стойност разлагане, 567 00:29:45,710 --> 00:29:46,960 това е нещо, което можем да направим много лесно. 568 00:29:46,960 --> 00:29:47,709 Ние можем да направим характерно п. 569 00:29:47,709 --> 00:29:52,290 570 00:29:52,290 --> 00:29:54,600 И така, това е първата ни сблъскате със списък. 571 00:29:54,600 --> 00:29:57,000 >> Така характерно п е даден списък с два ключа. 572 00:29:57,000 --> 00:29:58,430 Стойности, което е този масив тук. 573 00:29:58,430 --> 00:30:01,030 И вектори, които е този масив тук. 574 00:30:01,030 --> 00:30:08,240 Така че, ако искате да извлечете, да речем, тази трета колона 575 00:30:08,240 --> 00:30:13,080 от собствени вектори на матрицата, тъй собствените вектори са колона вектори. 576 00:30:13,080 --> 00:30:24,400 Така че ние можем да направим ВЕЦ характерно п знака за долар вектори, запетая 3, на [недоловим]. 577 00:30:24,400 --> 00:30:29,800 578 00:30:29,800 --> 00:30:30,900 Vec. 579 00:30:30,900 --> 00:30:34,100 Е, че, както може да се очаква. 580 00:30:34,100 --> 00:30:39,210 >> След това кажете п пъти процента пъти ВЕЦ. 581 00:30:39,210 --> 00:30:42,610 582 00:30:42,610 --> 00:30:48,320 Така резултатът тук със сигурност изглежда като ако ние зае трето собствена стойност тук, 583 00:30:48,320 --> 00:30:50,390 което съответства третата собствен вектор. 584 00:30:50,390 --> 00:30:53,190 Тя просто се умножава всичко в тази собствен вектор, компонент-мъдър, 585 00:30:53,190 --> 00:30:53,990 от собствена стойност. 586 00:30:53,990 --> 00:30:57,760 И това е, което бихме могли да очакваме, защото това е, което собствени стойности са. 587 00:30:57,760 --> 00:31:00,890 Има ли някой тук не взети линейна алгебра? 588 00:31:00,890 --> 00:31:02,530 Няколко души, OK. 589 00:31:02,530 --> 00:31:04,030 Просто включете вашите мозъци разстояние за малко. 590 00:31:04,030 --> 00:31:07,490 591 00:31:07,490 --> 00:31:20,720 И наистина, ако вземем характерно п знак за долар стойности 3 пъти VEC, 592 00:31:20,720 --> 00:31:21,810 добре се получи едно и също нещо. 593 00:31:21,810 --> 00:31:24,726 Той е форматиран по различен начин като ред вектор вместо вектор колона, 594 00:31:24,726 --> 00:31:25,640 но голяма работа. 595 00:31:25,640 --> 00:31:29,430 596 00:31:29,430 --> 00:31:35,170 И така, тези, които са в основата на хубаво неща, които можем да направим с матрици, 597 00:31:35,170 --> 00:31:36,489 демонстрирани списъци. 598 00:31:36,489 --> 00:31:39,030 Аз трябва да демонстрира хубаво неща за функции, както и. 599 00:31:39,030 --> 00:31:41,750 >> Така че нека да say-- [недоловим] функция, разговор нека да 600 00:31:41,750 --> 00:31:51,960 тя функция против функция п п squared-- Всъщност, това всъщност не е най-добрия. 601 00:31:51,960 --> 00:31:55,632 а, б, а на квадрат плюс б. 602 00:31:55,632 --> 00:31:58,547 603 00:31:58,547 --> 00:32:00,380 Така че едно нещо за функции, отново, е те 604 00:32:00,380 --> 00:32:01,963 не се нуждаят от ясни изявления за връщане. 605 00:32:01,963 --> 00:32:04,250 Така че можете да just-- на Последното твърдение оценена 606 00:32:04,250 --> 00:32:07,502 ще бъде на изложението се върна, или стойността върната. 607 00:32:07,502 --> 00:32:10,460 Така че в този случай, ние сме само оценяване една декларация, а на квадрат плюс б. 608 00:32:10,460 --> 00:32:12,043 Това ще бъде върнатата стойност по подразбиране. 609 00:32:12,043 --> 00:32:14,530 Никога не боли да се постави в върнете изрично стойности, 610 00:32:14,530 --> 00:32:16,880 особено ако сте се занимават с функция на много сложна логика 611 00:32:16,880 --> 00:32:17,380 тече. 612 00:32:17,380 --> 00:32:18,450 Но не е нужно да ги. 613 00:32:18,450 --> 00:32:24,890 Така че сега можем да направим функция 5, 1, и Това е в общи линии това, което очаквате. 614 00:32:24,890 --> 00:32:29,146 615 00:32:29,146 --> 00:32:31,270 Нещо друго, което можем да направим, всъщност можем да направим функционален б 616 00:32:31,270 --> 00:32:33,260 е равно на 1, а се равнява на 5. 617 00:32:33,260 --> 00:32:36,870 618 00:32:36,870 --> 00:32:40,770 Така че, ако ние, посочете кои номер тук, които аргумент отива в които аргумент 619 00:32:40,770 --> 00:32:44,680 във функцията, можем да флип около тези стойности, където искаме. 620 00:32:44,680 --> 00:32:48,405 >> АУДИТОРИЯ: Има ли причина да го напиша с б 621 00:32:48,405 --> 00:32:52,404 равнява за разлика от само с помощта номерата и запетаята? 622 00:32:52,404 --> 00:32:54,820 Конър HARRIS: Да, обикновено направите това, ако имате функции 623 00:32:54,820 --> 00:32:58,540 с много аргументи. 624 00:32:58,540 --> 00:33:00,690 Това често може да бъде като знамена, че вие ​​само ще 625 00:33:00,690 --> 00:33:03,130 искате да използвате в редки случаи. 626 00:33:03,130 --> 00:33:06,740 И по този начин можете да сте only-- може да се отнася до конкретните доводи 627 00:33:06,740 --> 00:33:09,110 че искате да използвате стойности не са по подразбиране за, 628 00:33:09,110 --> 00:33:14,470 и не е нужно да се напишат куп знамена равнява невярна след тях. 629 00:33:14,470 --> 00:33:19,710 Или мога да напиша това отново с стойност по подразбиране като б е равно на 2. 630 00:33:19,710 --> 00:33:26,289 И след това не можех да направя е функция, Ще направя 4, 1 и този път. 631 00:33:26,289 --> 00:33:28,580 И 17, което е с 4 на квадрат плюс 1, както може да се очаква. 632 00:33:28,580 --> 00:33:34,290 >> Но аз също може просто наричаме това с функция 4, 633 00:33:34,290 --> 00:33:36,970 и аз ще получа 18, защото Аз не уточни б. 634 00:33:36,970 --> 00:33:38,550 Така б получава стойността по подразбиране на 2. 635 00:33:38,550 --> 00:33:41,700 636 00:33:41,700 --> 00:33:47,200 >> ОК, така че сега, ако сте след заедно с демото, 637 00:33:47,200 --> 00:33:51,010 въведете този ред на ваше командване подкани и да видим какво идва. 638 00:33:51,010 --> 00:33:52,090 Всъщност, не прави това. 639 00:33:52,090 --> 00:33:52,590 Въведете този. 640 00:33:52,590 --> 00:33:57,780 641 00:33:57,780 --> 00:34:01,000 Трябва да се получи нещо подобно. 642 00:34:01,000 --> 00:34:04,780 Така mtcars е вградена данни определен за тази демонстрация 643 00:34:04,780 --> 00:34:13,550 цели, които идва with-- който идва в по подразбиране с вашата дистрибуция г. 644 00:34:13,550 --> 00:34:19,211 Това е компилация от статистиката от а 1974 брой на списание Motor Trend е 645 00:34:19,211 --> 00:34:20,710 по редица различни модели автомобили. 646 00:34:20,710 --> 00:34:28,270 >> Така че има мили на галон, cylinders-- Забравям какво еднокр is-- конски сили. 647 00:34:28,270 --> 00:34:31,610 648 00:34:31,610 --> 00:34:32,420 Вероятно. 649 00:34:32,420 --> 00:34:36,920 Ако просто Google MT автомобили, След това един от първите резултати 650 00:34:36,920 --> 00:34:38,730 ще бъде от официална документация г 651 00:34:38,730 --> 00:34:41,080 и ще обясня всички тези полета с данни. 652 00:34:41,080 --> 00:34:47,020 Така теглото is-- т е теглото на автомобила в т. 653 00:34:47,020 --> 00:34:48,880 Q сек е времето на четвърт миля. 654 00:34:48,880 --> 00:34:52,409 655 00:34:52,409 --> 00:34:55,850 Така че сега можем да направим някои забавни неща около MT автомобили е поле за данни. 656 00:34:55,850 --> 00:35:01,640 >> Така че ние можем да правим неща, като имена ред, MT автомобили. 657 00:35:01,640 --> 00:35:05,490 И това е списък на всички редове в данните, които са имената на автомобили. 658 00:35:05,490 --> 00:35:10,780 Ние можем да направим colnames, MT коли тази. 659 00:35:10,780 --> 00:35:15,500 Ако направя MT автомобили, под-числения индекс, като 2. 660 00:35:15,500 --> 00:35:18,177 получаваме втората колона от това, което би било цилиндри. 661 00:35:18,177 --> 00:35:19,370 >> АУДИТОРИЯ: Какво направихте? 662 00:35:19,370 --> 00:35:21,570 >> Конър HARRIS: Написах м-т скоби автомобили, д, 663 00:35:21,570 --> 00:35:24,180 който ми даде Второто колона от автомобили MT. 664 00:35:24,180 --> 00:35:34,501 665 00:35:34,501 --> 00:35:38,110 Или ако искаме един ред, мога да объркате mtcars със запетая 2, например. 666 00:35:38,110 --> 00:35:41,850 667 00:35:41,850 --> 00:35:46,390 Друг кръг 2 запетая, като това. 668 00:35:46,390 --> 00:35:48,880 И това отива във вашия ред. 669 00:35:48,880 --> 00:35:54,680 Това тук просто ви дава колона, но колона като вектор. 670 00:35:54,680 --> 00:36:04,634 671 00:36:04,634 --> 00:36:06,425 Току-що разбрах сега Забравих да докаже, 672 00:36:06,425 --> 00:36:09,150 някои готини неща за вектори които можете да правите с индекси. 673 00:36:09,150 --> 00:36:10,480 Така че нека да го направя точно сега. 674 00:36:10,480 --> 00:36:17,130 Така че нека да се направи в gets-- извеждайки тази на pause-- 2 пъти от 1 до 10. 675 00:36:17,130 --> 00:36:21,360 Така че в е просто ще бъде вектора 2 до 20. 676 00:36:21,360 --> 00:36:24,640 Мога да взема елементи като този, c2. 677 00:36:24,640 --> 00:36:30,942 Аз може да премине във вектор като този, c-- ме пусне 678 00:36:30,942 --> 00:36:34,470 използвате различно име, отколкото с, като ВЕЦ гр. 679 00:36:34,470 --> 00:36:37,591 680 00:36:37,591 --> 00:36:39,340 По принцип, аз съм правиш това, за да не се получи 681 00:36:39,340 --> 00:36:45,010 объркан между гр като строителство функция вектор, 682 00:36:45,010 --> 00:36:48,800 и след това в като име на променлива. 683 00:36:48,800 --> 00:36:53,120 Vec скоби гр 4, 5, 7. 684 00:36:53,120 --> 00:36:56,540 Това ще ми излезе на четвърто, пето, и седем елементи на масива. 685 00:36:56,540 --> 00:37:01,740 Мога да направя ВЕЦ, сложи в негативна индекс, като отрицателна 4. 686 00:37:01,740 --> 00:37:06,500 Това ще ме измъкнеш това с Четвъртият елемент отстранява. 687 00:37:06,500 --> 00:37:10,140 След това, ако аз исках да направя филийки, Мога да направя ВЕЦ 2 до 6. 688 00:37:10,140 --> 00:37:15,480 2 на колона 6 е просто още вектор, който е 2, 3, 4, 5, 6. 689 00:37:15,480 --> 00:37:18,230 Изплюва това. 690 00:37:18,230 --> 00:37:20,770 >> Така или иначе, обратно към МТ автомобили. 691 00:37:20,770 --> 00:37:26,650 692 00:37:26,650 --> 00:37:28,450 Така че нека да се направят някои регресии. 693 00:37:28,450 --> 00:37:34,240 Да речем, модел gets-- нека си линейно regress-- аз не знам. 694 00:37:34,240 --> 00:37:41,780 Първо нека да прикачите mtcars, разбира се. 695 00:37:41,780 --> 00:37:44,870 696 00:37:44,870 --> 00:38:00,010 Така [недоловим] модел л.м., нека да регресират мили на галон на Тилда тегло. 697 00:38:00,010 --> 00:38:03,300 И тогава данни рамка е mtcars. 698 00:38:03,300 --> 00:38:06,830 Така обобщение модел. 699 00:38:06,830 --> 00:38:12,900 700 00:38:12,900 --> 00:38:15,595 >> ОК, така че това изглежда малко сложно. 701 00:38:15,595 --> 00:38:19,380 Но в основата си, виждайки, като че ли сме опитам да изразя мили на галон 702 00:38:19,380 --> 00:38:23,970 като линейна функция на тегло, След това имаме тази линия тук, 703 00:38:23,970 --> 00:38:28,730 която прихваща при 37.28. 704 00:38:28,730 --> 00:38:33,830 37.28 ще бъде теоретичните мили за галон кола, която тежи нула. 705 00:38:33,830 --> 00:38:41,210 И тогава за всеки допълнителен тон, ви свалям около пет мили на галон 706 00:38:41,210 --> 00:38:42,440 на разстояние от това. 707 00:38:42,440 --> 00:38:45,120 И на тези коефициенти ви да видим, стандартни грешки там. 708 00:38:45,120 --> 00:38:47,870 И те са много статистически значима. 709 00:38:47,870 --> 00:38:55,740 >> Така че можем да бъдем много сигурно 1 е 10 до 10 отрицателен. 710 00:38:55,740 --> 00:38:59,510 Така че 1 пъти нещо, което да е отрицателен 10, че ако се направи по-тежка кола, 711 00:38:59,510 --> 00:39:01,440 тя ще има по-лоши мили на галон. 712 00:39:01,440 --> 00:39:04,940 713 00:39:04,940 --> 00:39:07,250 Или можем да тестваме някои друг модел. 714 00:39:07,250 --> 00:39:09,230 Като вместо регресиращи тази на тегло, 715 00:39:09,230 --> 00:39:12,600 нека си го регрес на регистър на тегло, защото може би ефективното тегло 716 00:39:12,600 --> 00:39:15,690 на пробег по някакъв начин не е линейна. 717 00:39:15,690 --> 00:39:18,540 >> Това ни даде г квадрат на 0.7528. 718 00:39:18,540 --> 00:39:19,610 Така че нека да опитаме това. 719 00:39:19,610 --> 00:39:21,485 Този път нека да направим едно различна променлива, също. 720 00:39:21,485 --> 00:39:22,500 Model2. 721 00:39:22,500 --> 00:39:24,800 Така обобщение, model2. 722 00:39:24,800 --> 00:39:28,200 723 00:39:28,200 --> 00:39:31,390 Добре, така че веднъж, ние Трябва ни най-добро напасване линия тук. 724 00:39:31,390 --> 00:39:36,160 И това time-- това се казва, основно, че всеки път, вие 725 00:39:36,160 --> 00:39:38,090 увеличаване на теглото на кола с коефициент от д 726 00:39:38,090 --> 00:39:40,580 губите това много мили на галон. 727 00:39:40,580 --> 00:39:43,210 728 00:39:43,210 --> 00:39:50,326 >> И така, този път нашата остатъчната стандартна грешка it--, че не е от значение, наистина. 729 00:39:50,326 --> 00:39:53,540 Остатъчното стандартната грешка е основно само стандартната грешка 730 00:39:53,540 --> 00:39:57,760 че ти остава, след като сте отнеме тренд линията. 731 00:39:57,760 --> 00:40:02,805 И нашата R квадрат тук е 0.81, което е малко по-добре от това, което 732 00:40:02,805 --> 00:40:07,640 имахме преди, 0.52. 733 00:40:07,640 --> 00:40:09,750 >> И така, нека сега да добавите Терминът за тази регресия. 734 00:40:09,750 --> 00:40:13,020 Така че нека да регресират мили на галон както на дневника на тежестите 735 00:40:13,020 --> 00:40:21,130 и, нека да направим, р мили, четвърт миля време. 736 00:40:21,130 --> 00:40:26,190 OK, тя трябва да има the-- наред, qsec. 737 00:40:26,190 --> 00:40:26,690 Qsec. 738 00:40:26,690 --> 00:40:30,630 739 00:40:30,630 --> 00:40:35,000 Actually-- съжалявам, какво от това? 740 00:40:35,000 --> 00:40:37,000 Нека да наречем това нещо друг освен model2. 741 00:40:37,000 --> 00:40:38,000 Нека да наречем този model3. 742 00:40:38,000 --> 00:40:40,860 743 00:40:40,860 --> 00:40:42,900 И така, сега можем да направим обобщение model3. 744 00:40:42,900 --> 00:40:46,850 745 00:40:46,850 --> 00:40:49,100 И така, отново, това е в общи линии какво може да се очаква. 746 00:40:49,100 --> 00:40:51,750 Имате положителна отсечка. 747 00:40:51,750 --> 00:40:54,550 Ефективното увеличаване тегло е отрицателна. 748 00:40:54,550 --> 00:40:58,490 И ефективното увеличаване на времето четвърт миля 749 00:40:58,490 --> 00:41:02,420 е положителен, но все пак по-малко от теглото. 750 00:41:02,420 --> 00:41:06,010 Сега интуитивно, можете да придаде смисъл на това, като казва мисля за спортни автомобили. 751 00:41:06,010 --> 00:41:08,950 Има една много бързо ускорение, много кратко време четвърт миля. 752 00:41:08,950 --> 00:41:13,729 Те също така ще използва повече газ, като има предвид по-разумно коли вървят 753 00:41:13,729 --> 00:41:16,020 да има по-бавно ускорение, високи пъти четвърт миля, 754 00:41:16,020 --> 00:41:20,890 и да използват по-малко газ ,, така високи мили на галон. 755 00:41:20,890 --> 00:41:21,390 Страхотен. 756 00:41:21,390 --> 00:41:23,431 И така, сега е време да парцел нещо подобно. 757 00:41:23,431 --> 00:41:27,810 Така че нека да do-- така гола кости можем да направим plots-- 758 00:41:27,810 --> 00:41:35,280 защото съм прикрепен тази рамка данни before-- просто не можем да направим за строителство, т мили на галон. 759 00:41:35,280 --> 00:41:38,762 760 00:41:38,762 --> 00:41:39,720 Направи това малко по-големи. 761 00:41:39,720 --> 00:41:55,050 762 00:41:55,050 --> 00:41:57,350 Има, ние основно имат разпръсна парцел, но точките 763 00:41:57,350 --> 00:41:58,690 са малко трудно да се види по този въпрос. 764 00:41:58,690 --> 00:42:04,860 765 00:42:04,860 --> 00:42:10,900 >> Не си спомням какво импровизирано синтаксис е за промяна на парцела. 766 00:42:10,900 --> 00:42:14,100 Така че предполагам, че това ще бъде добро време, за да изведете, 767 00:42:14,100 --> 00:42:18,000 има една много хубава вградена помощ функция, помощ кавички функционират име. 768 00:42:18,000 --> 00:42:21,690 Ние ще доведе до основно нещо, което искате. 769 00:42:21,690 --> 00:42:28,010 770 00:42:28,010 --> 00:42:32,730 Мисля, че действително ще направи това Тип равнява р за точки за строителство. 771 00:42:32,730 --> 00:42:34,369 Знаете, че се промени ли нещо? 772 00:42:34,369 --> 00:42:35,160 И не, не съвсем. 773 00:42:35,160 --> 00:42:39,160 774 00:42:39,160 --> 00:42:39,660 Всичко е наред. 775 00:42:39,660 --> 00:42:46,760 776 00:42:46,760 --> 00:42:49,580 >> По някаква причина, когато го направих това на собствения си компютър, преди известно време, 777 00:42:49,580 --> 00:42:52,080 всички разпръсна точки са много по-ясни. 778 00:42:52,080 --> 00:43:06,390 779 00:43:06,390 --> 00:43:13,970 Във всеки случай, са разпръсна вида на видима? 780 00:43:13,970 --> 00:43:15,124 Има един там. 781 00:43:15,124 --> 00:43:16,165 А малцина, а малцина. 782 00:43:16,165 --> 00:43:18,860 783 00:43:18,860 --> 00:43:21,185 Можете да ги видите нещо, нали? 784 00:43:21,185 --> 00:43:24,310 Така че, ако искаме да добавите най-добро напасване линия до този парцел тук, което е малко гола 785 00:43:24,310 --> 00:43:29,290 bones-- нека да го направи малко по-хубав. 786 00:43:29,290 --> 00:43:38,075 Main равнява спрямо теглото. 787 00:43:38,075 --> 00:43:46,322 788 00:43:46,322 --> 00:43:49,740 Мили на галон. 789 00:43:49,740 --> 00:43:53,570 Отново можете да видите колко полезно незадължителни аргументи са тук с също 790 00:43:53,570 --> 00:43:58,090 Не се налага да постави нещата в определен ред с клавишни доводи 791 00:43:58,090 --> 00:44:01,600 когато имате бизнес, защото те отнеме много аргументи. 792 00:44:01,600 --> 00:44:07,490 >> Xlab равнява на теглото, тегло, т. 793 00:44:07,490 --> 00:44:10,091 794 00:44:10,091 --> 00:44:10,590 Всичко е наред. 795 00:44:10,590 --> 00:44:17,340 796 00:44:17,340 --> 00:44:21,480 OK, да, това устройство се е малко досадно. 797 00:44:21,480 --> 00:44:30,160 Но можете да видите нещо там горе, има заглавие графика на страната. 798 00:44:30,160 --> 00:44:35,260 Насам there's-- на дъното тук има ос етикети. 799 00:44:35,260 --> 00:44:37,700 Не помня импровизирано какви команди ars-- 800 00:44:37,700 --> 00:44:41,000 какви функции са да се увеличи размерът на тези етикети и заглавия, 801 00:44:41,000 --> 00:44:43,110 но те са там. 802 00:44:43,110 --> 00:44:46,625 >> И така, ако искаме да добавете най-добре линията, 803 00:44:46,625 --> 00:44:49,250 бихме могли да направим нещо like-- I имат следния синтаксис написано тук. 804 00:44:49,250 --> 00:44:52,280 805 00:44:52,280 --> 00:45:11,130 Така че не забравяйте, че ние просто добавете модел беше мили на галон, тегло, mtcars. 806 00:45:11,130 --> 00:45:16,470 И така, ако исках да добавите най-добре линия, което можех да направя, а, б линия модел. 807 00:45:16,470 --> 00:45:18,556 И бум, ние имаме най-добро съвпадане на линия. 808 00:45:18,556 --> 00:45:19,970 Това е малко трудно да се видим отново. 809 00:45:19,970 --> 00:45:22,178 Аз съм доста съжалявам за технологични трудности. 810 00:45:22,178 --> 00:45:25,230 Но той работи основно Горе в ляво долу в дясно. 811 00:45:25,230 --> 00:45:27,550 >> И ако скалата бяха голяма, можете да видите 812 00:45:27,550 --> 00:45:31,260 че пресечната е това, което можете, намерите от обобщените статистически данни за 813 00:45:31,260 --> 00:45:34,790 ако напишете резюме модел. 814 00:45:34,790 --> 00:45:40,130 ОК, така че аз се надявам всеки получава нещо, от чувство за това, което 815 00:45:40,130 --> 00:45:42,030 R е, това, което е добро за. 816 00:45:42,030 --> 00:45:45,520 Може да се направи много по-хубав, отколкото за бизнес това на свой собствен път, ако искаш. 817 00:45:45,520 --> 00:45:50,100 818 00:45:50,100 --> 00:45:53,950 >> Така че интерфейсът на чуждестранна функция. 819 00:45:53,950 --> 00:46:00,330 Това е нещо, което не е типично покрит с встъпителни лекции 820 00:46:00,330 --> 00:46:03,560 или уводна нищо за отс. 821 00:46:03,560 --> 00:46:05,584 Това не е вероятно, че ще се нуждаят от нея. 822 00:46:05,584 --> 00:46:08,000 Въпреки това, открих, че е полезен при моите собствени проекти в миналото. 823 00:46:08,000 --> 00:46:10,984 И там не е добре урок за него онлайн. 824 00:46:10,984 --> 00:46:12,900 Така че аз съм просто ще всичко, което се втурне през тази 825 00:46:12,900 --> 00:46:16,606 и след това сте свободни да си тръгне. 826 00:46:16,606 --> 00:46:18,480 И така чуждото функция интерфейс е това, което 827 00:46:18,480 --> 00:46:23,130 можете да използвате, за да се обадя, за да видите функции с R. Вътрешно, 828 00:46:23,130 --> 00:46:29,850 R е построен върху аритметична C. R е само 64-битов аритметика с плаваща точка C е, 829 00:46:29,850 --> 00:46:32,852 която е тип двойно [недоловим]. 830 00:46:32,852 --> 00:46:35,060 И вие може да искате да направите, това за един куп причини. 831 00:46:35,060 --> 00:46:39,250 От една страна, R се тълкува, че е не компилира до машинен код. 832 00:46:39,250 --> 00:46:42,170 Така че можете да пренапише си вътрешни линии в C и след това да получите 833 00:46:42,170 --> 00:46:45,920 предимството на използването R. Подобно това е малко по-удобно, отколкото C. 834 00:46:45,920 --> 00:46:48,899 Той има по-добри графики съоръжения и какво ли още не. 835 00:46:48,899 --> 00:46:51,690 И докато все още е в състояние да получи максимална скорост от вътрешните контури, 836 00:46:51,690 --> 00:46:53,650 което е мястото, където можете наистина нужда от нея. 837 00:46:53,650 --> 00:46:56,330 >> Повторно използване на съществуващите C библиотеки, това е важно също. 838 00:46:56,330 --> 00:47:00,320 Ако имате някаква C библиотека за харесват, Аз не знам, трансформации на Фурие, 839 00:47:00,320 --> 00:47:05,190 или някои много Archean използва процедура статистика 840 00:47:05,190 --> 00:47:09,470 в висока енергийна астрофизиката или нещо, аз не знам. 841 00:47:09,470 --> 00:47:13,058 Енергийно астрофизиката дори не е мозъчен, мисля. 842 00:47:13,058 --> 00:47:16,480 Но можете да направите това вместо да се налага Напиши родния R порт от тях. 843 00:47:16,480 --> 00:47:22,725 И на the-- и отново, като, ако Погледнете в повечето от стандартните библиотеки на R, 844 00:47:22,725 --> 00:47:25,600 на вътрешността, вътрешността са възнамерявате да използвате чужд функция 845 00:47:25,600 --> 00:47:26,724 намесвам много широко. 846 00:47:26,724 --> 00:47:31,630 Те ще имат неща като Фурие трансформира или изчислителна корелация 847 00:47:31,630 --> 00:47:34,890 коефициенти, написани на C, и те ще Просто трябва R обвивки около тях. 848 00:47:34,890 --> 00:47:38,230 Интерфейсът е малко трудно. мисля 849 00:47:38,230 --> 00:47:43,750 нейната трудност е преувеличена в Много от инструкциите, които ще намерите. 850 00:47:43,750 --> 00:47:46,200 Но независимо от това, че е малко объркващо. 851 00:47:46,200 --> 00:47:48,650 И аз не съм бил в състояние да намери добър урок за това, 852 00:47:48,650 --> 00:47:51,980 така че това е точно сега. 853 00:47:51,980 --> 00:47:55,360 Отново, това цял сегмент е повече за последващи справки. 854 00:47:55,360 --> 00:47:57,687 Не се притеснявайте за копиране всичко надолу точно сега. 855 00:47:57,687 --> 00:48:00,020 Така следните инструкции са за Unix-подобни системи, 856 00:48:00,020 --> 00:48:05,150 Linux, BSD, OS X. Аз не знам как това работи на Windows, 857 00:48:05,150 --> 00:48:08,280 но моля, просто не си върши окончателния проект на Windows. 858 00:48:08,280 --> 00:48:10,790 859 00:48:10,790 --> 00:48:12,460 Вие наистина не искам да. 860 00:48:12,460 --> 00:48:14,770 Unix е много по-добър набор за случайни програмиране. 861 00:48:14,770 --> 00:48:19,320 862 00:48:19,320 --> 00:48:21,390 Така че, общо взето чуждестранна функция интерфейс. 863 00:48:21,390 --> 00:48:24,420 Ако искате да напишете C функция за използване с R, 864 00:48:24,420 --> 00:48:27,250 тя трябва да вземе всички аргументи като указатели. 865 00:48:27,250 --> 00:48:30,666 >> Така че за отделни стойности, това означава, че е посочи стойността. 866 00:48:30,666 --> 00:48:33,040 За масиви, това е указател на първия елемент, който 867 00:48:33,040 --> 00:48:36,750 е какви имена масив означават в действителност. 868 00:48:36,750 --> 00:48:40,140 Отново, това е нещо, което трябва да има доста напълно надолу след р зададете пет. 869 00:48:40,140 --> 00:48:43,334 Имена масиви са само указатели на първия елемент, 870 00:48:43,334 --> 00:48:44,750 Типът на плаваща точка е двойна. 871 00:48:44,750 --> 00:48:47,310 И си функция трябва да се върне за невалидни. 872 00:48:47,310 --> 00:48:50,810 Единственият начин, че да може всъщност кажа R какво се е случило 873 00:48:50,810 --> 00:48:54,410 е чрез промяна на паметта, че R е дал да го чрез външна функция 874 00:48:54,410 --> 00:48:54,910 интерфейс. 875 00:48:54,910 --> 00:48:58,180 876 00:48:58,180 --> 00:49:00,127 >> Така че аз съм писал това Например тук, това е 877 00:49:00,127 --> 00:49:02,460 функция, която изчислява ползване точка продукт на два вектора. 878 00:49:02,460 --> 00:49:05,060 Това отнема два аргумента, vec1, vec2, които са самите вектори, 879 00:49:05,060 --> 00:49:06,934 и след това N, което е дължина, защото отново, 880 00:49:06,934 --> 00:49:12,630 R е построен през [недоловим], за да разберете дължината на вектори, но В не. 881 00:49:12,630 --> 00:49:16,182 В C, вектори е произволно разграничена парче от паметта. 882 00:49:16,182 --> 00:49:17,890 Така че начина, по който можете да изчисли дот продукти 883 00:49:17,890 --> 00:49:23,470 е просто зададете този параметър се на нула и след това чрез обхождане 884 00:49:23,470 --> 00:49:28,760 от 1 до п звезда, защото п е указател към дължината, 885 00:49:28,760 --> 00:49:32,929 просто добавете нещо, което да това се параметър. 886 00:49:32,929 --> 00:49:34,970 И това може да бъде добра практика ако ти започваш да се направи 887 00:49:34,970 --> 00:49:37,270 това да напише две отделни функции C. 888 00:49:37,270 --> 00:49:41,970 Един от тях has-- Един от тях просто отнема аргументите и видовете 889 00:49:41,970 --> 00:49:43,970 че те обикновено ще бъде в C. 890 00:49:43,970 --> 00:49:47,780 >> Така Отнема масив аргументи като указатели. 891 00:49:47,780 --> 00:49:57,090 Но аргументи единична стойност, като п, тя просто приема като стойности от копие, 892 00:49:57,090 --> 00:49:57,917 без указатели. 893 00:49:57,917 --> 00:49:59,750 И след това не го прави [Недоловим] от показалеца. 894 00:49:59,750 --> 00:50:01,290 И тогава може да има различен, в общи линии, 895 00:50:01,290 --> 00:50:03,623 обвивка функция, която в общи линии дръжки на изискванията 896 00:50:03,623 --> 00:50:07,740 на чуждестранното функция намесвам за вас. 897 00:50:07,740 --> 00:50:11,840 >> Начинът, по който наричаме това в R е, веднъж като сте си функция написан на C, 898 00:50:11,840 --> 00:50:17,770 изпишете R ПМС shlib, R команда споделена библиотека, 899 00:50:17,770 --> 00:50:20,110 Foo точка с, или каквото името на файла е, 900 00:50:20,110 --> 00:50:23,020 и операционната система не плащам в R терминал. 901 00:50:23,020 --> 00:50:25,200 И това ще създаде библиотека, наречена Foo Дот така. 902 00:50:25,200 --> 00:50:28,180 А след това можете да го заредите в нашия скрипт или интерактивно 903 00:50:28,180 --> 00:50:32,310 с командния DYN дот натоварване. 904 00:50:32,310 --> 00:50:35,720 След това е функция в R, наречена точка в. 905 00:50:35,720 --> 00:50:39,310 >> Това отнема аргументи, които са първо името на функцията в С 906 00:50:39,310 --> 00:50:40,970 който искате да се обадите. 907 00:50:40,970 --> 00:50:43,920 И тогава всички параметри за тази функция, 908 00:50:43,920 --> 00:50:45,420 те трябва да са в правилния ред. 909 00:50:45,420 --> 00:50:48,580 Трябва да използвате този тип принуда функции като цяло число, като 910 00:50:48,580 --> 00:50:52,050 двойна, тъй като характер, и като логично. 911 00:50:52,050 --> 00:50:54,710 И тогава, когато тя се връща на списък, който отново е просто 912 00:50:54,710 --> 00:50:57,550 асоцииран масив на параметър имена и стойностите 913 00:50:57,550 --> 00:51:00,950 след като функцията е свършила. 914 00:51:00,950 --> 00:51:08,520 >> Така че в този случай, защото има точка про доводи vec1, vec2 и INT п, п навън. 915 00:51:08,520 --> 00:51:11,980 До точка, в точка ние имаме про, името на функцията 916 00:51:11,980 --> 00:51:16,250 ние се обаждате, vec1, vec2, тип принуждаване. 917 00:51:16,250 --> 00:51:20,060 Дължината на или вектор, Аз просто избра vec1 произволно. 918 00:51:20,060 --> 00:51:25,479 Тя ще бъде по-силен, за да се каже, и число мин дължина vec1, дължина vec2. 919 00:51:25,479 --> 00:51:27,520 След това просто като двойна нула, защото ние наистина не 920 00:51:27,520 --> 00:51:29,644 интересува какво отива в от параметър, защото ние сме 921 00:51:29,644 --> 00:51:32,270 то определяне на нула, така или иначе. 922 00:51:32,270 --> 00:51:37,560 >> И тогава резултатите ще бъдат по- голяма свързан набор от основно 923 00:51:37,560 --> 00:51:42,090 vec1 е независимо, vec2 е независимо. 924 00:51:42,090 --> 00:51:44,330 Но ние сме заинтересовани в вън, така че ние може да се получи, че навън. 925 00:51:44,330 --> 00:51:47,780 Това е отново, много например играчка на интерфейс чужд функция. 926 00:51:47,780 --> 00:51:54,160 Но ако трябва да се изчисли дот продукти от масивни вектори в примки, 927 00:51:54,160 --> 00:51:56,960 или ако трябва да направите, нещо друго в една линия, 928 00:51:56,960 --> 00:51:59,850 и вие не искате да се разчита на R, което наистина има малко режийни 929 00:51:59,850 --> 00:52:02,830 вграден в него, това може да бъде полезно. 930 00:52:02,830 --> 00:52:05,870 >> Отново, това обикновено не е въвеждаща тема към R. 931 00:52:05,870 --> 00:52:08,571 Това не е много добре документирана. 932 00:52:08,571 --> 00:52:11,070 Аз съм просто това число, защото Открих, че е полезно в миналото. 933 00:52:11,070 --> 00:52:13,654 Така че, лоши практики. 934 00:52:13,654 --> 00:52:15,820 Споменах, че има за контур във функцията. 935 00:52:15,820 --> 00:52:21,150 По принцип не би трябвало, в езика, не го използвайте. 936 00:52:21,150 --> 00:52:26,100 Въз основа на това как R изпълнява итерация вътрешно, тя може да бъде бавен. 937 00:52:26,100 --> 00:52:28,540 Те просто също изглеждат грозно. 938 00:52:28,540 --> 00:52:32,410 >> R дръжки вектори много добре, така че често не е нужно да го използвам. 939 00:52:32,410 --> 00:52:35,050 940 00:52:35,050 --> 00:52:38,900 Тогава обикновено могат да замени вектор често 941 00:52:38,900 --> 00:52:42,490 с тези функции, наречени висока ред функции, Map, Намаляване, 942 00:52:42,490 --> 00:52:44,404 Намерете или Filter. 943 00:52:44,404 --> 00:52:46,320 Аз просто ще дам някои примери за това, което те правят. 944 00:52:46,320 --> 00:52:49,957 Карта е по-висока функционална цел, защото това отнема функция като аргумент. 945 00:52:49,957 --> 00:52:52,290 Така че можете да му се даде функция, можете да го даде на масив, 946 00:52:52,290 --> 00:52:54,640 и тя ще се прилага функцията за всеки елемент на масива 947 00:52:54,640 --> 00:52:55,681 и да се върнете на новия масив. 948 00:52:55,681 --> 00:52:58,035 949 00:52:58,035 --> 00:53:00,160 Намаляване, основно ви дам тя масив, ти я дам 950 00:53:00,160 --> 00:53:02,930 функция, която отнема два аргумента. 951 00:53:02,930 --> 00:53:07,100 Тя ще се прилага функцията първата, Първият аргумент с някои стартер стойност. 952 00:53:07,100 --> 00:53:09,440 След това към този резултат в секунда. 953 00:53:09,440 --> 00:53:12,590 След това с този резултат в третия, След това с този резултат в четвъртия рунд. 954 00:53:12,590 --> 00:53:14,870 И след това се върнете, когато тя стане до края. 955 00:53:14,870 --> 00:53:17,620 Така например, ако искате да изчисли сумата на всички елементи 956 00:53:17,620 --> 00:53:23,240 в масив, отколкото може да се обадите намали с [недоловим] намали добавка 957 00:53:23,240 --> 00:53:26,620 функция, като функция а, б, върнете плюс б. 958 00:53:26,620 --> 00:53:28,960 И след това да започне стойност 0. 959 00:53:28,960 --> 00:53:32,950 >> И всичко това, можете да ги намерите описано в документацията на R, 960 00:53:32,950 --> 00:53:35,720 във всеки учебник по функционално програмиране. 961 00:53:35,720 --> 00:53:38,330 Има също така и този клас функции, наречени прилагат функции, 962 00:53:38,330 --> 00:53:42,807 което аз don't-- те са малко трудно да се обясни, 963 00:53:42,807 --> 00:53:45,640 но ако се вгледате в [недоловим] резервирана че цитираната в началото, 964 00:53:45,640 --> 00:53:48,615 Той им обяснява доста добре в Допълнение си на R програмиране. 965 00:53:48,615 --> 00:53:51,599 966 00:53:51,599 --> 00:53:53,390 Повече за практики, прикрепянето вектори. 967 00:53:53,390 --> 00:53:57,570 968 00:53:57,570 --> 00:53:58,070 Да? 969 00:53:58,070 --> 00:54:01,651 970 00:54:01,651 --> 00:54:02,900 Мисля, че трябва да се коригира това. 971 00:54:02,900 --> 00:54:07,450 В тази първа линия, ВЕЦ стрелка, че стрелката не трябва да има. 972 00:54:07,450 --> 00:54:10,920 Можете да зададете до вектор, отново, като се вземат неговата дължина плюс 1 973 00:54:10,920 --> 00:54:13,220 и възлагане на някои стойност на това. 974 00:54:13,220 --> 00:54:18,970 Това ще удължи вектор, или сте може да направи VEC равнява гр, ВЕЦ newvalue. 975 00:54:18,970 --> 00:54:21,540 Отново, ако използвате C с един аргумент като вектор, 976 00:54:21,540 --> 00:54:23,300 получената йерархията получава сплескан. 977 00:54:23,300 --> 00:54:27,160 Така че просто ще получите вектор който е удължен с един. 978 00:54:27,160 --> 00:54:30,410 Никога не правете това. 979 00:54:30,410 --> 00:54:33,330 >> Причината, поради която Не трябва да се направи това е този. 980 00:54:33,330 --> 00:54:37,430 Когато се разпределят вектор, то дава определена парче памет. 981 00:54:37,430 --> 00:54:40,680 Ако увеличите този размер вектор, тя трябва да се преразпределят на вектора 982 00:54:40,680 --> 00:54:43,820 някъде другаде. 983 00:54:43,820 --> 00:54:46,980 И така преразпределение е доста скъпо. 984 00:54:46,980 --> 00:54:50,530 Аз няма да навлизам в подробности за това как памет разпределители са приложени 985 00:54:50,530 --> 00:54:57,280 на ниво операционна система, но това отнема много време 986 00:54:57,280 --> 00:54:58,962 да се намери ново парче от паметта. 987 00:54:58,962 --> 00:55:00,920 И също така, ако сте повторно разпределяне на много и много 988 00:55:00,920 --> 00:55:03,500 на прогресивно по-голям парчета, вие се окажете 989 00:55:03,500 --> 00:55:06,420 с нещо, наречено фрагментация на паметта, 990 00:55:06,420 --> 00:55:09,390 където наличната памет е разделен на много малко блокове 991 00:55:09,390 --> 00:55:11,500 в точката на паметта разпределители гледка. 992 00:55:11,500 --> 00:55:15,340 И това става все по-трудно да се намери памет за други неща. 993 00:55:15,340 --> 00:55:19,455 Така че вместо това, ако имате нужда да направите това, ако което трябва да расте вектор от единия край 994 00:55:19,455 --> 00:55:24,240 към следващата, вместо да се положат постоянно, трябва да го предварително разпредели. 995 00:55:24,240 --> 00:55:29,310 Vec стрелка, вектор дължина се равнява на 1 000, или нещо такова. 996 00:55:29,310 --> 00:55:33,200 >> И тогава можете просто да зададете на вектора стойности една 997 00:55:33,200 --> 00:55:36,000 време, след като сте го разпределя веднъж. 998 00:55:36,000 --> 00:55:40,140 Аз се блъсна в тази, отново, моята работа през лятото когато пишех диференциално НАП 999 00:55:40,140 --> 00:55:42,120 уравнение решаване. 1000 00:55:42,120 --> 00:55:43,180 Не е символична числено. 1001 00:55:43,180 --> 00:55:49,290 Идеята е, че след като имате една стойност за вашето решение, 1002 00:55:49,290 --> 00:55:51,240 използвате, че за изчисляване на следващия. 1003 00:55:51,240 --> 00:55:53,700 Така че моето физическо наивна склонност е да се каже, OK, 1004 00:55:53,700 --> 00:55:56,930 така че аз ще започна с вектор това е една значителна стойност. 1005 00:55:56,930 --> 00:56:01,260 Изчисляват се от това на следващата стойност която отива към моето решение вектор, 1006 00:56:01,260 --> 00:56:02,630 и прилага този. 1007 00:56:02,630 --> 00:56:05,290 >> Създаване на нещо друго, прилага този. 1008 00:56:05,290 --> 00:56:08,120 Той мина много, много бавно. 1009 00:56:08,120 --> 00:56:11,540 И след като разбрах това и аз смених система 1010 00:56:11,540 --> 00:56:16,020 от прикрепянето този вектор като 10 000 до 100 000 пъти, 1011 00:56:16,020 --> 00:56:18,910 само предварително разпределяне вектор и само с тичане с това. 1012 00:56:18,910 --> 00:56:22,100 Имам повече от 1000 пъти скорост. 1013 00:56:22,100 --> 00:56:26,280 Така че това е много често срещана капан за R програмиране. 1014 00:56:26,280 --> 00:56:31,560 Ако имате нужда от изграждане на вектор парче по парче, тя предварително се разпределят. 1015 00:56:31,560 --> 00:56:35,360 1016 00:56:35,360 --> 00:56:40,240 >> Друг често срещан пътуване up-- това е последната ми пързалка, не worry-- е обработка на грешки. 1017 00:56:40,240 --> 00:56:42,890 R, за да бъда откровен, не го прави наистина това много добре. 1018 00:56:42,890 --> 00:56:45,010 Има много проблеми, които могат да се появят и. 1019 00:56:45,010 --> 00:56:48,360 Например, ако получите масив или вектор от функция 1020 00:56:48,360 --> 00:56:52,377 че сте очаквали единична стойност да дойде от, или обратното, 1021 00:56:52,377 --> 00:56:55,460 и вие така, че в една функция, която Ти си написал очаквайки една стойност, 1022 00:56:55,460 --> 00:56:57,270 че може да е проблем. 1023 00:56:57,270 --> 00:57:01,440 >> Някои функции върне нулев както, да речем, 1024 00:57:01,440 --> 00:57:05,560 четене от несъществуващ ключ в списък. 1025 00:57:05,560 --> 00:57:08,527 Но нищожна не е като C когато, ако се опитате да прочетете 1026 00:57:08,527 --> 00:57:11,360 от стар показалеца, [недоловим] до нула показалеца, той просто SEG неизправности 1027 00:57:11,360 --> 00:57:14,109 и ако сте във вашата дебъгер него ви казва точно къде се намирате. 1028 00:57:14,109 --> 00:57:17,080 1029 00:57:17,080 --> 00:57:20,772 Вместо това, за нищожна ще do-- функции ще направи непредвидими неща 1030 00:57:20,772 --> 00:57:21,730 ако те са ръка за нищожна. 1031 00:57:21,730 --> 00:57:24,575 Подобно ако подаде макс нищожна, тя ще ви даде отрицателна безкрайност. 1032 00:57:24,575 --> 00:57:27,230 1033 00:57:27,230 --> 00:57:28,190 И така, да. 1034 00:57:28,190 --> 00:57:30,880 1035 00:57:30,880 --> 00:57:32,630 И така, това се е случило веднъж ми, когато имах 1036 00:57:32,630 --> 00:57:34,771 променило куп полета в списъка за моята структура 1037 00:57:34,771 --> 00:57:37,520 веднъж, без да ги променя другаде когато четях от тях. 1038 00:57:37,520 --> 00:57:40,670 И тогава аз имам всякакви случайни резултати инфинити пълзят 1039 00:57:40,670 --> 00:57:43,080 и аз няма представа откъде са дошли. 1040 00:57:43,080 --> 00:57:45,310 И за съжаление, има няма реална R строг режим 1041 00:57:45,310 --> 00:57:48,940 където може да се каже, ако нещо изглежда, че може да е грешка, 1042 00:57:48,940 --> 00:57:51,960 просто спрете там, така че мога да бъда дисциплиниран и поправи това. 1043 00:57:51,960 --> 00:57:55,282 1044 00:57:55,282 --> 00:57:57,240 Въпреки това, има нещо нарича стоп, ако не. 1045 00:57:57,240 --> 00:58:00,480 Това е еквивалентно да се твърди, C е, ако сте говорили за това. 1046 00:58:00,480 --> 00:58:02,690 Аз не мисля, C отстояват е лекция на тема, 1047 00:58:02,690 --> 00:58:06,370 но вашият лидер вписванията може да са отишли ​​над него. 1048 00:58:06,370 --> 00:58:10,393 И спре, ако не основно отнема всякаква предикат, така че всяко изявление, че 1049 00:58:10,393 --> 00:58:11,824 може да бъде вярно или невярно. 1050 00:58:11,824 --> 00:58:13,490 И ако това е невярно, той спира своята програма. 1051 00:58:13,490 --> 00:58:18,260 Той ви казва точно това, което ви се подредят са били на и в какво състояние се провали. 1052 00:58:18,260 --> 00:58:21,910 >> Това е много полезно, например, проверка здрав разум, функционални входове. 1053 00:58:21,910 --> 00:58:25,110 Така че, ако имате функция и очакваш, да речем, 1054 00:58:25,110 --> 00:58:29,640 ако трябва да ми даде дата, искам датите да бъдат само на вектор с дължина 1 1055 00:58:29,640 --> 00:58:31,735 и някъде между 1 и 31. 1056 00:58:31,735 --> 00:58:34,420 1057 00:58:34,420 --> 00:58:36,170 И ако не, аз знам, нещо се е объркало. 1058 00:58:36,170 --> 00:58:40,280 И аз избирам да се спре там, преди това има случаен почука ефекти с код 1059 00:58:40,280 --> 00:58:44,190 че е по-трудно да се проследи чрез. 1060 00:58:44,190 --> 00:58:47,170 Така че това е един от възможните използвате за спиране, ако не. 1061 00:58:47,170 --> 00:58:48,660 >> Във всеки случай, OK. 1062 00:58:48,660 --> 00:58:49,690 Така че това е края. 1063 00:58:49,690 --> 00:58:51,290 Благодаря ви много, че дойдохте. 1064 00:58:51,290 --> 00:58:53,710 Аз съм аматьор в това. 1065 00:58:53,710 --> 00:58:57,270 Така че съжалявам, ако ви е скучно или объркан или това, което имате. 1066 00:58:57,270 --> 00:59:01,670 Щастлив съм да взема въпроси по електронна поща най connorharris@college.harvard.edu. 1067 00:59:01,670 --> 00:59:07,230 Това се отнася и за всички гледам това живеят или по-късно. 1068 00:59:07,230 --> 00:59:10,190 Също така, въпреки че аз не съм с TF, аз също съм много 1069 00:59:10,190 --> 00:59:13,900 готови да служат като неофициален съветник за всеки, който е 1070 00:59:13,900 --> 00:59:15,460 използване на R в краен проект. 1071 00:59:15,460 --> 00:59:19,900 >> Ако искате да, че, след това просто се консултирайте с Вашия TF 1072 00:59:19,900 --> 00:59:23,750 и след това да ми напишете имейл, така Знам, че това, което работи по 1073 00:59:23,750 --> 00:59:26,680 и за да мога да се създаде среща пъти с вас, ако искате. 1074 00:59:26,680 --> 00:59:27,990 Така че отново, благодаря ви много. 1075 00:59:27,990 --> 00:59:28,960 Надявам се да ви радва. 1076 00:59:28,960 --> 00:59:29,450 >> АУДИТОРИЯ: [недоловим]. 1077 00:59:29,450 --> 00:59:30,617 >> Конър HARRIS: Разбира се. 1078 00:59:30,617 --> 00:59:34,910 >> АУДИТОРИЯ: Какъв проект ще използва студент CS R за? 1079 00:59:34,910 --> 00:59:37,427 1080 00:59:37,427 --> 00:59:40,510 Конър HARRIS: Така че, ако не сте се направи нещо, което е чисто в извличане на данни, 1081 00:59:40,510 --> 00:59:43,790 Например, и там много неща 1082 00:59:43,790 --> 00:59:46,692 бихте могли да направите с тази с данни минното дело и машинно обучение. 1083 00:59:46,692 --> 00:59:48,900 Може би искате да използвате за R компонент на нещо. 1084 00:59:48,900 --> 00:59:52,022 Аз изведох, първоначално, примерът на ако пишете на уебсайт 1085 00:59:52,022 --> 00:59:54,730 и искате да стартирате автоматизирана статистически анализ на вашия сървър 1086 00:59:54,730 --> 00:59:57,990 трупи в определено време всеки ден, че може да е нещо, което е 1087 00:59:57,990 --> 01:00:01,260 много лесно да се направи само за кратко R скрипт, който можете да планирате 1088 01:00:01,260 --> 01:00:04,200 да тичам всяка вечер, например. 1089 01:00:04,200 --> 01:00:06,550 >> И аз съм сигурен, ако има някаква причина искате 1090 01:00:06,550 --> 01:00:11,520 Искам статистика или графични възможности и имат това се стартира автоматично, вместо 1091 01:00:11,520 --> 01:00:13,790 се налага да си взаимодействат с неща в Excel, 1092 01:00:13,790 --> 01:00:16,750 например, това е нещо, може да искате да използвате за R. 1093 01:00:16,750 --> 01:00:21,190 Така че повече въпроси, преди да замина? 1094 01:00:21,190 --> 01:00:21,690 Не? 1095 01:00:21,690 --> 01:00:24,960 Добре, добре, отново, благодаря Много ви, че дойдохте. 1096 01:00:24,960 --> 01:00:29,417