CONNOR Харис: Сепак јас дека некои возбудлив видео
произведени од страна на професионални консултантски Р дека го користи многу во својата работа.
>> Раскажувач: Што стои зад статистиката, анализатор, и визуализации
дека денешната најпаметните податоци научниците и бизнис лидери се потпира на
да направат моќни одлуки?
Вие не може секогаш да се види тоа.
Но, тоа е таму.
Таа се вика Р, софтвер со отворен код на R-- статистички програмски јазик
дека експертите на податоци во светот преку употреба за сè
мапирање од широк општествен и маркетинг трендови онлајн
на развојот на финансиските и клима модели кои им помагаат да возат нашите економии
и заедници.
>> Но што точно е R и од каде да почне Р?
И оригинално, Р започна тука со двајца професори
кои сакаа подобар статистички платформа за своите студенти.
Па тие создале една моделирани по статистички јазик С.
Тие, заедно со многу други, продолжил да работи на и користење на R,
креирање алатки за истражување и наоѓање нови апликации за R секој ден.
>> Благодарение на оваа е светски напор на заедницата,
Р продолжуваше да расте со илјадници на корисникот креирано библиотеки гради
за подобрување на функционалноста и R валидација квалитет толпата информираниот
и поддршка од најпрепознатливите индустриски лидери во сите сфери кои
користи Р. што е одлично, бидејќи R е најдобар во она што го прави тоа.
Заврзат експерти брзо и лесно да се протолкува, да разговарате со,
и да се визуелизира на податоци кои покажуваат нивните брзо растечката заедница на Р корисници ширум светот
и да видиме како софтвер со отворен код Р продолжува да го обликува
иднината на статистички анализа и научни податоци.
>> CONNOR Харис: Во ред, одлично.
Значи мојата презентација ќе биде малку повеќе трезен.
Тоа нема да се вклучат дека многу возбудлива музика во заднина.
Но, како што можете да забележите во видео, R е вид на општ јазик програма намена.
Но, тоа во најголем дел е создаден за статистички работа.
>> Така, тоа е дизајниран за статистика, за анализа на податоци, за податоци за рударство.
И за да можете да го видите ова во многу избор на дизајнот дека креаторите на Р
направени.
Тоа е наменета за во голема мера, луѓе кои не се
експерти во програмирање, кој се само подигање на програмирање
на страна, така што тие можат да ја завршат својата работа во општествените науки или во статистиката
или whatever.
>> Таа има многу многу важни разлики од В.
Но синтаксата и парадигми дека користи се речиси исти.
И треба да се чувствуваат прилично многу дома, право надвор од лилјак.
Тоа е императив јазик.
>> Не грижете се премногу за таа ако не го знаат овој термин.
Но, има разлика помеѓу императив, декларативно,
и функционален.
Императив само значи дека ќе се направи извештаи кои што се во основа команди.
А потоа и на толкувачот или компјутер им следува еден по еден.
Тоа е слабо внесе, постојат Нема декларации тип во Р.
>> А потоа и на линии помеѓу различни типови
се малку повеќе слобода отколку тие се во C, на пример.
И како што реков, постојат многу широка објекти
за графики, за статистички анализа, за податоци за рударство.
Овие се двете вградени во јазик и, како што рече видео,
илјадници библиотеки трето лице што може да го симнете и да го користат бесплатно
со многу лабава лиценца услови.
>> Па воопшто, јас му препорачувам дека ќе се погледне во овие две книги
ако си оди за да се работи на Р. Еден од нив е официјалната Р почетник
помогнеме.
Тоа е одржуван од страна на основни програмерите на Р.
Можете да го преземете повторно, бесплатно наплаќаат и легално во тоа линк таму.
Сите овие слајдови се случува да одам Регистрација на интернет, на веб-сајтот CS50
Откако ќе го направите.
Па нема потреба да се копира работите надолу френетично.
>> Другиот е учебник по Козма Shalizi,
кој е професор на статистика Карнеги Мелон, наречена Напредно податоци
Анализи од Основно Точка на гледање.
Ова не е првенствено Р книга.
Тоа е книга за статистика и тоа е анализа на податоци книга.
Но, тоа е многу достапен за луѓето кои имаат минимална статистика знаење.
>> Јас никогаш не се е формален курс.
Јас само знам парчиња и делови од разни субјекти сојузничките
дека јас сум преземат курсеви во.
И јас бев во можност да се разбере тоа совршено добро.
>> Се дадени сите фигури во Р. Тие се направени во R
и тие исто така имаат код огласи под секоја слика што ќе каже
како да направите секоја слика со R код.
И тоа е многу корисно ако сте се обидува да се емулира
некои фигура гледате во една книга.
>> И повторно преземете бесплатно stat.cmu.edu/cshalizi/ Жал ми е,
кои треба да се намали тилда cshalizi.
Ќе бидете сигурни дека за да се поправи кога официјалниот слајдови одат нагоре.
/ ADAfaEPoV што е само скратеницата на насловот на книгата.
>> Па воопшто caveats-- Р има многу можности.
Јас сум само ќе бидат во можност да ги покрие на површината на многу работи.
Исто така, првиот дел од семинарот ќе биде нешто на депонија податоци.
Јас сум прилично жал за тоа.
Во суштина, јас ќе одам да се ве запознаам со многу работи
право надвор од лилјак, се случува што е можно побрзо.
А потоа и да се дојде до Мотор дел, што е
демо, каде што може да ви покаже сè кои ние разговаравме за на екранот.
И можете да се позанимавам на своја.
Па таму се случува да биде многу технички работи фрлени овде.
Не грижете се за копирање на сите дека надолу.
Затоа што, можете да ги добиете сите работи на веб-страницата на CS50 подоцна.
И Б, тоа не е навистина толку важно да се запаметат ова од слајдови.
Тоа е повеќе важно да се добие некои интуитивен објект со неа
и дека доаѓа од само игра наоколу.
>> Па зошто се користи Р?
Во суштина, ако имаш еден проект кој вклучува рударството големи збирки на податоци, податоци
визуелизација, ќе треба да се користи за Р. Ако сте
прави комплицирано статистички анализи, дека ќе биде тешко да се во Excel,
на пример, што би исто така, да се good--, исто така,
ако правиш статистички Анализата која е автоматизирано.
Да речеме дека сте одржување на веб-страница.
И ако сакате да го прочитате најавите серверот секој ден и ги собира некои листа,
како на врвот земји кои Вашите корисници доаѓаат,
некои резиме статистика за тоа колку долго тие поминуваат на вашиот сајт или whatever.
И ако сакате да ја извршите оваа секој ден.
>> Сега, ако го правиш тоа во Excel, ќе треба да одат во вашиот серверот,
увоз, кој во една Табела Excel податоци,
работат сите анализи рачно.
Со R, вие само може да се напише една скрипта.
Го Планирај да работи секој ден од Вашиот оперативен систем.
А потоа секоја вечер во 02:00, или секогаш кога ќе го планирате да се кандидира,
тоа ќе се погледне преку вашите интернет сообраќај за тој ден.
А потоа од страна на следниот ден, ќе имаат оваа сјајна, новиот извештај
или што и со сите информации што побара.
>> Значи, во основа, што R е за Cisco програмирање наспроти Cisco анализа.
Прелиминарните е направено.
Ајде да се влезе во вистински нешта.
Значи постојат три вистински типови на јазикот.
Има нумерички тип.
Таму е вид на разликата помеѓу цели броеви и лебдечки точки,
но навистина не.
Има еден карактер тип, која е жици.
И таму е логичен тип, која е Booleans.
>> И можете да конвертирате помеѓу видовите користење на овие функции како нумеричка,
како лик, како логично.
Ако ти се јавам, на пример, нумеричкото на конец,
дека ќе се обиде да се прочита дека стрингот како број, на истиот начин
дека a2i и scanf направи, и C. Ако ти се јавам како нумерички на вистински или лажни
тоа ќе се претворат во 1 или 0.
Ако ти се јавам како карактер за ништо тоа ќе
конвертирате дека во претставена како низа.
>> А потоа таму се вектори и матрици.
Па вектори се во основа 1 димензионални низи.
Тие се она што ние го нарекуваме низи во В Матрици, 2 димензионални низи.
А потоа и повисоки димензионални низи можеш
3, 4, 5 или што и димензии на нумерички вредности, на стрингови,
на логички вредности.
>> Можете исто така имаат листи кои се еден вид на асоцијативна низа.
Јас ќе навлегувам во тоа малку.
Па една важна работа дека патувања луѓе во Р
е во тоа што не постојат реално, чиста атомски типови.
Нема вистински разликата помеѓу голем број, како нумеричка вредност,
како и листа на нумерички вредности.
Нумерички вредности се, всушност, исто како и на вектори на должина 1.
И ова има голем број на важни импликации.
Еден, тоа значи дека можете да го направите работите многу лесно, кои вклучуваат
како додавање на бројот на вектор.
Р основа ќе фигура од она што ви го велам тоа.
И јас ќе дојдеме до тоа во една секунда.
Тоа исто така значи дека не постои начин за типот checker-- до степен
дека такво нешто постои во R-- да кажам
кога сте донесени во една вредност кога се очекува низа или обратно.
А тоа може да предизвика некои чудни проблеми кои налетав кога
Јас бев со користење Д за време на мојата летна работа.
И не постојат мешани тип низи.
Па не можете да имаат низа беа Првите елементи се, јас не знам,
стрингот "Џон" и вториот елемент е бројот 42.
Ако се обидете да го направите тоа, тогаш ќе добиете сè само конвертира во стринг.
Па ние имаме низа Јован, стринг 42.
>> Толку необични синтаксички features-- повеќето на Р синтакса е многу слична на В.
Постојат неколку важни разлики.
Пишување е многу слаб.
Така што не постојат променливи декларации.
Задача користи чудно оператор грешка помала од цртичка.
Коментари се со ознаката за хаш.
Претпоставувам сега дена ние ја нарекуваме, хаштагот иако тоа не е навистина не accurate--
двојно коса црта.
>> Остатоци модуларен се со %% знаци.
Целобројна поделба е со% /%, што е многу тешко да го прочитате кога тоа е проектиран
на екранот.
Може да се добијат се движи од цели броеви со дебелото црево.
Па 2,5 ќе ви даде вектор на сите броеви од 2 до 5.
>> Низи се еден-индексирани, завртки кои многу луѓе
Регистрација дали тие се од повеќе Типичен програмски јазици,
како C, каде што повеќето работите се нула-индексирани.
Повторно, ова е местото каде што наследство Р како јазик за како не
професионални програмери доаѓа во.
Ако сте социолог или економист или нешто
и ти се обидуваш да ги користат Р во основа како додаток
на вашиот поважни професионална работа,
ви се случува да се најде еден-индексирање малку повеќе природна.
Затоа што ќе почнете пребројување На 1 во секојдневниот живот, а не 0.
>> За-јамки, ова е слично на на foreach изградба во PHP,
што ќе добиете за да се научат in-- наскоро.
Што е за вредност во векторски и тогаш може да се прават работите со вредност.
ПУБЛИКАТА: Тоа е да излезе во предавањето.
CONNOR Харис: Ох, тоа е дојде до предавање, одлични.
ПУБЛИКАТА: Доделувањето, тоа е би требало да се истакне од десно кон лево?
CONNOR Харис: од десно кон лево, да.
Можете да мислам на тоа како на вредноста на правото тутна променливата
на лево.
ПУБЛИКАТА: Во ред.
>> CONNOR Харис: И на крај синтакса функција е малку чудно.
Имаш foo во името на функцијата, се доделени за овој клучен збор функцијата, по што следи
од страна на сите аргументи и тогаш телото на функцијата, по тоа.
Повторно овие работи може изгледа малку чудно.
Тие ќе стане втора природа по работите со јазикот за малку.
Па вектори, на начинот на кој ви Конструирај вектор
е ти тип Ц, кој е клучен збор, а потоа сите броеви сакате или жици
или whatever.
Аргументи, исто така, да биде вектори.
Но како резултат на низа добива се срамнети со земја.
Така што не може да има низи каде некои елементи се единствен број
а некои елементи се од себе низи.
>> Значи, ако се обидете да се изгради Низа беа првиот елемент е 4
и вториот елемент е 3,5 низа ќе
само да се добие три елементи низа, 4,3,5.
Тие не можат да бидат од мешан тип.
Ако се обидете да читаат или да пишуваат надвор од границите на векторот
ќе добиете оваа вредност повика на НС која се залага за исчезнати вредност.
И ова е наменето за како статистичари кои
Работиме со нецелосни збирки на податоци.
>> Ако се примени функција која би требало да се земе само еден број во низа
тогаш она што ќе добиете е, функција ќе сајтот во текот на низа.
Значи, ако вашиот функција да речеме го голем број и се враќа тоа квадратен.
Кои ќе се применуваат до низа 2,3,5 Она што ќе добиете е низата 4,9,25.
>> И тоа е многу корисно поради тоа што ви значи
не мора да пишуваат за јамки за го прават многу едноставни работи како примена
во функција на сите членови во група на податоци.
Што ако си работат со големи збирки на податоци, треба да се направи многу.
Бинарни функции се применетата запис со записот.
Јас ќе навлегувам во тоа.
Можете да им пристапите со низи или вектори со квадратни загради.
Па името вектор квадратни загради 1 ќе ти даде на првиот елемент.
Име на вектор квадратни загради 2 ќе ви даде на вториот елемент.
>> Може да помине на вектор на индексите, а вие
да се вратам на основа е под фактор.
За да може да се направи вектор име загради Ц, 2,4 и ќе излезат вектор кој содржи
вториот и четвртиот елементи на низата.
И ако сакате само брзо резиме статистика
на вектор како interquartile опсег, медијана максимум, без разлика,
можете да напишете резиме Име на вектор и да добијат тоа.
Тоа не е навистина корисно во програмирање, но ако ти си играат
околу сетови на податоци, тоа е од голема корист.
>> Matrices-- основа повисоки димензионални низи.
Тие ја имаат оваа посебна нотација синтакса.
Матрица со ред што добива исполнет in-- Жалам, матрицата со податоци,
бројот на редови, бројот на колони.
Кога имаш некои податоци, тоа го исполнува низа во основа ќе врвот до дното
прво.
Потоа лево кон десно.
Значи, како што.
И R има изградено во матрица множења,
спектрален распаѓање, diagonalization, многу работи.
Ако сакате повисоки димензионални низи, така 3, 4, 5,
или што и димензии можете да го направите тоа.
Синтаксата е низа слабо еднаква в, тогаш листата на димензии.
Значи, ако сакате 4 димензионална низа со димензии 4, 7, 8, 9, низа,
магливо еднаква в (4,7,8,9).
>> Пристапувате сингл вредности со држачи првото влегување запирка вториот влез.
Можете да добиете целиот парчиња на редови или колони.
Со оваа нецелосни синтакса тоа е само веслам број запирка или запирка колона
број.
Така листи се на некој начин поврзани низа.
Тие имаат свои синтакса тука.
Повторно не френетично копирање на сите ова долу.
Ова е исто така што луѓето минува низ слајдовите подоцна
има сето ова во еден убав референца.
И ова ќе стане многу природни еднаш Јас всушност прошетка низ демо снимки.
Така наведува во основа поврзани низи.
Можете да пристапите вредности со Име на листата, знакот за долар, клучот.
Значи, ако вашата листа е именуван foo, тогаш можете да имате пристап до него како тоа.
Можете да добиете целиот клучните вредност пар со полагање на индексот на плоштадот заграда.
Ако го прочитате од непостоечки клуч, ќе добиете за ништовни.
Тоа нема грешка.
Работата е, R да го стори како многу со нула како што може.
А тоа може да значи дека ако сте не се очекува да ја добие нула надвор
на некоја листа за читање, ќе добиете некои непредвидливи грешки потаму
линијата.
>> Ова ми се случи ми летна работа, кога бев со користење на Р
каде што јас се промени начинот на одреден Листата е дефинирано во едно место
но не се промени подоцна на кодот на кои пишуваше вредности од него.
И така што се случи беше бев читање null вредности надвор од оваа листа,
ги поминува во функции, и да се биде многу збунет
кога влегов сите видови на случаен бесконечности појавуваа
во оваа функција.
Бидејќи ако се применат одредени максимум или минимум функции на нула,
ќе добиете бесконечна вредности надвор.
>> Податоци рамки, тие се подгрупа на листата.
Секоја вредност е вектор со иста должина.
И тие се користат за презентирање, во основа, податоци табели.
Има оваа иницијализација синтакса.
Ова ќе се, повторно, да биде многу појасна кога ќе се дојде до демо.
И убаво нешто за податоци рамки е тоа што вие
може да даде имиња на сите колони и имињата на сите редови.
И така што го отежнува пристапот нив малку поповолна.
Исто така, ова е како повеќето функции кои прочита во податоци од Excel за табеларни пресметки
или од текстуални датотеки, на пример, ќе чита во нивните податоци.
Тие ќе го стави во некој вид на податоци рамка.
Па functions-- функциите Синтаксата е малку чудно.
Повторно тоа е името на функцијата, додели, овој клучен збор функција и потоа
листата на аргументи.
Па така постојат некои убави работи за тоа како функционира работат тука.
За еден, всушност можете да го доделите стандардните вредности за одредени аргументи.
За да може да се каже што R1 equals-- може да се каже foo
е функција, каде што R1 е еднаква на нешто стандардно ако корисникот одредува
без аргументи.
Инаку, тоа е она што тој го стави во.
И ова е многу корисна бидејќи многу од нашите функции
често имаат десетици, стотици аргументи.
На пример оние за заговор графикони или заговор растера парцели
имаат аргументи кои го контролираат сè, од титулата и оската
етикети на бојата на регресија линии.
И така, ако не сакате да ги натера луѓето да се определи
секој еден од овие стотици аргументи
контрола на секој аспект на заговор или регресија или што,
тоа е убаво да се имаат овие основни вредности.
>> И тогаш ќе може, всушност, пишуваат како што видовме повторно тука.
Или да се најде подобар пример.
Кога ќе се јавите функции може да се, всушност, нив, како користење на имиња на аргумент.
Па еве еден пример на матрицата конструкторот.
Таа прифаќа три аргументи.
Обично ќе мора на податоци, кој е вектор.
Имаш N ред, што е бројот на редови.
Имаш N cols-- бројот на колони.
Работата е, ако сте тип N ред еднаква што и
и N полковникот еднаква било кога сте повикувајќи оваа функција,
вие всушност може да им се јават.
За да може да се стави N полковникот и N прв ред вториот и тоа ќе го направи никаква разлика.
Така што е убаво малку функција.
>> Направи увоз и извоз.
Ова може да се направи, во основа.
Исто така, постојат објекти за да се напише произволни Р спротивставува на бинарна датотека
и потоа да ги прочитате назад во подоцна.
Која е корисна ако правиш голема интерактивна сесија Р
и ви е потребна за да се спаси работи многу брзо.
По дифолт R има работен директориум кои датотеки се напишани во
и да прочитате назад во од.
Можете да видите дека со getwg, тоа се промени со setdw.
Ништо посебно интересно овде
>> Па сега на вистински статистики stuff-- multilinear регресија.
Па вообичаените синтакса е малку комплицирано.
Моделот е голем објект во основа.
Станува доделен на LM, кој е повик на функција.
Првиот елемент, за y тилда x1 плус сеедно.
Синтакса ми, тука е малку збунувачки.
Јас сум сосема ми е, ова е стандарден начин
дека компјутерски науки книги направите тоа.
Но, тоа е малку чудно.
>> Значи, во основа, тоа е филмот загради, првата точка
е variable-- жал, зависи променлива тилда x1 x2 плус плус
сепак многу независни променливи имаш.
А потоа тие можат да бидат вектори, сите со иста должина.
Или тие може да биде колона заглавија во рамка на податоци
што едноставно се определи во Вториот аргумент податочна рамка.
>> Исто така можете да го одредите повеќе комплексна формула
така да не мора да се линеарно регрес една зависна варијабла,
или еден вектор на претходно постоечките вектор.
Можете да направите, на пример, вектор компонента y квадрат плус 1
и регрес дека против влези на некој друг вектор.
Можете да печатите резимеа на модел со оваа команда се нарекува
summary-- само резиме parens модел.
Повторно нешто друго што треба да се разјаснат.
Нешто друго што ќе се коригира кога слајдови одат на интернет.
Ако само сакате да се пресмета едноставна корелација
можете да го користите корелација вектор Вектор 1 2 функција јадро.
Методот е по дифолт Пирсон корелација.
Тоа се стандардни оние што може да се направи.
Постојат, исто така, и Спирман Kendell корелации
кои се некои различни Рангиран корелација ред.
Па тие не се пресмета производот моменти меѓу самите вектори,
но на ранг нарачки векторот е.
Јас ќе објаснам тоа подоцна.
>> ПУБЛИКАТА: Брзи прашање
>> CONNER HARRIS: Секако.
>> ПУБЛИКАТА: Значи, кога сте пресметување од проста корелации направи
се претпостави дека постои статистички значење за корелација?
CONNER Харис: Вие не треба да се.
На филмот е во основа, само една машина.
Тоа ќе биде потребно во две работи и тоа ќе плукаат
коефициенти за најдобра права.
Таа, исто така објави стандард грешки на овие коефициенти.
И тоа ќе ви кажам како е интервенира статистички значајна
или разлика од 0.
Е наклонот на најдобрите вклопуваат линија статистички
различен од нула, и така натаму.
Па се претпоставува ништо, мислам дека Најдобро е одговорот на вашето прашање.
ВО РЕД.
>> Plotting-- па главната причина што треба да користете Р, како multilinear регресија.
Во основа секој јазик има некои капацитет за тоа.
И синтаксата искрено R за регресија е малку таинствени.
Но заговор е местото каде што навистина блеска.
>> Функцијата за workhorse е заговор и тоа трае два вектори, x и y.
А потоа и на елипси залага за многу голем број на изборни аргументи дека
го контролира сè, од наслови на бои на различните линии или различни точки,
од видот на заговор.
Ќе може да има растера парцели или линија парцели.
>> [Беззвучен] 2 вектори со иста должина.
Можете да му претходат на овој со закачите податочна рамка во Вашата скрипта.
И тоа ќе ви овозможи да се само користење колона заглавија а не во посебен вектори.
Можете да додадете најдобрите линии се вклопуваат и локални криви регресија на вашиот график.
>> Овие команди наведени тука, AB линија и линии,
по дифолт овие се напишани во pop-up прозорци
бидејќи ќе претпостави дека сте користење Р интерактивно.
Ако не сте можеш пишуваат две датотеки, кои
навистина се во било кој формат сакате.
Жал ми е, имам печатна грешка јас само сфатив.
Ако сакате да ја отворите друг графички уред
можете да го користите оваа функција наречена PNG или JPEG или многу други формати на слики.
И можете да напишете график без оглед на името на датотеката ќе ги специфицирате.
За да го откажете дека треба да се use-- Јас не пишувам ова во slide--
но има функција наречена dev дот исклучи дека зема без аргументи.
>> Потоа, постојат објекти за 3D заговор
и за контура заговор Ако сакате да се направи
графици на две независни променливи.
Јас нема да се влезе во овие сега.
>> Исто така, постојат некои објекти за анимација
тие се обично се одржува од страна на трети лица.
Јас имам направено анимации со R графикони, но јас не го користат овие трети лица,
библиотеки.
Па јас навистина не може да го потврдат до колку добро тие се.
Она што јас препорачувам, ако сакате да се направи користење на R анимации
е може да се пишуваат сите на рамки за анимации
а потоа можете да го користите program-- трета страна
типичните се нарекуваат ffmpeg или ImageMagick-- да бод
на сите ваши слики во една анимација.
>> Толку време за демонстрација.
Значи, ако сте со користење на било Unix како систем што е Линукс БСД, но кој го користи BSD.
OS X Отворете терминален прозорец и Type R во командната линија.
Ако имате Р студио или слично, кои исто така работи.
За корисниците на Windows треба да бидат во можност да најдат R во Вашето Start мени.
Тоа треба да се нарекува нешто како Р x64 3 точка сеедно.
Отвори дека таму горе.
>> Па сега ме пушти само Отворете терминален прозорец.
Сите права, пребарување.
ПУБЛИКАТА: Команда-простор
CONNER HARRIS: Команда-простор, ви благодарам.
Јас не вообичаено се користат Macs.
Терминал, покажуваат нов прозорец.
Нов прозорец е подесувања основни, Р. Затоа мора да се добие
порака за добредојде, нешто како ова.
>> Па јас сум користење на R интерактивно.
Можете исто така да се напише Р скрипти се разбира.
Во основа скрипти работи на ист начин како што
ако сте биле седи на компјутер пишување во секоја линија едно по едно време.
Значи, да почнеме со правење на вектор.
A стрела C 1, 2.
1, 2, 4.
Добро, сигурно.
Јас може да се направи на големината на фонтот поголем.
>> ПУБЛИКАТА: Командната Плус
>> CONNER HARRIS: Команда-Плус.
Командната Плус.
Сите права, како е тоа?
Добар?
ВО РЕД.
Значи, да почнеме со прогласување листа вектор.
Направи, стрела, С 1,2,4.
Можеме да видиме.
Не грижете се за заградата таму.
Заградите се па ако испечатите многу долги низи, можеме да каде и да сте.
Еден пример би бил, ако јас само сакам спектар 2-200.
Ако јас печатени многу долга низа, заградите
се само за да можам да го задржи патеката на која индекс
ние сме, ако јас сум во потрага преку ова визуелно.
Значи во секој случај, ние имаме.
>> Па реков дека низи комуницирате многу убаво со, на пример,
унарен операции се допаѓа ова.
Значи она што мислам дека ќе добијам ако напишете плус 1?
Да.
Добро, сега јас ќе се направи овој различни низа.
Да речеме б в 20,40, 80.
Па што мислите оваа команда ќе направите?
Додадете елементи.
И значи, во основа тоа е она што го прави тоа.
Така што ова е прилично лесен.
Па јас сум во врска со тоа како да го направите ова. в е, да речеме, 6 пати од 1 до 10.
Значи она што сакам да го видам содржани, мислите?
Па сите множители на шест.
Сега, она што мислите ќе се случи ако го направам тоа?
Јас ќе го направи ова малку појасно, ц, ц.
Значи она што се случи, ќе се направи мислам, ако го направам тоа?
плус c.
[Беззвучен]
>> ПУБЛИКАТА: Или грешка или тоа само додава на првите три елементи.
>> CONNER Харис: Не сосема.
Тоа е она што го добив.
Што се случува е пократок низа, а, доби cycled.
Па добивме 124, 124, 124.
Је.
И во основа може да ги видите ова однесување пред, плус 1,
како подгрупа на ова однесување, каде најкраткиот низа е само бројот
1, кој е еден елемент низа.
Јас само да се рече вектор сите тоа време, наместо на низа,
затоа што тоа е она што на R документација обично се прави.
Тоа е вкоренет в навика.
>> Добро, па сега имаме оваа низа.
Па ние имаме оваа низа, в.
Ние може да се добие преглед статистика за в, резиме в.
И тоа е убаво.
Па сега ајде да се направи некои матрица работи.
Да речеме, m е матрица.
Ајде да се направи три од три една.
Па nrows е еднакво на 3, а ncols е еднакво на 3.
И за податоци ајде do-- па што дали мислите дека ова се случува да се направи?
>> Право, тоа е следниот.
Тоа е nrow и ncolumn.
Значи она што го направив е што сум прогласена за три од три матрица
и јас сум донесен во девет елемент низа.
Па логаритамот на сите елементи од еден до девет.
И сите тие вредности се пополни сочинуваат array-- жал?
ПУБЛИКАТА: Тоа се основа 10 дневници?
CONNER HARRIS: Не, дневникот е природни логаритми, па основа e.
Да, ако си сакал база 10 најавите, мислам дека ќе треба
за да влезете без разлика, поделена со најавите 10.
И така податоците на [Беззвучен] само исполнува до низа, па врвот до дното,
потоа лево кон десно.
И ако си сакал да направите некои други низа, да речеме, што n е матрица.
Ајде да се направи, не знам, 2-13.
Или јас ќе сторам нешто поинтересно.
Ќе се направи 2-4.
nrow еднаква на, да речеме, 3.
ncol еднакво на 4.
n.
Значи имаме ова.
>> И сега, ако сакаме да се размножуваат нив, ние би го направил n проценти пати проценти,
затоа што тоа е n.
И ние имаме матрица производи.
Од начинот на кој тие се, да не ви се види како кога го прогласи n, 2-4
вектор доби cycled до ја исполни сите n?
Ако си сакал да ги преземе eigenvalue распаѓање,
ова е нешто што може да се направи многу лесно.
Ние можеме да правиме Еиген n.
Па така ова е нашата прва судрите со листа.
>> Па Еиген n е листа со два клуча.
Вредности, што е оваа низа тука.
И вектори, која е оваа низа тука.
Значи, ако си сакал да се извлече, да речеме, оваа трета колона
од матрицата на вектори, бидејќи на вектори се колона вектори.
Така што можеме да направиме vec Еиген n знак за долар вектори, запирка 3, на [Беззвучен].
Vec.
Е во тоа што, како што би очекувале.
>> Тогаш велат n пати проценти пати vec.
Па резултатот тука сигурно изгледа како ако ние го зазема третото eigenvalue тука,
што соодветствува со третиот eigenvector.
Тоа само множи се што е во оваа eigenvector, компонента-мудар,
од страна на eigenvalue.
И тоа е она што би се очекувало, бидејќи тоа е она eigenvalues ​​се.
Да не има некој овде донесена линеарна алгебра?
Неколку луѓе, ОК.
Само да се претвори вашиот мозок надвор за малку.
И, навистина, ако се земе Еиген n знак за долар вредности 3 пати vec,
добро се иста работа.
Тоа е форматиран како поинаку ред вектор, наместо на вектор со една колона,
но ништо страшно.
И така тие се во основа добро работи што можеме да направиме со матрици,
демонстрираа листи.
Јас треба да ја покаже убаво работи во врска со функции, како и.
>> Па ајде say-- [Беззвучен] функција, повик ајде
тоа функцио против функцијата n n squared-- всушност, тоа не е навистина најдобар.
a, b, квадрат плус b.
Значи една работа во врска со функции, повторно, е тие
не треба јасните изјави враќање.
За да можете да го just-- последна изјава евалуира
ќе биде изјава се врати, или вредноста вратени.
Значи во овој случај, ние сме само оценување една изјава, квадрат плус б.
Која ќе биде вратената вредност стандардните.
Никогаш не боли да се стави во експлицитно се вратат вредностите,
особено ако сте се занимаваат со функција на многу комплициран логика
тече.
Но вие не се потребни.
Па сега ние може да го направи функционална 5, 1, и ова е во основа она што би очекувале.
Нешто друго можеме да направиме, ние всушност може да направи функционална б
е еднакво на 1, a е еднакво на 5.
Значи, ако ние се определи кој број тука, аргумент кој оди на кој аргумент
во функција, може да се флип околу овие вредности секаде каде што сакате.
>> ПУБЛИКАТА: Дали постои причина за да го напише со б
еднаква, наспроти само користење броеви и запирка?
CONNER HARRIS: Да, обично направите ова, ако имаат и функции
со многу аргументи.
Кои често можат да бидат како знамиња да сте само би
сакате да го користите во ретки случаи.
И на овој начин ќе може да ви only-- да се однесуваат на специфични аргументи
што сакате да ја користите вредности кои не се стандардно за,
а вие не мора да се напише куп на знамиња еднаква лажни по нив.
Или можам да го напишам ова повторно со стандардна вредност како б изнесува 2.
И тогаш јас не можеше да стори ѓ функцио, Ќе се направи 4, 1 на овој период.
И 17, што е 4 квадрат плус 1, како што би очекувале.
>> Но, исто така, би можел само ова го нарекуваат со функцио 4,
и Јас ќе добиете 18, затоа што Јас не се определи б.
Па б добива на стандардната вредност на 2.
>> Добро, па сега ако сте следниве заедно со демо,
напишете оваа линија во вашата команда брза и да видиме што доаѓа до.
Всушност, не го прават тоа.
Типот тоа.
Треба да се добие нешто како ова.
Mtcars така е вграден во податоците поставени за оваа демонстрација
целите што доаѓа with-- што доаѓа во стандардно со вашата дистрибуција р.
Ова е една компилација на статистичките податоци од 1974 година издание на списанието Motor Trend е
на голем број на различни модели на автомобили.
>> Значи има милји за галон, cylinders-- Ќе заборавам што DISP is-- коњски сили.
Веројатно.
Ако само на Google МТ автомобили, а потоа еден од првите резултати
ќе биде од официјалната документација r
и тоа ќе се објасни сите овие полиња на податоци.
Па тежина is-- теж е тежината на автомобилот во тони.
П сек е време на четвртина милја.
Па сега можеме да направиме некои забавни нешта МТ за автомобили е поле за податоци.
>> За да можеме да се прават работите како имиња ред, мт автомобили.
И ова е листа на сите линии во подесеното кои се имињата на автомобили.
Ние можеме да правиме colnames, мт автомобили ова.
Ако го направите мт автомобили, под-нумеричка индекс, како 2.
добиеме втората колона од ова, што би било цилиндри.
>> ПУБЛИКАТА: Што направи?
>> CONNER Харис: Јас ја внеле МТ автомобили, држачи д,
што ми даде втора колона од мт автомобили.
Или ако сакаме ред, јас да напишете mtcars запирка 2, на пример.
Други круг 2 запирка, како што.
И дека оди во вашиот ред.
Ова овде само ви дава колона, но колона како вектор.
Јас само сфатив јас сега заборавив да покажат
некои интересни нешта за вектори што можете да направите со индекси.
Значи, дозволете ми да го направи тоа во моментов.
Значи, да се направи в gets-- ставање ова на pause-- 2 пати од 1 до 10.
Па в е само ќе биде векторот од 2 до 20.
Јас може да се земе елементи, како таков, В2.
Јас може да се помине во векторски вака, c-- ме пушти
користат друго име од C, како vec в.
Во суштина, јас го правам тоа така да не се
збунети помеѓу в како изградба функција вектор,
а потоа в како име на променлива.
Vec загради c 4, 5, 7.
Ова ќе ми излезе четвртиот, петтиот, и седум елементи на низата.
Можам да направам vec, ставени во негативен индекс, како негативни 4.
Дека ќе ме извлече со ова четвртиот елемент отстрани.
Потоа, ако сакав да се направи парчиња, Можам да направам vec 2 до 6.
2 6 дебелото црево е само уште еден вектор, што е 2, 3, 4, 5, 6.
Плука тоа.
>> Значи во секој случај, да се вратиме мт автомобили.
Значи, да се направи некои уназадувања.
Да речеме модел gets-- ајде линеарно regress-- Не знам.
Прво нека го закачите mtcars, се разбира.
Така [Беззвучен] модел lm, ајде да се повлекуваат милји за галон на тилда тежина.
А потоа податоците рамка е mtcars.
Така резиме модел.
>> Добро, така што ова изгледа малку комплицирано.
Но во основа, бидејќи како што ако ние се обиде да го изразат милји за галон
како линеарна функција на тежина, тогаш добивме оваа линија тука,
што оската на 37,28.
37,28 ќе биде теоретската милји галон на автомобил кој тежи нула.
А потоа за секој дополнителен тон, ви затропа околу пет милји за галон
надвор од тоа.
И двете од овие коефициенти вас може да се види, стандардните грешки таму.
И тие се многу статистички значајна.
>> За да можеме да бидеме многу одредени да 1 д 10 до 10 негативни.
Па 1 пати нешто да негативното 10, дека ако се направи потежок автомобил,
тоа ќе има полошо милји за галон.
Или ние може да го тестира некои други модел.
Како наместо регресирање на оваа тежина,
ајде да се повлекуваат од најавите на тежината, затоа што можеби на ефективна тежина
на километражата некако не е линеарна.
>> Ова ни даде R квадрат на 0,7528.
Значи, да се обиде ова.
Овој пат, да се направи различни променливи, исто така.
Model2.
Толку краток преглед, model2.
Добро, па повторно, ние добивме нашиот најдобра права овде.
И ова time-- ова е велејќи дека, основа е дека секој треба време
се зголеми тежината на автомобил со фактор на д
ви го изгуби овој многу милји за галон.
>> И така овој пат нашата преостаната стандард грешка it-- тоа не е важно, навистина.
Остаток на стандардната грешка е во основа, само на стандардната грешка
што сте го напуштиле по тебе земе овој тренд линија.
А нашите R квадрат тука е 0.81, што е малку подобро од она што
имавме досега, 0.52.
>> Па сега ајде да додадете Терминот за оваа регресија.
Значи, да се повлекуваат милји за галон и на најавите на тегови
и, ајде да направиме, q милји, четвртина милја време.
Добро, тоа мора да има the-- ред, qsec.
Qsec.
Actually-- ми е, што?
Дозволете ми да се јавите на оваа нешто друго покрај model2.
Дозволете ми да се јавите на оваа model3.
Па сега можеме да направиме резиме model3.
И така, повторно, ова е во основа она што би очекувале.
Имате позитивни интервенира.
Ефективната зголемување тежината е негативен.
И ефективното зголемување на времето четвртина милја
е позитивен, но сепак во помал обем отколку тежината.
Сега интуитивно, може да се направи смисла на ова, велејќи размислува за спортски автомобили.
Има еден многу брзо забрзување, За многу кратко време четвртина милја.
Тие се, исто така, се случува да се користи повеќе гас, со оглед на повеќе разумни автомобили се случува
да имаат побавен забрзување, повисок пати четвртина милја,
и ќе троши помалку гас ,, така повисоки милји за галон.
Одлично.
Па сега е време да се заговор нешто како ова.
Па ајде do-- така голи коски, можеме да направиме plots--
затоа што сум во прилог на оваа податочна рамка before-- само можеме да направиме парцели, тежински mpg.
Направи овој малку поголема.
Таму, ние во основа имаат растера заговор, но бодовите
се вид на тешко да се види на ова.
>> Јас не се сеќавам што импровизирано Синтаксата е за промена на заговор.
Па претпоставувам дека ова ќе биде добро време да ги пренесат,
таму е многу убаво вградениот помош функција, помош цитати функционира име.
Ние ќе ги пренесат во основа нешто што би сакала.
Мислам дека, всушност, ќе го правиме ова тип еднаква стр за поени парцели.
Дали со тоа се промени нешто?
И не, не, навистина.
Во ред.
>> Поради некоја причина, кога ќе го направи ова на мојот компјутер пред некое време,
сите растера поени беа многу појасни.
Во секој случај, се разбегуваат вид на видливи?
Има една таму.
Неколку таму, неколку таму.
Можете да ги сортирате од нив гледаат, нели?
Значи, ако сакаме да додадете најдобра права за оваа парцела тука, но тоа е малку голи
bones-- дозволете ми да се направи тоа малку поубав.
Главната еднаква наспроти тежината.
Милји за галон.
Повторно, може да се види како корисна опционални аргументи тука, исто така,
што не мора да се стави работите во одреден ред со тастатура аргументи
кога ќе имаат парцели, бидејќи овие се земе многу аргументи.
>> Xlab еднаква тежина, тежина, тони.
Во ред.
Добро, да, овој уред е да се биде малку досадно.
Но може да се види кој вид на, таму горе, има една титула графиконот на страна.
Овде there's-- на дното тука постојат оска етикети.
Јас не се сеќавам импровизирано што командите ars--
она што функции се да се зголеми големината на тие етикети и титули,
но тие се таму.
>> И така, ако сакаме да додадете најдобра права,
ние би можеле да направиме нешто like-- јас имаат синтаксата напишано тука.
Па се сеќавам ние едноставно додадете модел беше mpg, тежина, mtcars.
И така, ако сакав да додадете најдобро се вклопуваат линија, би можел да го направи а, б линија модел.
И бум, ние имаме најдобра права.
Тоа е вид на тешко да се види повторно.
Јас сум прилично жал за технолошки тешкотии.
Но, тоа ќе трае во основа горниот лев агол на долниот десен.
>> И ако на скалата се поголема, може да се види
дека пресекот е она што може да најдете од резиме на статистика на
ако го напишете резиме модел.
Добро, па се надевам дека секој добива нешто на чувство за она што
Р е, што е добро за.
Вие би можеле да се направи многу поубаво отколку парцели со тоа на свој пат, ако ви се допаѓа.
>> Па интерфејс странски функција.
Ова е нешто што не е типично опфатени во воведни предавања
или воведни ништо за р.
Тоа не е веројатно сте ќе треба.
Сепак, мислам дека е корисен во моите проекти во минатото.
И нема добра Почетен курс за него на интернет.
Па јас сум само ќе сите што го протурка овој
а потоа можете слободно да ја напуштат земјата.
Така и на странски интерфејс функција е она што
можете да го користите да се јавите за да се види функции со Р. Внатрешно,
Р е изграден на аритметички В Р е само 64-битен подвижна запирка аритметички С,
кој е пишувате двојни [Беззвучен].
И можеби ќе сакате да се направи ова за еден куп причини.
За еден, Р се толкува, тоа е не состави сведува на машински код.
Па можете да се запишете на вашиот внатрешниот јамки во C, а потоа се
предност за користење на Р. допаѓа тоа е малку поудобно од В.
Таа има подобра графики објекти и какво ли не.
И додека сеуште се во можност да се добие максимална брзина од внатрешниот петелки,
која е местото каде што навистина е потребно.
>> Повторната употреба на постојните C библиотеки, тоа е исто така важно.
Ако имате некои C библиотека за како, Не знам, Фурие преобразува,
или некои многу Archean применета постапка статистики
во висока енергетска астрофизиката или нешто, јас не знам.
Висока енергија астрофизиката не е дури ни мислат, мислам.
Но, можете да го направите тоа, наместо да има за да напишете мајчин Р порта од нив.
И на the-- и повторно, како и ако погледне во поголемиот дел од стандардните библиотеки Р,
на internals, на internals се случува да се користи странски функција
интерфејс многу опширно.
Тие ќе имаат вакви работи Фурие преобразува или компјутерски корелација
коефициенти напишан во C, и тие ќе само треба Р омоти околу нив.
Интерфејсот е малку тешко. Јас мислам
својата тежина е претерана во Голем дел од инструкциите што ќе најдете.
Но, сепак, тоа е малку збунувачки.
И јас не биле во можност да најде добар туториал за тоа,
па тоа е тоа во моментов.
Повторно, ова целиот сегмент е повеќе за понатаму.
Не грижете се за копирање сето надолу токму сега.
Па ги следниве упатства се за UNIX-like системи,
Linux, BSD, OS X. не знам како тоа функционира на Windows,
но ве молам само да не го направите вашиот Конечниот проект на Windows.
Вие навистина не сакаат да.
Unix е многу подобро сет Регистрација за обичниот програмирање.
Значи, во основа странски интерфејс функција.
Ако сакате да се напише C функцијата за употреба со R,
тоа мора да ги преземе сите аргументи како покажувачи.
>> Значи за еден вредности, ова значи дека е укажа на вредност.
За низи, е покажувач на првиот елемент, кој
е она што всушност значат имињата низа.
Повторно, ова е нешто што треба да имаат прилично тотално падна по стр постави пет.
Низа имиња се само совети на првиот елемент,
Вид на подвижна точка е двојно.
И вашата функција треба да ја врати неважечки.
Единствениот начин на кој може всушност Р кажам што се случи
е со менување на меморијата која Р даде да го преку странски функција
интерфејс.
>> Па јас го напишав овој пример тука, ова е
функција која ја пресметува употреба дот производ на два вектори.
Таа ги зема два аргументи, vec1, vec2, кои се самите вектори,
а потоа и n, што е должина, бидејќи повторно
R има изградено во [Беззвучен] за да дознаете должината на вектори, но C не е така.
Во C, вектори е произволна одвоени парче меморија.
Па начинот на кој може да се пресмета точка производи
е само сет ова параметар нула и потоа iterate преку
од 1 до n ѕвезда, бидејќи n е покажувач на должина,
само додадете нешто на ова параметар.
А тоа може да биде добра практика ако си оди за да се направи
тоа да се напише две одделни функции C.
Еден од нив has-- еден од нив само зема аргументи и видовите
дека тие обично ќе биде во В.
>> Па го зема низа аргументи како покажувачи.
Но аргументите еден вредност како n, потребно е само како вредности со копија,
без покажувачи.
И тогаш тоа не е [Беззвучен] надвор покажувачот.
А потоа ќе може да има различна, во основа,
омотот функција, која во основа се справува со барањата
на странската функција интерфејс за вас.
>> Начинот на кој ова го нарекуваат во R е, еднаш имате функција напишана во C,
го напишете cmd shlib Р, R команда заедничка библиотека,
foo точка в, или што вашето име на датотека е,
и на оперативниот систем не плаќа во R терминал.
А со тоа ќе се создаде библиотека наречена foo dot така.
А потоа можете да го вчита во нашиот скрипта или интерактивно
со командата dyn точка на товарот.
Потоа, тука е функција во R нарекува точка в.
>> За ова се потребни аргументи кои се прва името на функцијата во C
што сакате да го повикате.
А потоа и сите параметри за таа функција,
тие треба да бидат во соодветна цел.
Мора да се користат овој тип принуда функционира како цел број, како
двојно, како карактер, и логично.
И тогаш кога се враќа листа, што повторно е само
асоцијативна низа од параметар имиња и вредности
по функција се кандидира.
>> Значи во овој случај, бидејќи точка prod има аргументи vec1, vec2, и int n, n надвор.
До точка в имаме точка prod, името на функцијата
ние сме се јавувате, vec1, vec2, тип штетат.
Должината на која било вектор, Јас само го избра vec1 произволно.
Тоа ќе биде повеќе робустен да се каже е цел број мин должина од vec1, должина vec2.
Потоа едноставно како двојна нула, затоа што ние навистина не
гајле што оди во надвор параметар, бидејќи ние сме
поставување на нула во секој случај.
>> А потоа резултатите се случува да се биде голема низа на поврзани во основа
vec1 е сеедно, vec2 е сеедно.
Но, ние сме заинтересирани во надвор, па ние може да се добие тоа.
Ова е, повторно, многу пример играчка на интерфејс странски функција.
Но, ако имате за да се пресмета точка производи од масивни вектори во петелките,
или ако треба да се направи нешто друго, во еден циклус,
и не сакаат да се потпрат на R, која се занимава имаат малку на надземни
вградени во него, ова може да биде корисно.
>> Повторно, ова не е обично воведна тема за Р.
Тоа не е многу добро документирани.
Јас сум само тоа, бидејќи вклучувајќи Најдов дека е корисно во минатото.
Значи, лоши практики.
Јас спомнав дека има за телефонска линија во функција.
Генерално не треба, во јазикот, не го користам.
Врз основа на тоа како Р спроведува повторување внатрешно, тоа може да биде бавно.
Тие, исто така, само изгледа грдо.
>> Р справува вектори многу убаво, па Честопати не треба да го користат.
Тогаш што обично може да замени векторот често
со овие функции се нарекува висок цел функции, мапа, намалување,
Се најде, или филтер.
Јас само ќе даде некои примери на она што тие го прават.
Картата повисока функција, бидејќи цел потребно е функцијата како аргумент.
За да можете да го даде на функцијата, можете да го даде низа,
и тој ќе се однесува на функцијата на секој од елементите на низата
и да се врати на новата низа.
Се намали, во основа ви даде таа низа, го даде
функција која трае два аргументи.
Тој ќе се однесува на функцијата прв, Првиот аргумент со некои стартер вредност.
Потоа до тој резултат во вториот.
Потоа до тој резултат во третиот, потоа до тој резултат во четвртата.
А потоа се врати кога ќе дојдете до крајот.
Така на пример, ако сакате да го пресмета збирот на сите елементи
во низа, отколку што може да се јавите намали со [Беззвучен] намали дополнување
функција, како и функцио a, b, се врати плус b.
А потоа започнете со вредност од 0.
>> И сите овие, можете да ги најдете опишани во документацијата за R,
во секој учебник за функционално програмирање.
Има исто така и оваа класа на функции наречен применуваат функции,
која јас don't-- тие се малку тешко да се објасни,
но ако се погледне во [Беззвучен] резервираниот дека јас ги наведов на почетокот,
тој ги објаснува многу добро во додатокот на својот Р програмирање.
Повеќе за практики, дополнување на вектори.
Да?
Мислам дека треба да го поправи тоа.
Во првата линија, vec стрела, дека стрелката не треба да биде таму.
Можете да го доделите на вектор, повторно, по земе неговата должина плус 1
и доделување на некои вредност на тоа.
Која ќе се прошири на векторот, или може да го направи vec еднаквите в, vec newvalue.
Повторно, ако користите C со еден аргумент како вектор,
како резултат на хиерархија добива се срамнети со земја.
Така што само ќе добие вектор тоа е продолжен до 1.
Никогаш не го направите тоа.
>> Причината зошто ти не треба да се направи ова е тоа.
Кога ќе се распредели на вектор, тоа што дава одредена парче меморија.
Ако се зголеми големината вектор, тоа треба да се реалоцираат векторот
на друго место.
И така прераспределба е прилично скапи.
Јас нема да одам во детали за тоа како меморија распределувачи се спроведуваат
на нивото на оперативниот систем, но потребно е многу време
да се најде нов парче на меморија.
И, исто така, ако сте повторна распределба на многу, многу
на постепено поголеми парчиња, ќе се заокружи
со нешто што се нарекува меморија фрагментација,
каде што на достапната меморија е поделени во многу мали блокови
во точка меморијата распределувачи на гледање.
И тоа станува потешко и потешко да се најде меморија за други работи.
Па наместо тоа, ако ви треба да го направите ова, ако што треба да се зголеми на вектор од едниот крај
за следната, наместо додавање на него постојано, треба да се пре-распредели.
Vec стрелки, вектор должина еднаква на 1.000, или whatever.
>> И можеш само да му ја додели на вектор е вредности еден
време откако сте го доделуваат еднаш.
Налетав на ова, повторно, мојата летна работа кога ја пишував диференцијална НРА
равенка решавање.
Не симболична нумеричка.
Идејата е дека штом еднаш ќе имаат една вредност за вашиот решение,
користите дека за да се пресмета на следниот.
Значи мојата природна наивни инклинација е да се каже во ред,
па јас ќе започне со вектор тоа е значителна вредност.
Пресмета дека од следната вредност што оди кон мојот решение вектор,
и додаваат дека.
>> Создаде нешто друго, додаваат дека.
И одеше многу, многу бавно.
И еднаш сфатив ова и јас сменив систем
од дополнување на овој вектор од 10.000 до 100.000 пати,
само да се пре-распределба вектор и само трчање со тоа.
Добив повеќе од 1.000 пати забрза.
Значи ова е многу честа стапица за R програмирање.
Ако треба да се изгради еден вектор дел по дел и тоа пред се распредели.
>> Друга вообичаена посета up-- ова е мојот последен слајд, не worry-- е грешка ракување.
Р, да бидам искрен, не го прави тоа навистина го направите тоа многу добро.
Постојат голем број на проблеми кои може да се појави.
На пример, ако добиете низа или вектор надвор од функција
кои очекуваше еден вредност да доаѓаат, или обратно,
и дека ќе помине во функција што ти напиша очекуваме една вредност,
што може да биде проблем.
>> Одредени функции врати нула како и, да речеме,
читањето од непостоечки клучот во листа.
Но null не е како C каде што, ако се обидете да го прочитате
од една стара покажувач, [Беззвучен] покажувачот на нула, тоа само СКГ грешки
и ако вие сте во вашата дебагерот тоа ви кажува точно каде се наоѓате.
Наместо тоа, ќе null do-- функции ќе го направи непредвидливи работи
ако тие се предадени за ништовни.
Како ако сте предадени макс нула, тоа ќе ви даде негативни бесконечност.
И така, да.
И така тоа се случи еднаш ми кога имав
променети еден куп на полиња во мојата листа структура
еднаш без да ги менува на друго место кога го читав од нив.
А потоа добив сите видови на случајни Резултатите бесконечност појавуваа
и јас не знам од каде што дошле.
И, за жал, има без вистинска Р строг режим
каде што може да се каже, ако нешто изгледа како тоа би можело да биде грешка,
само завршуваат тука, така што може да биде дисциплинирани и да ја поправите тоа.
Сепак, постои нешто наречена стоп ако не.
Ова е еквивалентно да се тврди С, ако сте зборуваше за тоа.
Јас не мислам дека С тврдат е предавање тема,
но вашиот лидер секција може да се качил над неа.
И да престане ако не и едноставно прави било прирокот, па било какви изјави дека
можат да бидат вистинити или лажни.
И, ако е неточно, тоа ќе престане нејзината програма.
Тоа ви кажува точно она што се редат беа вклучени и во каква состојба се успеа.
>> И ова е многу корисно, на пример, проверка на разумност, функција влезови.
Значи, ако имате некоја функција и може да се очекува, на пример,
ако ви треба да ми даде датум, сакам датумите биде само еден вектор со должина 1
и некаде помеѓу 1 и 31.
А ако не, јас знам нешто не е во ред.
И јас да изберат да престане да постои пред овој има произволни затропа на ефекти со код
дека тоа е потешко да се следи преку.
Значи, тоа е една од можните користите за да запре ако не.
>> Во секој случај, ОК.
Па тоа е крајот.
Многу ви благодарам што дојдовте.
Јас сум ранг аматерски во ова.
Толку ми е жал ако сте досадно или збунети или она што го имате.
Среќен сум што можам да се земе прашања преку е-маил во connorharris@college.harvard.edu.
Тоа важи и за секого гледаат оваа живеат или подоцна.
Исто така, иако не сум ТФ, јас сум исто така многу
подготвени да им служи како неофицијална советник за секој кој е
користење на R во конечниот проект.
>> Ако сакате да се тоа, а потоа само да зборувате со вашиот ТФ
а потоа пишете ми на е-маил, така Знам дека она што го работам
и за да можам да се постави состанок Времето е со вас, ако сакате.
Значи, повторно, многу ти благодарам.
Се надевам дека ќе го уживаше.
>> ПУБЛИКАТА: [Беззвучен].
>> CONNER HARRIS: Се разбира.
>> ПУБЛИКАТА: Каков вид на проект ќе го користи студент ЦС Р за?
CONNER Харис: Значи, ако не си го направи нешто што е чисто во податоци за рударство,
на пример, и таму многу работи
можете да направите со тоа што со податоци рударството и машинско учење.
Можеби ќе сакате да го користите за истражување компонента на нешто.
Јас израснати, првично, на пример за ако сте пишување на веб-страница
и сакате да се кандидира автоматски статистичка анализа на вашиот сервер
логови, во одредено време секој ден, тоа може да биде нешто што е
многу лесно да се направи во само еден краток Р скрипта која може да се закаже
да се кандидира, секоја вечер, на пример.
>> И сигурен сум дека, ако има ли причина што би
сакате статистика или графики способности и имаат оваа вклучување автоматски наместо
на морале да комуницирате со работи во Excel,
на пример, дека е нешто можеби ќе сакате да го користите за истражување.
Па на други прашања, пред да ја напуштат?
Не?
Добро, добро, повторно, ти благодарам Ви благодарам многу за доаѓање.