ЦОННОР Харрис: И даље сам Мислим неке узбудљиве видео произведени од стране професионалних консултантских који користи Р пуно у свом раду. НАРАТОР: Шта је иза статистике, аналитичари, и визуелизације да су данашњи научници најпаметнији података и пословни лидери се ослањају на да моћне одлуке? Ви не можете увек видети. Али то је тамо. То се зове Р Опен Соурце р-- статистички програмски језик да стручњаци дата тхе ворлд преко употребе за све од мапирање широког социјалног и маркетинг трендови на мрежи развоју финансијског и климу модели који помажу возе наше економије и заједнице. Али, шта је Р и где је Р почети? Па првобитно Р почела овде са два професора који је желео бољи статистички платформа за своје студенте. Тако су створили једну по узору након статистичке језику С. Они су, заједно са многим другима, Стално ради и помоћу Р, стварање алате за проналажење и Р Нове апликације за Р сваки дан. Захваљујући овоме је широм света напор заједница, Р расла са хиљадама корисничких-цреатед библиотека изграђених за побољшање Р функционалност и Публика-соурце валидација квалитета и подршка од најпознатијих индустрија лидери у свим областима које користи Р. Што је супер, јер Р је најбољи у ономе што ради. Брзо пупи стручњаке и лако тумаче, у интеракцији са, и визуелизацију података показује њихов брз расте број корисника широм света Р па да видимо како опен соурце Р наставља да обликује будућност статистичка Анализа и наука података. ЦОННОР Харрис: ОК, супер. Дакле, мог излагања ће бити мало више трезан. То неће укључивати много да узбудљиво позадинска музика. Али, као што сте видели на снимку, Р је врста опште намене програмском језику. Али то је углавном створена за статистичког рада. Тако је дизајниран за статистику, за анализу података, за дата мининг. И тако можете видети у многим избори дизајн да креатори Р маде. То је дизајниран за углавном, људи који нису стручњаци у програмирању, који су само покупити програмирање на страни тако да могу да раде свој посао у друштвеним наукама или у статистици или шта год. Има много веома значајне разлике из Ц. Али, синтакса и парадигме да користи су углавном исти. И требало би да осећате прилично као код куће десно ван палицом. То је императив језика. Не брините превише о томе ако не знате термин. Али постоји разлика између императив, декларативно, и функционална. Императив само значи да се изјаве које су у основи команде. А онда је преводилац или рачунар их прати једну по једну. То је слабо откуцао, постоје Тип декларације у Р. И онда је линија између различитих врста су мало више него лабава су у Ц, на пример. И као што сам рекао постоје веома обимне објекти за графикона, за статистичко анализа, за рударство података. Они су оба уграђена у језика и, као што је видео рекао, хиљаде библиотека трећих лица која можете преузети и користити бесплатно са врло лабаве условима лиценце. Дакле, у принципу, ја бих вам препоручио да погледате ове две књиге ако ћеш радити на Р. Оне од њих је званични Р почетнике гуиде. То је одржавана од стране цоре програмери Р. Можете га преузети опет, без пунити и правно на том линку тамо. Сви ови слајдови ће ићи на интернету, на сајту ЦС50 Након тога се врши. Дакле, нема потребе да копирате ствари доле махнито. Други један је уџбеник за Цосма Схализи, који је професор на статистике Карнеги Мелон, под називом Напредна података Анализа фром ан Основна Поинт оф Виев. Ово није првенствено један Р књига. То је статистика књига и то је анализа података књига. Али је врло приступачна људима који имају најмању руку статистичког знања. Ја никада нисам узео формално курс. Знам само делове из разних савезничких предмета да сам се курсеве у. И био сам у стању да разумем савршено добро. Сви подаци су дати у Р. Они су направљени у Р и они такође имају кода огласа испод сваког цифра која вам кажем како правите сваки лик са Р кода. А то је врло корисно ако покушавате да имитирају нека цифра видиш у књизи. И опет фрее довнлоад стат.цму.еду/цсхализи/ Жао нам је, да се смање Тилде цсхализи. Ја ћу се побринути да исправите када је званични слајдове ићи горе. / АДАфаЕПоВ који је само акроним од наслова књиге. Дакле, уопште цавеатс--: Р има много могућности. Само ћу бити у стању да покрије површина пуно ствари. Такође први део семинара ће бити нешто од депоније података. Ја сам сасвим ми је због тога. У суштини, ја ћу уводе вас у многим стварима право искључити шишмиш, иде što je brže moguće. И онда долазимо до забаван део, који је демо где могу вам показати све да смо разговарали о на екрану. И ви можете играти сами. Тако да ће бити доста техничке ствари бачена горе овде. Не брините о копирању све то. Јер, А можете добити све ствари на сајту ЦС50 касније. И Б, није толико важно да запамтите ово са слајдовима. То је важније да добијете неки интуитивно објекат са њом и која долази из само зезање. Зашто користити Р? У основи, ако имате пројекат који укључује рударство велике скупове података, подаци визуелизација, ви треба да користе Р. Ако сте ради компликоване статистичке анализе, то би било тешко у Екцел, На пример, било би такође може зликовца-- такође ако радите статистичка анализа која је аутоматизован. Рецимо да сте одржавање сајт. И желите да прочитате дневник сервер сваки дан и саставити неки списак, као првих земаља које су ваши корисници долазе из, неки резиме статистике о томе колико дуго они троше на Вашем сајту или слично. И желите да покренете сваки дан. Сада, ако ви то радите у Екцелу, морао би да иде на ваш лог сервер, увоз је у један Екцел табеле података, покренути све анализе ручно. Са Р, можете само да напишем један сценарио. Распоред је да ради сваки дан из оперативног система. А онда свако вече у 2:00 часова, или кад год је распоред да покренете, она ће изгледати кроз своје Интернет саобраћај за тај дан. А затим следећег дана, ти ћеш имају овај сјајан, нови извештај или шта год са свим информације сте тражили. Дакле, у основи Р Цисцо програмирање у односу на Цисцо анализе. Прелиминарни се ради. Идемо у реалним стварима. Дакле, постоје три реална врсте у језику. Постоји нумерички тип. Постоји нека врста разлике између цели бројеви и плутајући тачке, али не и стварно. Ту је лик тип, који је жице. А ту је логичан тип, који је боолеанс. И ви можете претворити између типова коришћењем ове функције као нумерички, као знак, као логична. Ако зовете, на пример, као нумеричка на стринг, она ће покушати да прочитате тај стринг као број, на исти начин да а2и и сцанф уради, и Ц. Ако зовете као нумеричка на тачно или нетачно она ће претворити 1 или 0. Ако зовете као лик на било шта што ћу цонверт то у један ниска заступљеност. А онда су вектори и матрице. Дакле, вектори су у основи 1 дименсионал низови. Они су оно што зовемо низова у Ц матрице, 2 дименсионал низови. А онда више дименсионал низови иоу цан Имам 3, 4, 5 димензије или како год нумеричких вредности, жица, логичких вредности. Такође, имате спискове који су нека врста асоцијативног низа. Ја ћу ући у ту мало. Дакле, једна важна ствар да путовања људе у Р је да нема прави, чисти атомске врсте. Нема стварна разлика између број, као бројчане вредности, и списак нумеричких вредности. Нумеричке вредности су заправо исти као вектора дужине 1. И то има бројне важне импликације. Један, то значи да можете да урадите ствари врло лако да укључују као додавање број у вектору. Р ће у суштини цифра шта сте тиме хтели да кажете. И ја ћу се на то за секунду. То такође значи да нема шансе за врсту цхецкер-- у мјери да је тако нешто постоји у р-- да кажем када сте прошли у једном вредности када очекује низ или обрнуто. А то може изазвати неке одд невоље које сам налетео на када Користио сам Р време мог летњи посао. И не постоје мешовити типа низови. Дакле, не можете имати низ били први елементи се, не знам, стринг "Јован" и Други елемент је број 42. Ако покушате да то урадите, онда ћете добити све је претворена у стринг. Дакле, имамо низ Џон, низ 42. Тако необично синтактичка феатурес-- највише Р синтакса је веома сличан Ц Постоји неколико важних разлика. Куцање је врло слаб. Дакле, не постоје променљиви декларације. Додела користи чудно оператер грешка мање од цртицом. Коментари су са хасх знак. Сада претпостављам дана ми то зовемо хаштагот иако то није заиста није аццурате-- двоструке косе. Модуларни остаци су са знацима %%. Цео број подела је са% /%, што је веома тешко за читање када је пројектовано на екрану. Можете добити опсега цели бројеви са дебелог црева. Дакле, 2,5 ће вам дати вектор од свих бројева 2. до 5.. Низови су један индексиране, која вијци много људи се ако су из више типични програмски језици, као Ц, где је већина ствари су нула-индексирани. Опет, ово је место где наслеђе Р-ов као језика за као да не професионални програмери долази у. Ако сте социолог или економиста или нешто а ви покушавате да користите Р суштини као помоћно средство то иоур важнији стручни рад, ћеш наћи један индексирање мало природније. Зато што почнете бројање на 1 у свакодневном животу, а не 0. Фор-петље, ово је слично Еогеасп изградити у ПХП, које ћете доћи до леарн у-- ускоро. Што је за вредности у вектор и онда можете да урадите ствари са вредношћу. ПУБЛИКА: То је искрсло у предавању. ЦОННОР Харрис: Ох, то је дошао предавање, одлично. ПУБЛИКА: Задатак је она треба да укаже са десна на лево? ЦОННОР Харрис: с десна на лево, да. Можете мислити о томе као вредности на право гурнуо у променљивој levo. ПУБЛИКА: У реду. ЦОННОР Харрис: И на крају Функција Синтакса је помало чудно. Имате функцију име Фоо, додељен на овој функцији кључних речи, затим свим аргументима а затим и Тело функције после тога. Опет те ствари могу Изгледа помало чудно. Они ће постати друга природа после радите са језиком за мало. Тако вектора, начин можете изградити вектор је ти тип Ц, што је кључна реч, онда сви бројеви желите или жице или шта год. Аргументи такође бити вектори. Али добијени низ бива сравњена са земљом. Дакле, не можете имати матрице где је неки елементи су појединачни бројеви а неки елементи су сами низови. Дакле, ако покушате да изгради Арраи су први елемент 4 а други елемент је низ 3,5 ћеш само добити три елемента низа, 4,3,5. Они не могу бити мешовитог типа. Ако покушате да читам и пишем изван граница вектор ћете добити ову вредност која се зове на А која се залаже за нестале вредности. А ово је намењена као статистичари који раде са непотпуним сета података. Ако нанесете функцију која је требало да се само један број у низу онда оно што ћете добити је, функција ће мап преко низа. Дакле, ако ваша функција рецимо узима број и враћа га квадратних. Захтјев да се на низ 2,3,5 Шта ћете добити је низ 4,9,25. А то је врло корисно зато што ти значи не морају да пишу за петље за раде врло једноставне ствари као што су применом функција за све чланове сета података. Који ако радите са великим сетови података, морате да урадите много. Бинарни функције су примењена унос уписом. Ја ћу у то. Можете им приступити са низовима или вектори са заградама. Дакле, вектор име квадратних заграде 1 ће вам дати први елемент. Вектор име угласте заграде 2 ће вам дати други елемент. Можете проћи на вектор индекса и ви ћете се вратим у основи под фактором. Дакле, можете да урадите вектор име заграде Ц, 2,4 а ви ћете изаћи вектор који садржи Други и четврти елементи низа. А ако желите само укратко Статистика вектора као интеркуартиле опсег, средња, максимум, без обзира, само да укуцате резиме вектор име и склоним то. То није стварно корисно у програмирање али ако играте око сетова података, то је згодно. Матрицес-- основи виши дименсионал низови. Имају посебном ознаком синтаксу. Матрица са низом да добије испуњен у-- извињавам се, матрица са подацима, број редова, број колона. Када имате неке податке, да попуњава Низ основи ће од врха до дна Прво. Онда лева на десно. Дакле, овако. И Р је изграђена у матрик множења, спектралне разлагање, дијагонализација, много ствари. Ако желите више димензионални Арраис, СО 3, 4, 5, или шта год димензије можете то да урадите. Синтакса је низ слабо једнака ц, затим листа димензија. Дакле, ако желите 4 димензионални низ димензија 4, 7, 8, 9, низ, Дим једнако ц (4,7,8,9). Приступате појединачних вредности са заградама Први унос зарез други унос. Можете добити читаве кришке редова или колона. Са овим непотпуне синтаксе је само ред број зарез или зарез колону број. Дакле, спискови су нека врста повезан низ. Они имају овде своју синтаксу. Опет не махнито цопи све ово. Ово је само да људи пролази кроз слајдове касније има све ово у лепом референце. И ово ће постати веома природно некада Ја стварно шетња кроз демос. Тако наводи у основи повезане низове. Можете приступити вредности са Име листа, знак долара, кључ. Дакле, ако ваша листа се зове Фоо, онда можете да приступите тако. Можете добити целу кључ-вредност паровима доношењем у квадратном конзола индекса. Ако читате из непостојећег тастер, добићете нула. Неће грешкама. Ствар је у томе, Р ће учинити како много са нулл колико може. А то може да значи да ако сте не очекујући да ће добити нула од неке листе читање, добићеш неке непредвидиве грешке Даље linija. То ми се десило мом летњи посао када сам користио Р где сам променио начин одређени Списак је дефинисан на једном месту али нису променили касније на код које гласе вредности од њега. И шта се десило сам био читање нулл вредности од ове листе, пролази их у функције, и веома збуњена када сам добио свакакве рандом бесконачност обрезивање до у овој функцији. Јер, ако примените извесне максималне или минималне функције нулл, ћете добити бескрајне вредности напоље. Оквири података, они су подкласс листе. Сваки вредност је вектор исте дужине. И они користе за представљање, у суштини, табеле са подацима. Ту је ово иницијализација синтакса. То ће све, опет, бити много јасније када дођете до демо. И лепа ствар о оквири података јеси ли то ти могу да дају имена на свим колонама и имена свих редова. И то чини приступ их мало пријатније. Такође, ово је како већина функција која прочитајте у податке из Екцел табеле или из текстуалних датотека, на пример, ће читати у својим подацима. Они ће га ставити у нека оквира података. Тако фунцтионс-- функција синтакса је мало чудно. Опет је име функције, доделити, ову функцију кључних речи, а затим листа аргумената. Дакле, постоје неке лепе ствари о томе како функционише радим овде. За једну, заправо можете доделити дефаулт вредности за одређене аргументе. Дакле, можете рећи Р1 екуалс-- можете рећи фоо је функција којој Р1 једнако нешто по дефаулту ако корисник специфицира нема аргумената. Иначе, оно је ставио у. И то је врло згодан јер много наших функција често су десетине или стотине аргумената. На пример, оне за цртање графикони или цртања сцаттер парцела имају аргументе који контролишу све из наслова и осе етикете у боји линије регресије. И тако, ако не желите да се људи одредити сваки од ових стотине аргумената контролише сваки аспект плац или регресија или било шта друго, лепо је имати ове подразумеване вредности. И онда заиста могу Пиши као што вратио видио овдје. Или наћи бољи пример. Када позовете функција заправо можете позовите их користите имена аргумент. Дакле, овде је пример матрица конструктор. Потребно је три аргумента. Обично имате податке, која је вектор. Имате Н ред, који је број редова. Имате Н цолс-- број колона. Ствар је у томе да куцате Н ред једнако год и Н кол износи било шта када је зовеш ову функцију, заправо можете да их преокрене. Дакле, можете прво и Н ред ставити Н цол друга и да не прави никакву разлику. Дакле, то је лепо мало функција. Да ли увоз и извоз. Ово се може урадити, у основи. Ту су и објекти за написати произвољно Р објеката у бинарне датотеке а затим их прочита касније. Који је згодно ако радите велика интерактивна сесија: Р и морате да сачувате ствари врло брзо. По дефаулту Р има радни директоријум да се фајлови написан у и прочита из. Можете видети да са гетвг, то променити са сетдв. Ништа посебно интересантно овде Тако је сада стварне статистике стуфф-- Мултилинеар регресија. Тако уобичајене синтакси је мало компликовано. Овај модел је велики објекат у основи. То бива додељен ЛМ, што је функција позива. Први елемент, Тхе И Тилде Кс1 плус год. Мој синтакса овде је мало збуњујуће. Ја сам сасвим ми је, ово је стандардни начин да Цомпутер Сциенце књиге ово. Али то је мало чудно. У основи, то је ЛМ заграде, прва тачка је вариабле-- је, зависи променљива Тилде Кс1 плус, плус к2 Међутим многи независни варијабле имате. А онда оне могу бити или вектори, исте дужине. Или могу бити цолумн заглавља у раму података који сте управо навести у Други аргумент података оквир. Можете одредити сложенији Формула тако да не морате да линеарно регреса а један зависну променљиву, или један вектор на унапред постојеће вектор. То можете учинити, на пример, вектор компонента година на квадрат плус 1 и регреса да против лог неке друге вектора. Можете штампати Изводи из модел са овом командом се зове суммари-- само резиме паренс модел. Опет нешто што треба разјаснити. Нешто друго да ће се кориговати када слајдови иду на интернету. Ако желите само да израчуна једноставна корелација можете користити корелација вектора 1 вектор 2 функција језгра. Метода је по дефаулту Пеарсон корелације. То су стандардне оне које можете да урадите. Такође Спеарманов и Кенделл корелације што су неки низ Редослед корелација. Па они не израчуна производ тренуци између самих вектора, али обичним налога вектора је. Ја ћу објаснити касније. ПУБЛИКА: Брзо питање ЦОННЕР Харрис: Наравно. ПУБЛИКА: Дакле, када сте обрачуна Из простог корелације претпостављате да постоји статистичка значај у корелацији? ЦОННЕР Харрис: Не мораш. ЛМ је у основи само машина. То ће се у двије ствари и да ће испљунути коефицијенти за најбоље уклапају у линије. Он такође наводи стандардна Грешке на овим коефицијентима. И то ће вам рећи, као што је пресретање статистички значајна или разлика од 0. Да ли је нагиб од најбољих Фит линија статистички различит од нуле, и тако даље. Тако да претпоставља ништа, мислим је најбољи одговор на твоје питање. OK. Плоттинг-- тако да је главни разлог због којег би користе Р, као Мултилинеар регресије. У суштини сваки језик има објекат за то. И искрено Р је синтакса за регресија је мало волшебни. Али, цртање, где је стварно сија. Радна машина функција је земљиште и потребно је два вектора, Кс и И. А онда су елипсе се залаже за веома Велики број опционих аргумената који контролише све од наслова до боја различитих линија или различитим тачкама, од врсте парцеле. Можете имати расејања парцеле или линија парцела. [Неразумљиво] 2 вектори исте дужине. Можете претходити са приложити оквир података у сценарију. И то ће вам омогућити да користите само колону заглавља уместо одвојених вектора. Можете додати најбоље уклапају у линије и локални регресија криве то иоур графикона. Ове команде листед Овде, АБ линија и линија, по дефаулту то гет записано у поп уп прозора јер претпоставља да користите Р интерактивно. Ако нисте можеш пишу два датотеке које су у заиста било ком формату који желите. Жао ми је, имам куцању Управо сам схватио. Ако желите да отворите други графички уређај можете да користите ову функцију која се зове ПНГ или ЈПЕГ или много других формата слике. И можете писати на графиконе год назив датотеке сте навели. Да бисте отказали да морате да Користи, Ја нисам писао ово у слиде-- али је функција зове дев тачка гола која не узима никакве аргументе. Затим, ту су објекти за 3Д цртање и за цртање контура Ако желите да се графикони две независне варијабле. Нећу ући у ово сада. Такође постоје неке објекти за анимацију они су обично одржава од стране трећих лица. Учинио сам анимације са графиконима Р, али ја нисам користио ове треће лице библиотеке. Дакле, ја не могу да потврдим да колико су добри. Оно што сам препоручио ако желите да анимације помоћу Р је можете написати све оквири за анимације и онда можете користи Трећа страна програм-- оне типичне називају ФФмпег или ИмагеМагицк-- да ститцх све своје оквире у једну анимацију. Дакле, време за демо. Дакле, ако користите било Уник као систем што је Линук БСД али ко користи БСД. ОС Кс отворите прозор терминала и Типе Р на командној линији. Ако имате Р Студио или слично, која такође ради. За кориснике оперативног система Виндовс требало би да стању да пронађе Р у менију Старт. Треба се назива Нешто као Р к64 3 тачке год. Отвори то горе. Зато ме сада хајде да отворите прозор терминала. У реду, претрага. ПУБЛИКА: Цомманд простор ЦОННЕР Харрис: Цомманд простор, хвала. Не обично користе Мац рачунаре. Терминал, показују нови прозор. Нови прозор је подешавања Основна Р. Дакле, требало би да а поздравна порука, овако нешто. Дакле, ја користим Р интерактивно. Можете писати Р скрипти наравно. У суштини скрипте рун тачно исти начин као Ако сте седели на рачунару куцање у свакој линији у исто време. Почнимо тако што вектор. Стрелица Ц 1, 2. 1, 2, 4. У реду, наравно. Ја могу да чине фонт сизе већа. ПУБЛИКА: Цомманд плус ЦОННЕР Харрис: Командно-плус. Командно-плус. У реду, како је то? Dobro? OK. Почнимо од проглашавајући вектор листу. Да ли је, стрелице, Ц 1,2,4. Можемо видети. Не брини за конзоле тамо. Заграде су тако да ако исписати веома дуге низове, можемо где си. Један пример би било да сам Само желим опсег 2 до 200. Ако штампана веома дуго Арраи, заграде су само тако могу да задржим који индекс стаза ми смо на ако гледам кроз ово визуелно. Тако у сваком случају, имамо. Зато сам раније рекао да низови интеракцију веома лепо са, на пример, унарни операције лике тхис. Па шта мислиш да ћу добити ако откуцате плус 1? Да. У реду, сада ћу направити ово другачије низ. Рецимо б ц 20,40, 80. Pa šta ti misliš Ова команда ће урадити? Додајте елементе. И тако у суштини то је оно што ради. Дакле, ово је прилично згодно. Тако сам како би било да урадим. Ц је, рецимо, 6 пута 1 до 10. Па шта желим да видим садржао, мислиш? Дакле дељиви са шест. Сада, шта мислиш ће се десити ако урадим ово? Ја ћу направити ово мало јасније, ц, ц. Дакле, шта се дешава, зар не Мислим, ако урадим ово? плус Ц. [Неразумљиво] ПУБЛИКА: Или грешка или само додаје прва три елемента. ЦОННЕР Харрис: Не баш. То је оно што имамо. Шта се дешава је краћи низ, а, добио циклус. Тако смо добили 124, 124, 124. Да. У суштини, можете да видите овакво понашање пре, плус 1, као подкласу оваквог понашања, гдје најкраћи низ је само број 1, који је низа један елемент. Само се каже вектор све време уместо низа, јер то је оно што је Р документација обично ради. То је укорењена Ц навика. У реду, па сада имамо овај низ. Дакле, имамо овај низ, ц. Можемо да добијемо резиме Статистика на ц, ц. скраћеном И то је лепо. Дакле, хајде да урадимо неке ствари матрице. Рецимо м је матрица. Хајде да јој три са три једног. Дакле, нровс једнако 3, и нцолс износи 3. И за податке идемо Па-- па шта мислиш да ће да уради? Добро, то је следећи. То је нров и нцолумн. Дакле, оно што сам урадио је да сам прогласио три са три матрице и ја сам прошао у низу од девет елемената. Дакле логаритмом свих елементи један до девет. И све те вредности попунити Уп Тхе арраи-- жао? ПУБЛИКА: То су основе 10 стабла? ЦОННЕР Харрис: Не, дневник је природне логаритми, тако да база е. Да, ако сте желели база 10 дневник, мислим да бих да се улогујете год, подијељена лог 10. И тако су подаци из [неразумљиво] само пуни низа, тако да од врха до дна, затим лева на десно. А ако сте желели да радите неки други Арраи, рецимо н матрица. Хајде да урадимо, не знам, 2 до 13. Или ћу урадити нешто више занимљиво. Ја ћу од 2 до 4. нров једнако, рецимо, 3. нцол једнако 4. н. Дакле, имамо ово. А сада, ако желимо да се размножавају њих, ћемо урадити Н проценат пута одсто, јер је то бр. И ми имамо матрице производе. По Они који начин, да ли сте видели како када сам прогласио Н, 2 до 4 вектор добио циклус до да напуни све н? Ако желите да се еигенвалуе разлагање, ово је нешто што можемо учинити врло једноставно. Можемо да урадимо еиген н. И ово је наш први сусрет са листе. Дакле, Еиген н листа са два кључа. Вредности, које је овај низ овде. И вектори, који је овај низ овде. Дакле, ако желите да издвојите, рецимо, тај трећи колона из матрице еигенвецторс, јер су еигенвецторс су вектори колоне. Дакле, можемо да урадимо већ еиген Н знак долара вектори, зарез 3, на [неразумљиво]. Вец. Да ли је то, као што се може очекивати. Онда кажу н пута одсто пута већ. Дакле, резултат овде свакако изгледа ако смо узели трећи еигенвалуе овде, што одговара трећи еигенвецтор. Само умножава све у ово еигенвецтор, компонента-мудар, од стране еигенвалуе. И то је оно што бисмо очекивали, јер то је оно што су својствене. Да ли је неко овде није узети Линеар Алгебра? Неколико људи, у реду. Само се мозак офф за мало. И заиста, ако узмемо еиген н Доллар сигн вредности 3 пута вец, и добити исту ствар. То је другачије форматиран као низ вектор уместо колони вектора, али велика ствар. И тако они су у основи лепо ствари које можемо да урадимо са матрицама, показале листе. Ја треба да покаже лепо ствари о функцијама, као. Дакле, хајде да говоре-- [неразумљиво] Функција, назовимо да фунц против функцији н скуаред-- Заправо, то није баш најбољи. а, б, правоугаону плус б. Дакле, једна ствар у вези функције, поново су се не треба експлицитне повратне изјаве. Дакле, можете само-- последњи исказ оцењени ће бити враћен изјаву, односно вредност се вратио. Дакле, у овом случају, ми смо само оцјену једна изјава, а на квадрат плус Б. То ће бити вредност подразумевани повратак. Никада не шкоди да стави у врати вредности експлицитно, поготово ако имате посла са функција веома компликованог логике проток. Али ти не требају. Тако да сада можемо да урадимо фунц 5, 1, и ово је у суштини оно што смо очекивали. Нешто друго можемо да урадимо, ми заправо може да уради фунц б једнако 1, А једнако 5. Дакле, ако одредите који број овде, који даље иде у којој Аргумент у функцији, можемо флип около Ове вредности где год желимо. ПУБЛИКА: Да ли постоји неки разлог да се напише са б једнака за разлику од само коришћењем бројеви и зарез? ЦОННЕР Харрис: Да, обично ово ако имате функције са много аргумената. То је можда често бити као заставе да само бих желите да користите у ретким приликама. И на овај начин можете вас само-- се може односити на специфичне аргументима који желите да користите неподразумевана вредности за, а ви не морате да написати гомила застава износи лажне њима. Или могу поново пишем ово са подразумевани вредност као Б једнак 2. А онда сам могао да урадим ф фунц, Ја ћу учинити 4, 1 овај пут. И 17, који је 4 квадрат Плус 1, као што би се могло очекивати. Али сам такође могао само позовите са фунц 4, а ја ћу 18, јер Ја не прецизира б. Дакле, Б добија дефаулт вредност 2. У реду, тако да сада ако сте Следећи заједно са демо, тип ову линију под вашом командом затражити и видимо шта искрсне. Заправо, не ради то. Тип ово. Требало би да добијете нешто овако. Тако мтцарс је изграђен у подацима сет за ову демонстрацију сврхе да долази са-- која долази у стандардно са вашим р дистрибуције. Ово је компилација статистике из и питање часописа Мотор Тренд је 1974 на бројним различитих модела аутомобила. Дакле, нема миља по литру, цилиндерс-- Заборавио сам шта дисп је-- коњских снага. Вероватно. Ако сте управо Гоогле МТ аутомобила, онда је једна од првих резултата ће бити од Оффициал Р документација и да ће објаснити Сви ови подаци поља. Дакле, тежина је- мас је тежина аутомобила у тонама. П сец је време четврт миље. Тако да сада можемо да урадимо неке забавне ствари о МТ аутомобила је поље података. Дакле, можемо да урадимо ствари као имена ред, мт аутомобила. А ово је листа свих редова у предвиђеног датума који су имена аутомобила. Можемо да урадимо цолнамес, МТ аутомобила ове. Ако то урадите мт аутомобили, под-индекса нумерички, као и 2. смо добили другу колону из ово, што би било цилиндара. ПУБЛИКА: Шта си урадио? ЦОННЕР Харрис: Ја откуцао МТ аутомобили, држачи Е, који ми је дао други Колона од мт аутомобила. Или, ако желимо ред, Могу да куцам мтцарс Цомма 2, на пример. Друго коло 2 зарез, тако. И то иде у вашем реду. Ово само вам даје колоне, али колона као вектор. Управо сам схватио сада Заборавио сам да покаже неке цоол ствари о вектора да можете да урадите са индексима. Дакле, дозволите ми да то сада. Па хајде да урадимо Ц гетс-- стављање ово паусе-- 2 пута 1 до 10. Дакле Ц је само да се вектор 2 до 20. Ја могу да елементе овако, Ц2. Могу проћи у вектор овако, ц-- ме пусти користити друго име него ц, као и вец ц. У суштини, радим ово тако да не добијете збуњени између Ц као вектор изградња функција, а затим ц као име променљиве. Вец држачи ц 4, 5, 7. Ово ће ме изаћи четврти, пети, и седам елементи низа. Ја могу да урадим вец, ставити у негативан индекс, као и негативне 4. То ће ме изаћи са Четврти елемент уклоњен. Онда, ако сам хтео да урадим кришке, Ја могу да урадим ВЕЦ 2 до 6. 2 дебелог црева 6 је само још један вектор, која је 2, 3, 4, 5, 6. Пљује да. Тако у сваком случају, назад у мт аутомобила. Дакле, хајде да урадимо неке регресије. Рецимо модела гетс-- хајдемо линеарно регресс-- Не знам. Прво да не придајем мтцарс, наравно. Дакле, [неразумљиво] Модел ЛМ, хајде да регреса миља по литру на Тилде тежине. А онда оквир подаци мтцарс. Дакле, резиме модела. У реду, тако да ово изгледа мало компликовано. Али, у основи, види као да смо покушати да изрази миља по галону као линеарна функција тежине, онда смо стигли ову линију, који пресреће у 37.28. 37.28 ће бити теоретске миља по галону аутомобила који је тежак нули. А онда за сваки додатни тон, куцате око пет миља на галон с тога. Оба ова коефицијената сте можете видети, стандардне грешке нема. И они су веома статистички значајна. Дакле, можемо бити веома сигурно 1 е 10 у негативну 10. СО 1 пута нешто да негативно 10, да ако се тежи ауто, она ће имати лошије миља на галон. Или можемо тестирати неки други модел. Као уместо назадује то на тежини, хајде да регреса на дневнику тежине, јер можда ефективне тежине на километражу је некако није линеарна. То нам је дало Р квадрат на 0.7528. Дакле, хајде да пробамо ово. Овај пут идемо урадите другачији променљива, превише. МОДЕЛ2. Дакле резиме, МОДЕЛ2. У реду, тако да опет смо стигли нашу најбољу фит линију. И то времена-- готово то каже, у основи да сваки пут сте повећа тежину ауто за фактор е изгубите оволико миља на галон. И тако овај пут наша заостала стандардни еррор то-- то нема везе, стварно. Преостали Стандардна грешка је у суштини само стандардна грешка да сте напустили после тебе одузети Линија тренда. И наш Р квадрат овде је 0,81, што је мало боља него што смо раније имали, 0.52. И сада хајде да додам термин за ове регресије. Дакле, хајде да регреса миља по галону како на дневнику пондера и, хајде да урадимо, к миља, четврт миље време. У реду, она мора имати до-- Алл Ригхт, ксец. Ксец. Ствари-- је, шта? Дозволите ми зовемо нешто друго осим МОДЕЛ2. Пусти ме зову модела3. И сада можемо да урадимо збирни модела3. И тако опет, ово је у основи оно што би се могло очекивати. Имате позитиван разговор. Ефективна повећање тежина је негативан. А ефективна повећање четврт миље време је позитиван, али иако мањој мери него тежине. Сада интуитивно, можете смисао ово рекавши мислите о спортским аутомобилима. Постоји веома брзо убрзање, врло кратком Куартер Миле пута. Такође су да користе више гаса, док разумније аутомобили иду да спорије убрзање, виши Куартер Миле пута, и користе мање гаса ,, тако више миља по литру. Veliki. И сада је време да плот нешто овако. Дакле, хајде да Па-- тако голи кости можемо да урадимо плотс-- јер сам привржен ове податке оквир пре-- можемо да урадимо парцеле, мт мпг. Нека ово мало већи. Тамо смо у основи имају скатер земљиште, али су поени су мало тешко да видите на ово. Не сећам се шта је импровизовано Синтакса је за промену заплет. Претпостављам да ће ово бити добро време да се, тамо је лепо Уграђен помоћ карактеристика, помоћ цитати функционишу име. Ми ћемо изнети у суштини шта желите. Мислим да стварно ћу урадити Тип једнако п за бодове парцела. Да ли је то нешто променити? И не, не баш. U redu. Из неког разлога, када сам то урадио на свом рачунару пре неког времена, све сцаттер тачке били су много јасније. У сваком случају, су растурање врста видљиво? Тамо је један. Неколико постоји, неколико тамо. Можете некако их виде, зар не? Дакле, ако желите да додате најбољи фит линију на овој парцели овде, што је мало голи бонес-- дозволите ми да мало лепше. Главни једнака у односу на тежини. Миља по литру. Опет, можете видети како корисно опциони аргументи су овде са такође не морате да ставите ствари у сигурно би са аргументима тастатуре када имате парцела, јер они узимају доста аргумената. Кслаб једнака маса, тежина, тона. U redu. ОК, да, овај уређај је био помало досадан. Али можете видети некако горе, има наслов графикон на страни. Овамо је-- на дну Овде постоје оса ознаке. Не сећам се напамет шта команде арс-- које су основне функције су да се повећа величина тих етикета и звања, али они тамо. И тако ако желимо да додајте најбољи фит линију, можемо да урадимо нешто као-- И имају синтакса написано овде. Дакле, запамтите смо додали модел био МПГ, тежина, мтцарс. И тако, ако сам хтео да додам да најбоље одговара линија, ја могао урадити Б-Лине модел,. И бум, имамо најбољи фит линију. То је тешко да видим. Ја сам сасвим ми је о технолошке тешкоће. Али у суштини ради горњег левог до доњем десном углу. А ако су скала већи, могли сте да видите да је пресретање је оно што можете финд из резимеа статистике ако откуцате збирни модел. У реду, тако да се надам свако добије нешто смислу онога што Р је, како је добро за. Можете направити много лепше него парцеле ово на своје време, ако желите. Тако девизног функцију. То је нешто што није типично прекривен уводних предавања или уводни све за р. Није вероватно да ћеш требати. Међутим, нашао сам да је корисно у моје властите пројекте у прошлости. И не постоји добар туториал за њега мрежи. Дакле, само ћу журити вас све кроз ово и онда сте слободни да оду. И тако је страно Функција интерфејс је шта можете да користите да позовем да видим функције са једном Р. интерно, Р је изграђен на Ц. Р-ов аритметика је само Ц је 64-битни Флоатинг Поинт аритметика, која је Двоструко [неразумљиво]. И можда ћете желети да урадите ово гомила разлога. За један Р тумачи, то је није саставио до машинског кода. Дакле, можете да мењате своје унутрашње петље у Ц и онда се предност употребе Р. Лике то је мало више згодан него Ц. Она има бољу графикона објекти и шта све не. И док је још у стању да максимална брзина од унутрашњих петљи, што је место где је заиста потребно. Поновно коришћење постојећих Ц библиотеке, то је такође важно. Ако имате неку Ц библиотеку за слично, Не знам, Фоуриер-трансформише, или неки веома Арцхеан Статистика поступак користи у високој енергетској астрофизике или тако нешто, не знам. Хигх Енерги Астропхисицс није чак ни мислим, мислим. Али можете да урадите да уместо да напише нативе Р луку њих. И на који-- и опет, као да вас погледај у већини Р је дефаулт библиотекама, на интерналс, са унутрашњим су намеравате да користите спољну функцију интерфејс веома интензивно. Они ће имати ствари као што Фоуриер трансформише или цомпутинг корелацију коефицијенти написан у Ц, и они ће само Р омоте око њих. Интерфејс је мало теже. mislim Њена тежина је преувеличана у А Много упутствима које ћете наћи. Али ипак, то је збуњујуће. И нисам био у стању да пронаћи добар туториал за њега, тако да је то сада. Опет, ово читав сегмент је више за каснију употребу. Не брини за копирање све доле одмах. Тако следећим инструкцијама су за Униксолике система, Линук, БСД, ОС Кс не знам како то ради на Виндовс, али молим те немој твој завршни пројекат на Виндовс. Стварно не желим. Уник је много боље скуп се за цасуал програмирање. Дакле, у основи страних Функција интерфејс. Ако желите да напишете Ц функција за употребу са Р, мора да предузме све аргументи као тројкама. Дакле, за појединачне вредности, ова значи да је указао на вредности. За низове, ово је показивач на првом елементу, која је оно што имена арраи заправо значи. Опет, ово је нешто што би требало да Прилично потпуно оставку након стр сет пет. Арраи имена су само показивачи на првом елементу, Тип флоатинг-поинт је двоструко. И ваша функција мора да се врати неважећим. Једини начин да се то може заправо рећи шта се десило Р је изменом меморију да Р дао до њега преко страног функције pristup. Тако сам написао ово Пример овде, ово је функција која израчунава употреба дот производ два вектора. Потребно је два аргумента, вец1, вец2, који су сами вектори, и онда н, што представља дужина, јер опет, Р је изграђена у [неразумљиво] да бисте сазнали дужина вектора, али Ц не. У Ц, вектори је произвољна делимитед комад меморије. Дакле, начин на који можете израчунати дот производе је само сет ово параметар на нулу и онда поновити кроз од 1 до звезда н, јер Н је показивач на дужину, само додајте нешто ово параметар. И то може бити добра пракса ако ћеш да урадиш ово пишем два одвојена Ц функције. Један од њих хас-- Једно од њих јуст узима аргументе и типове да ће обично бити у Ц. Тако Потребно је низ аргументи као тројкама. Али аргументи једним вредност као Н, само узима као вредности од копија, без показивача. И онда се то не догоди [Неразумљиво] од показивач. А онда можете имати другачији, у основи, амбалажа функција која у суштини управља захтеве страног функције интерфејс за тебе. Начин на који ви називате ово истраживање је, једном имате ваша функција написан у Ц, куцате Р цмд СхЛиб библиотека преведена, Р команда схаред либрари, Фоо тачка ц, или шта год ваш фајл име, а ОС Схелл не у Р терминалу. А то ће створити библиотека под називом Фоо дот тако. А онда можете учитати у наш скрипт или интерактивно са командном Дин дот оптерећења. Затим је функција у Р зове тачка Ц. То траје аргументе који су Први назив функције у Ц који желите да позовете. И онда се сви параметри на ту функцију, морају да буду у правилним редоследом. Морате да користите ове врсте принуде функционише као цео број, као и двоструко, као карактера, и као логична. И онда када се враћа листа, који је опет само придружена низ од параметара имена и вредности након што је функција је остао. Дакле, у овом случају, јер тачка Прод има аргументи вец1, вец2, и инт н, н напоље. Да дот Ц имамо дот прод, име функције Зовемо, вец1, вец2, тип присили. Дужина једне или друге вектора, Само изабрао вец1 произвољно. Било би више робустан да каже с цео мин дужина вец1, дужине вец2. Затим као дупла нула, јер ми не стварно занима ме шта улази у од параметра јер смо га поставите на ионако нулу. А онда резултати ће бити велики повезан низ основи вец1 је год, вец2 је свеједно. Али ми смо заинтересовани за напоље, тако да можемо добити то. Ово је опет, веома играчка пример страног функцију. Али ако имате да израчунати тачку производи масивним вектора у петљи, или ако треба да урадите нешто друго у петљи, а ви не желите да се ослоне на Р, која има мало изнад главе уграђен у њу, то може бити корисно. Опет, ово обично није уводни тема за Р. То није добро документовано. Само га укључујући јер Нашао сам да је корисно у прошлости. Дакле, лоше праксе. Поменуо сам да постоји за петљу у функцији. Генерално не би требало, у језик, не користи. На основу како: Р спроводи итерација интерно, то може бити спора. Само такође изгледају ружно. Р рукује векторе веома лепо, тако често не морате да га користите. Тада обично можете замените вектор често са овим функцијама зову висок ордер функције, карта, Смањите, Финд, или филтер. Ја ћу дати мало примери шта је ово радим. Карта је већа функција ред, јер потребно је функцију као аргумент. Дакле, можете му дати неку функцију, можете му дати низ, и она ће применити функцију на сваки елемент низа и врати нови низ. Смањите, у основи дајеш то низ, ти дај функција која узима два аргумента. То ће прво, примени функцију Први аргумент са неким стартер вредности. Затим тај резултат у другом. Затим тај резултат у трећој, затим да тај резултат у четвртом. А онда се врати кад се стигне до краја. Тако на пример, ако желите да израчунати збир свих елемената у низу, него што ви зовете смањити са [неразумљиво] смањи додатак функција, као што фунц А, Б, врати ПЛУС Б. А онда почиње вредност 0. И све то, можете их наћи описан у документацији Р, у сваком уџбенику о функционалан програмирање. Ту је ова класа функције називају примењују функције, које сам не-- су мало тешко објаснити, али ако погледате у [неразумљиво] жути картон који сам навео на почетку, Он их објашњава прилично добро у слепо црево на Р програмирања. Више о праксама, додавање векторе. Да? Мислим да би требало да исправим. У том првом реду, већ стрелица, које стрелица не треба да буде тамо. Можете доделити вектор, опет, по заузме своје дужине плус 1 и додељивање неку вредност на то. То ће продужити вектор, или ти може да уради ВЕЦ једнака ц, вец невВалуе. Опет, ако користите Ц са један аргумент као вектор, добијени хијерархија буде сравњена са земљом. Тако да ћу добити вектор који је проширен 1. Никада то. Разлог зашто вас Не би требало да урадите је то. Када издвојити вектор, то даје јој одређени комад меморије. Ако повећате ту вектор величине, мора да прерасподели вектор negde drugde. И тако прерасподела је прилично скупо. Нећу улазити у детаље о томе како меморије аллоцаторс се спроводи на нивоу оперативног система, али је потребно доста времена да пронађе нови комад меморије. Такође, ако сте прерасподјеле пуно, пуно од прогресивно већа комади, можете завршити са некаквом меморија фрагментација, где је доступна меморија подељен на много малих блокова У меморији аллоцаторс тачке гледишта. И то постаје све теже и теже да пронађе меморију за друге ствари. Дакле, уместо тога, ако желите да урадите, ако треба да расте вектор са једног краја на наредни, уместо додавање на њу стално, требало би пре-издвоје га. Вец стрелица, вектор дужине једнако 1.000, или шта год. И онда само да доделите на векторске вредности једног време након што сте га додељена једном. Налетео сам на ово, опет, мој летњи посао када сам писао НРА диференцијала екуатион солвер. Не симболична нумеричка. Идеја је да када имате једна вредност за твоје решење, користите то израчунати следећи. Дакле, мој природни наиван склоност је да кажем у реду, па ћу почети са вектором То је значајан вредност. Израчунати из тог следеће вредности да иде на моје решење вектора, и додајте то. Направите нешто друго, додајте томе. То је веома, веома споро. А кад сам схватила и ја променио систем с додавање до овог вектора као 10.000 до 100.000 пута, само да пре доделе-вектор и само ради са тим. Имам више од 1.000 пута већи убрзати. Дакле, ово је веома честа замка за Р програмирање. Ако желите да изградите вектор комад по комад, унапред издвојити га. Још један заједнички пут их-- ово је моја последња тобоган, не ворри-- је грешка руковање. Р да будем искрен, не Стварно то јако добро. Ima dosta проблеми који могу да искрсну. На пример, ако добијете низ или вектор ван функције да сте очекивали један вредност да долази из, или обрнуто, а ви проћи да у функцију која ви очекујете написао једну вредност, то може бити проблем. Одређене функције ретурн нулл као и, рецимо, читате из неког непостојећи кључ на листи. Али нулл није као Ц где ако покушате да прочитате из старог показивачем, [неразумљиво] нулл показивач, само СЕГ грешке и ако сте у вашој дебуггер се каже тачно где се налазите. Уместо тога, нула ће Па-- функције ће учинити непредвидиве ствари ако су руком нулл. Као да сте предали мак нулл, то ће вам дати негативну бесконачност. И тако, да. И тако се то догодило мени једном кад сам имао променио гомилу поља на мојој листи структури Једном без промене их на другом месту кад сам читао од њих. А онда сам све врсте случајно инфинити резултата обрезивање до а ја немам појма одакле они долазе. И, нажалост, ту је нема стварне Р строг режим где можете рећи ако нешто Изгледа као да ће бити грешка, само стани тамо тако да могу бити дисциплиновани и поправити то. Међутим, постоји нешто под називом Стоп ако не. Ово је еквивалентно тврдити Ц је, ако сте говорили о томе. Не мислим, Ц тврдити је предавање тема, али ваш вођа секција Можда су отишли ​​преко њега. И престани ако не основи има било предикат, тако да свака изјава која може бити истинита или лажна. И ако је лажна, то заустави свој програм. То вам говори управо оно што вам се построје били и шта услов није успело. И исти тај користан, на пример, провера разум, функција улаза. Дакле, ако имате функција а ви очекујете, рецимо, ако би ми дати датум, хоћу датуми бити само вектор дужине 1 и негде између 1 и 31. А ако не, знам нешто је кренуло наопако. И Бирам да стати пред овим има случајан куцање на ефекте са кодом да је теже ући у траг преко. Дакле, то је један могући користити за заустављање, ако не. У сваком случају, у реду. Дакле, то је крај. Хвала вам пуно што сте дошли. Ја сам чин аматер у овоме. Тако ми је жао ако вам је досадно или збуњени или шта си. Драго ми је да се питања путем е-маила у цоннорхаррис@цоллеге.харвард.еду~~побј. То важи и за свакога гледајући ово живе или касније. Такође, иако нисам ТФ Такође сам веома спремни да служе као незванична савјетник за свакога ко је усинг Р у завршном пројекту. Ако желите да да, онда само разговарајте са својим ТФ и онда ми пишите на мејл па Знам шта сте радили на па сам да подесите састанак пута са вама, ако желите. Дакле, опет, хвала вам пуно. Надам се да сте уживали. ПУБЛИКА: [неразумљиво]. ЦОННЕР Харрис: Наравно. ПУБЛИКА: Какав пројекта би за ЦС ученик користи за Р? ЦОННЕР Харрис: Дакле, ако не урадите нешто што је чисто у дата мининг, на пример, и тамо су много ствари можете да урадите са тим подацима рударство и машинско учење. Можда желите да користите за Р компонента нечега. Донела сам, првобитно, пример о ако пишете сајт и желите да покренете аутоматизована статистичка анализа вашег сервера резање на одређено време сваког дана, то би могло бити нешто што је врло лако да уради у само кратак Р скрипта да можете да закажете да ради свако вече, на пример. А сигуран сам да, ако постоји било какав разлог да би Желим статистике или графичка могућности и да овом задатку аутоматски уместо да имају за интеракцију са стварима у Екцел, на пример, да је нешто можда ћете желети да користите Р за. Дакле, има још питања пре него што одем? Ne? Добро, добро, опет, хвала вам пуно што сте дошли.