1 00:00:00,000 --> 00:00:05,691 2 00:00:05,691 --> 00:00:07,690 CONNOR Харис: Сепак јас дека некои возбудлив видео 3 00:00:07,690 --> 00:00:12,570 произведени од страна на професионални консултантски Р дека го користи многу во својата работа. 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-- статистички програмски јазик 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 и од каде да почне Р? 15 00:00:44,910 --> 00:00:48,620 И оригинално, Р започна тука со двајца професори 16 00:00:48,620 --> 00:00:51,950 кои сакаа подобар статистички платформа за своите студенти. 17 00:00:51,950 --> 00:00:56,030 Па тие создале една моделирани по статистички јазик С. 18 00:00:56,030 --> 00:01:00,480 Тие, заедно со многу други, продолжил да работи на и користење на R, 19 00:01:00,480 --> 00:01:05,489 креирање алатки за истражување и наоѓање нови апликации за R секој ден. 20 00:01:05,489 --> 00:01:07,750 >> Благодарение на оваа е светски напор на заедницата, 21 00:01:07,750 --> 00:01:11,850 Р продолжуваше да расте со илјадници на корисникот креирано библиотеки гради 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 е најдобар во она што го прави тоа. 25 00:01:25,040 --> 00:01:28,540 Заврзат експерти брзо и лесно да се протолкува, да разговарате со, 26 00:01:28,540 --> 00:01:33,790 и да се визуелизира на податоци кои покажуваат нивните брзо растечката заедница на Р корисници ширум светот 27 00:01:33,790 --> 00:01:36,380 и да видиме како софтвер со отворен код Р продолжува да го обликува 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 >> CONNOR Харис: Во ред, одлично. 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 И за да можете да го видите ова во многу избор на дизајнот дека креаторите на Р 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 или whatever. 42 00:02:25,440 --> 00:02:27,850 >> Таа има многу многу важни разлики од В. 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 Тоа е слабо внесе, постојат Нема декларации тип во Р. 52 00:02:56,630 --> 00:02:59,130 >> А потоа и на линии помеѓу различни типови 53 00:02:59,130 --> 00:03:03,920 се малку повеќе слобода отколку тие се во C, на пример. 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 ако си оди за да се работи на Р. Еден од нив е официјалната Р почетник 62 00:03:34,610 --> 00:03:35,110 помогнеме. 63 00:03:35,110 --> 00:03:38,660 Тоа е одржуван од страна на основни програмерите на Р. 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 кој е професор на статистика Карнеги Мелон, наречена Напредно податоци 71 00:04:00,100 --> 00:04:02,160 Анализи од Основно Точка на гледање. 72 00:04:02,160 --> 00:04:04,010 Ова не е првенствено Р книга. 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 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-- Р има многу можности. 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 Затоа што, можете да ги добиете сите работи на веб-страницата на CS50 подоцна. 101 00:05:31,740 --> 00:05:37,780 И Б, тоа не е навистина толку важно да се запаметат ова од слајдови. 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 >> Па зошто се користи Р? 105 00:05:45,720 --> 00:05:49,440 Во суштина, ако имаш еден проект кој вклучува рударството големи збирки на податоци, податоци 106 00:05:49,440 --> 00:05:52,664 визуелизација, ќе треба да се користи за Р. Ако сте 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 некои резиме статистика за тоа колку долго тие поминуваат на вашиот сајт или whatever. 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 А потоа секоја вечер во 02:00, или секогаш кога ќе го планирате да се кандидира, 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 И таму е логичен тип, која е Booleans. 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 Тие се она што ние го нарекуваме низи во В Матрици, 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 Па една важна работа дека патувања луѓе во Р 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 Еден, тоа значи дека можете да го направите работите многу лесно, кои вклучуваат 157 00:08:17,500 --> 00:08:21,037 како додавање на бројот на вектор. 158 00:08:21,037 --> 00:08:23,120 Р основа ќе фигура од она што ви го велам тоа. 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 Јас бев со користење Д за време на мојата летна работа. 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 стрингот "Џон" и вториот елемент е бројот 42. 168 00:08:49,332 --> 00:08:52,540 Ако се обидете да го направите тоа, тогаш ќе добиете сè само конвертира во стринг. 169 00:08:52,540 --> 00:08:54,760 Па ние имаме низа Јован, стринг 42. 170 00:08:54,760 --> 00:08:58,250 171 00:08:58,250 --> 00:09:02,025 >> Толку необични синтаксички features-- повеќето на Р синтакса е многу слична на В. 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 Целобројна поделба е со% /%, што е многу тешко да го прочитате кога тоа е проектиран 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 Повторно, ова е местото каде што наследство Р како јазик за како не 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 и ти се обидуваш да ги користат Р во основа како додаток 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 CONNOR Харис: Ох, тоа е дојде до предавање, одлични. 200 00:10:26,248 --> 00:10:29,815 ПУБЛИКАТА: Доделувањето, тоа е би требало да се истакне од десно кон лево? 201 00:10:29,815 --> 00:10:31,440 CONNOR Харис: од десно кон лево, да. 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 ПУБЛИКАТА: Во ред. 205 00:10:36,781 --> 00:10:39,770 206 00:10:39,770 --> 00:10:42,330 >> CONNOR Харис: И на крај синтакса функција е малку чудно. 207 00:10:42,330 --> 00:10:48,460 Имаш foo во името на функцијата, се доделени за овој клучен збор функцијата, по што следи 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 е ти тип Ц, кој е клучен збор, а потоа сите броеви сакате или жици 213 00:11:04,550 --> 00:11:06,490 или whatever. 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 ќе добиете оваа вредност повика на НС која се залага за исчезнати вредност. 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 Име на вектор квадратни загради 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 За да може да се направи вектор име загради Ц, 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 на вектор како interquartile опсег, медијана максимум, без разлика, 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 Матрица со ред што добива исполнет 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 >> Ова ми се случи ми летна работа, кога бев со користење на Р 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 И така што се случи беше бев читање null вредности надвор од оваа листа, 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 Исто така, постојат објекти за да се напише произволни Р спротивставува на бинарна датотека 343 00:18:03,816 --> 00:18:05,190 и потоа да ги прочитате назад во подоцна. 344 00:18:05,190 --> 00:18:08,030 Која е корисна ако правиш голема интерактивна сесија Р 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-- multilinear регресија. 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 Првиот елемент, за y тилда x1 плус сеедно. 356 00:18:43,840 --> 00:18:46,574 357 00:18:46,574 --> 00:18:47,990 Синтакса ми, тука е малку збунувачки. 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 Можете да направите, на пример, вектор компонента y квадрат плус 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 Методот е по дифолт Пирсон корелација. 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 >> ПУБЛИКАТА: Брзи прашање 389 00:20:30,120 --> 00:20:30,360 >> CONNER 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 CONNER Харис: Вие не треба да се. 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-- па главната причина што треба да користете Р, како multilinear регресија. 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 >> Функцијата за workhorse е заговор и тоа трае два вектори, x и y. 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 >> Овие команди наведени тука, AB линија и линии, 419 00:22:09,390 --> 00:22:11,640 по дифолт овие се напишани во pop-up прозорци 420 00:22:11,640 --> 00:22:15,560 бидејќи ќе претпостави дека сте користење Р интерактивно. 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 но има функција наречена dev дот исклучи дека зема без аргументи. 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 како систем што е Линукс БСД, но кој го користи BSD. 447 00:23:37,189 --> 00:23:39,730 OS X Отворете терминален прозорец и Type R во командната линија. 448 00:23:39,730 --> 00:23:42,820 Ако имате Р студио или слично, кои исто така работи. 449 00:23:42,820 --> 00:23:46,270 За корисниците на Windows треба да бидат во можност да најдат R во Вашето Start мени. 450 00:23:46,270 --> 00:23:50,390 Тоа треба да се нарекува нешто како Р 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 ПУБЛИКАТА: Команда-простор 455 00:24:03,520 --> 00:24:06,675 CONNER HARRIS: Команда-простор, ви благодарам. 456 00:24:06,675 --> 00:24:10,030 Јас не вообичаено се користат Macs. 457 00:24:10,030 --> 00:24:13,310 Терминал, покажуваат нов прозорец. 458 00:24:13,310 --> 00:24:18,120 Нов прозорец е подесувања основни, Р. Затоа мора да се добие 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 Можете исто така да се напише Р скрипти се разбира. 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 A стрела C 1, 2. 466 00:24:46,230 --> 00:24:49,400 1, 2, 4. 467 00:24:49,400 --> 00:24:50,050 Добро, сигурно. 468 00:24:50,050 --> 00:24:51,630 Јас може да се направи на големината на фонтот поголем. 469 00:24:51,630 --> 00:24:53,030 >> ПУБЛИКАТА: Командната Плус 470 00:24:53,030 --> 00:24:53,650 >> CONNER HARRIS: Команда-Плус. 471 00:24:53,650 --> 00:24:54,191 Командната Плус. 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 Направи, стрела, С 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 Јас ќе го направи ова малку појасно, ц, ц. 506 00:26:48,090 --> 00:26:50,365 Значи она што се случи, ќе се направи мислам, ако го направам тоа? 507 00:26:50,365 --> 00:26:51,488 плус c. 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 >> CONNER Харис: Не сосема. 513 00:27:04,510 --> 00:27:05,522 Тоа е она што го добив. 514 00:27:05,522 --> 00:27:08,910 Што се случува е пократок низа, а, доби cycled. 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 >> Добро, па сега имаме оваа низа. 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 CONNER HARRIS: Не, дневникот е природни логаритми, па основа e. 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 И ако си сакал да направите некои други низа, да речеме, што n е матрица. 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 n. 558 00:29:20,360 --> 00:29:22,090 Значи имаме ова. 559 00:29:22,090 --> 00:29:26,130 >> И сега, ако сакаме да се размножуваат нив, ние би го направил n проценти пати проценти, 560 00:29:26,130 --> 00:29:27,680 затоа што тоа е n. 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 Од начинот на кој тие се, да не ви се види како кога го прогласи n, 2-4 565 00:29:37,810 --> 00:29:43,570 вектор доби cycled до ја исполни сите n? 566 00:29:43,570 --> 00:29:45,710 Ако си сакал да ги преземе eigenvalue распаѓање, 567 00:29:45,710 --> 00:29:46,960 ова е нешто што може да се направи многу лесно. 568 00:29:46,960 --> 00:29:47,709 Ние можеме да правиме Еиген n. 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 >> Па Еиген n е листа со два клуча. 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 Така што можеме да направиме vec Еиген n знак за долар вектори, запирка 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 >> Тогаш велат n пати проценти пати vec. 581 00:30:39,210 --> 00:30:42,610 582 00:30:42,610 --> 00:30:48,320 Па резултатот тука сигурно изгледа како ако ние го зазема третото eigenvalue тука, 583 00:30:48,320 --> 00:30:50,390 што соодветствува со третиот eigenvector. 584 00:30:50,390 --> 00:30:53,190 Тоа само множи се што е во оваа eigenvector, компонента-мудар, 585 00:30:53,190 --> 00:30:53,990 од страна на eigenvalue. 586 00:30:53,990 --> 00:30:57,760 И тоа е она што би се очекувало, бидејќи тоа е она eigenvalues ​​се. 587 00:30:57,760 --> 00:31:00,890 Да не има некој овде донесена линеарна алгебра? 588 00:31:00,890 --> 00:31:02,530 Неколку луѓе, ОК. 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 И, навистина, ако се земе Еиген n знак за долар вредности 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 тоа функцио против функцијата n n squared-- всушност, тоа не е навистина најдобар. 601 00:31:51,960 --> 00:31:55,632 a, b, квадрат плус b. 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, a е еднакво на 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 CONNER 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-- Ќе заборавам што DISP 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 МТ автомобили, а потоа еден од првите резултати 650 00:34:36,920 --> 00:34:38,730 ќе биде од официјалната документација r 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 П сек е време на четвртина милја. 654 00:34:48,880 --> 00:34:52,409 655 00:34:52,409 --> 00:34:55,850 Па сега можеме да направиме некои забавни нешта МТ за автомобили е поле за податоци. 656 00:34:55,850 --> 00:35:01,640 >> За да можеме да се прават работите како имиња ред, мт автомобили. 657 00:35:01,640 --> 00:35:05,490 И ова е листа на сите линии во подесеното кои се имињата на автомобили. 658 00:35:05,490 --> 00:35:10,780 Ние можеме да правиме colnames, мт автомобили ова. 659 00:35:10,780 --> 00:35:15,500 Ако го направите мт автомобили, под-нумеричка индекс, како 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 >> CONNER Харис: Јас ја внеле МТ автомобили, држачи д, 663 00:35:21,570 --> 00:35:24,180 што ми даде втора колона од мт автомобили. 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 Јас може да се земе елементи, како таков, В2. 677 00:36:24,640 --> 00:36:30,942 Јас може да се помине во векторски вака, c-- ме пушти 678 00:36:30,942 --> 00:36:34,470 користат друго име од C, како vec в. 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 загради c 4, 5, 7. 684 00:36:53,120 --> 00:36:56,540 Ова ќе ми излезе четвртиот, петтиот, и седум елементи на низата. 685 00:36:56,540 --> 00:37:01,740 Можам да направам vec, ставени во негативен индекс, како негативни 4. 686 00:37:01,740 --> 00:37:06,500 Дека ќе ме извлече со ова четвртиот елемент отстрани. 687 00:37:06,500 --> 00:37:10,140 Потоа, ако сакав да се направи парчиња, Можам да направам vec 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 Така [Беззвучен] модел lm, ајде да се повлекуваат милји за галон на тилда тежина. 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 >> Ова ни даде R квадрат на 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 и, ајде да направиме, q милји, четвртина милја време. 736 00:40:21,130 --> 00:40:26,190 Добро, тоа мора да има 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-- само можеме да направиме парцели, тежински mpg. 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 Главната еднаква наспроти тежината. 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 Добро, да, овој уред е да се биде малку досадно. 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-- јас имаат синтаксата напишано тука. 804 00:44:49,250 --> 00:44:52,280 805 00:44:52,280 --> 00:45:11,130 Па се сеќавам ние едноставно додадете модел беше mpg, тежина, 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 Р е, што е добро за. 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 можете да го користите да се јавите за да се види функции со Р. Внатрешно, 828 00:46:23,130 --> 00:46:29,850 Р е изграден на аритметички В Р е само 64-битен подвижна запирка аритметички С, 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 За еден, Р се толкува, тоа е не состави сведува на машински код. 832 00:46:39,250 --> 00:46:42,170 Па можете да се запишете на вашиот внатрешниот јамки во C, а потоа се 833 00:46:42,170 --> 00:46:45,920 предност за користење на Р. допаѓа тоа е малку поудобно од В. 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 Но, можете да го направите тоа, наместо да има за да напишете мајчин Р порта од нив. 843 00:47:16,480 --> 00:47:22,725 И на the-- и повторно, како и ако погледне во поголемиот дел од стандардните библиотеки Р, 844 00:47:22,725 --> 00:47:25,600 на internals, на internals се случува да се користи странски функција 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, и тие ќе само треба Р омоти околу нив. 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-like системи, 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 Единствениот начин на кој може всушност Р кажам што се случи 873 00:48:50,810 --> 00:48:54,410 е со менување на меморијата која Р даде да го преку странски функција 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 има изградено во [Беззвучен] за да дознаете должината на вектори, но C не е така. 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 е само сет ова параметар нула и потоа iterate преку 884 00:49:23,470 --> 00:49:28,760 од 1 до n ѕвезда, бидејќи n е покажувач на должина, 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 дека тие обично ќе биде во В. 890 00:49:43,970 --> 00:49:47,780 >> Па го зема низа аргументи како покажувачи. 891 00:49:47,780 --> 00:49:57,090 Но аргументите еден вредност како n, потребно е само како вредности со копија, 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 го напишете cmd 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 dot така. 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 >> За ова се потребни аргументи кои се прва името на функцијата во C 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 >> Значи во овој случај, бидејќи точка prod има аргументи vec1, vec2, и int n, n надвор. 915 00:51:08,520 --> 00:51:11,980 До точка в имаме точка prod, името на функцијата 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 >> Повторно, ова не е обично воведна тема за Р. 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 Врз основа на тоа како Р спроведува повторување внатрешно, тоа може да биде бавно. 937 00:52:26,100 --> 00:52:28,540 Тие, исто така, само изгледа грдо. 938 00:52:28,540 --> 00:52:32,410 >> Р справува вектори многу убаво, па Честопати не треба да го користат. 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 со овие функции се нарекува висок цел функции, мапа, намалување, 942 00:52:42,490 --> 00:52:44,404 Се најде, или филтер. 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 функција, како и функцио a, b, се врати плус b. 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 тој ги објаснува многу добро во додатокот на својот Р програмирање. 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 Во првата линија, vec стрела, дека стрелката не треба да биде таму. 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 еднаквите в, 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 Така што само ќе добие вектор тоа е продолжен до 1. 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, или whatever. 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 Значи мојата природна наивни инклинација е да се каже во ред, 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 Добив повеќе од 1.000 пати забрза. 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 Р, да бидам искрен, не го прави тоа навистина го направите тоа многу добро. 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 Но null не е како C каде што, ако се обидете да го прочитате 1026 00:57:08,527 --> 00:57:11,360 од една стара покажувач, [Беззвучен] покажувачот на нула, тоа само СКГ грешки 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 Наместо тоа, ќе null 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 И, за жал, има без вистинска Р строг режим 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 Ова е еквивалентно да се тврди С, ако сте зборуваше за тоа. 1046 00:58:00,480 --> 00:58:02,690 Јас не мислам дека С тврдат е предавање тема, 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 >> Во секој случај, ОК. 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 Исто така, иако не сум ТФ, јас сум исто така многу 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 >> Ако сакате да се тоа, а потоа само да зборувате со вашиот ТФ 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 >> CONNER HARRIS: Се разбира. 1078 00:59:30,617 --> 00:59:34,910 >> ПУБЛИКАТА: Каков вид на проект ќе го користи студент ЦС Р за? 1079 00:59:34,910 --> 00:59:37,427 1080 00:59:37,427 --> 00:59:40,510 CONNER Харис: Значи, ако не си го направи нешто што е чисто во податоци за рударство, 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 Можеби ќе сакате да го користите за истражување компонента на нешто. 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 многу лесно да се направи во само еден краток Р скрипта која може да се закаже 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 на пример, дека е нешто можеби ќе сакате да го користите за истражување. 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