[Музички] DUSTIN TRAN: Здраво. Дастин Моето име. Затоа јас ќе се презентира Анализа на податоци во Р. Само малку за себе. Јас сум во моментов дипломиран студент во на инженерство и применети науки. Учам испреплетувале машина за учење и статистики па анализа на податоци во R е навистина фундаментално значење за она што Јас се направи на дневна основа. И R е особено добро за анализа на податоци бидејќи тоа е многу добро за Текара. И обично, кога правиш некој вид анализа на податоците, многу од проблемите се случува да се когнитивно. И така само сакаат да имаат некои навистина добри јазик е само добар за правење вградена во функциите, што е спротивно да се има да се справи со ниско ниво на работите. Така, во почетокот, јас сум само ќе да се воведе она што е R, зошто би сакате да го користите, и потоа оди преку во некои демо, и само одат од таму. Значи она што е R? Р е само јазик развиен за статистички компјутери и визуелизација. Значи она што ова значи е дека тоа е многу одлични јазик за секој вид на нешто што се занимава со несигурност или визуелизација на податоците. Па имате сите овие распределба на веројатностите. Таму се случува да биде вградена во функциите. Вие исто така ќе имаат одлична заговор пакети. Пајтон е уште еден конкурентски јазик за податоци. И една работа која сметам дека R е многу подобро е визуелизација. Па што ќе видите во демо како добро е само многу интуитивен јазик кој едноставно работи исклучително добро. Исто така е слободен и софтвер со отворен код, како е секој добар јазик претпоставувам. И тука, еден куп на само клучни зборови фрлени во вас. Тоа е динамичен, што значи дека ако имате посебен вид доделен на објект од тоа само ќе го промени на мува. Тоа е мрзелив, па тоа е паметен за како го прави пресметки. Функционален што значи тоа навистина може да работи базирана на функции, па anything-- било вид на манипулација сте Притоа, тој ќе биде базирана на функции. Значи бинарни оператори, на пример, се само инхерентно функции. И сето она што сте ќе треба да направите е да се ќе треба да се избега себе функции. И тогаш објектно ориентирано, како и. Значи тука е XKCD заговор. Не само затоа што се чувствувам како да XKCD е од фундаментално значење за било кој вид на презентација, туку затоа што Се чувствувам како тоа навистина чекани поентата дека многу од време кога правиш некој вид на податоци анализа, не е проблемот толку многу колку брзо бега, но колку долго тоа ќе се ве однесе да се програмира на задачата. Значи тука е само анализирањето на тоа дали стратегија a или b е поефикасен. Ова се случува да биде нешто што сте случува да се справи со нив, во многу вид на ниско ниво јазици кога си имаш работа со СКГ грешки, распределбата на меморија, initializations, дури и правење на вградена во функциите. И овој материјал се ракува со сите многу, многу елегантно во Р. Па само да ги нападне овој точка, најголемиот тесно грло ќе биде когнитивни. Значи, анализа на податоци е многу тешко проблем. Без разлика дали ви се прави машина за учење или сте го прават само некој вид на основните истражување на податоци, не сакате да има да се донесе документ а потоа ги собира нешто што секој пат кога ќе сакаат да видат што колона изгледа, она што особено записите во матрица изгледа како. Така да само сакаат да имаат некои навистина убав интерфејс можете да го извршите едноставна функција дека индексите на она што сакате и само ја стартувате од таму. И ви треба домен специфични јазици за ова. И Р навистина ќе ви помогнат да се дефинираат проблемот и да го реши тоа на овој начин. Значи тука е заговор покажува програмирање Популарноста на R како што тоа го нема текот на времето. Па како што можете да видите, како 2013 или така што само разнесено неверојатно. И ова е само поради тоа огромен тренд во индустријата на технологијата за големи податоци. Исто така, не само на технологијата индустрија, но, навистина било која индустрија that-- бидејќи голем број на индустрии се вид на фундаментално значење за се обидува да ги реши овие проблеми. И обично, може да има некои добри начин на мерење на овие проблеми или дури и да ги дефинира или решавање на нив со користење на податоци. Па мислам дека во моментов R е 11-ти најпопуларните јазик на TIOBE и тоа е во пораст, бидејќи тогаш. Па еве некои повеќе карактеристики на Р. Таа има огромен број на пакети и за сите овие различни нешта. Затоа, секој пат кога ќе имаат некој проблем, повеќето времето R ќе има таа функција за вас. Значи без разлика дали сакате да изгради некој вид на машина учење алгоритам наречен Случајни шума или одлуката на дрва, или дури и се обидува да ги средната вредност на функција или било кој од овие работи, R ќе го имаат тоа. И ако не ти е гајле за тоа оптимизација, едно нешто што е заедничко е дека откако ќе завршиш Текара некој вид на високо ниво јазик, ќе фрли дека in-- Вие само ќе портот на кој над на некои ниско ниво јазик. Што е добро за R е дека некогаш сте Текара направи тоа, можете да го извршите C ++, или FORTRAN, или било која од овие пониско ниво оние директно во Р. Значи тоа е еден навистина кул особина за истражување, ако навистина се грижат за оптимизација точка. И тоа е, исто така, навистина добро за веб визуализации. Значи D3.js, на пример, Претпоставувам друг семинар што ние денес го презентираше. И ова е навистина страшно за прави интерактивна визуелизација. И D3.js се претпоставува дека имаат некој вид на податоци за да се црта и R е одличен начин да се биде во можност да го стори анализа на податоците пред да го изнесете во текот на D3.js или дури и само стартувајте D3.js команди во R себе, како и сите овие други библиотеки, како и. Па тоа беше само воведувањето на она што е R и зошто би го користите. Па се надевам, јас сум сте убедени нешто за само се обидува да видиме што тоа е како. Па јас одам да се оди напред и да си одат преку некои основи за R објекти и она што навистина може да се направи. Значи тука е само еден куп на математика команди. Така велат you're-- сакате да се изгради јазик себе и едноставно сакате да имаат еден куп на различни алатки. Било кој вид на работа мислите дека би сакам е доста ќе биде во Р. Значи тука е 2 плус 2. Тука е 2 пати ПИ. R има еден куп на вградениот константи кои честопати ќе се користи како пи, е. А потоа, тука е 7 плус runif, така runif од 1. Ова е функција која е генерира еден случаен подеднакво од 0 до 1. А потоа, тука е 3 на моќта на 4. Има квадратни корени. Има логирате. Значи најавите ќе направи база експоненцијална од себе. И тогаш, ако се определи база, а потоа можете да правите што сакате база. А потоа, тука се и некои други команди. Па имате 23 мод 2. Потоа мора остатокот. Потоа мора научни нотација ако вие исто така сакате да се направи нешто повеќе и повеќе комплицирани работи. Па овде е задача. Така типични задачи во R е направено со стрелка така што е помалку отколку, а потоа и цртичка. Па еве јас сум само давање 3 на променлива вал. И тогаш јас сум печатење Вал и тогаш тоа отпечатоци од три. По дифолт во R преведувач, тоа ќе печати работи за вас така да не треба да се наведе печати Вал секој пат кога ќе сакате да се печати нешто. Вие само може да го направи Вал и тогаш тоа ќе го направи тоа за вас. Исто така, можете да го користите еднаква на технички како задача оператор. Постојат мали суптилностите помеѓу користење на стрелките оператор и еднаквите оператор за задачи. Претежно од Конвенцијата, секој само ќе го користи на стрелките на операторот. И тука, јас сум давање на оваа дијагонална нотација наречена 1 дебелото црево 6. Оваа генерира вектор од 1 до 6. И тоа е навистина убаво, бидејќи тогаш вие само му ја додели на вектор на Вал и дека работи само по себе. Значи ова веќе се случува од single-- многу интуитивен податоци структура на само двојно некои од типот на видот во вектор и кој ќе ги собира сите скаларен вредности за вас. Значи, откако ќе од скаларен, можете имаат Р објекти и ова е вектор. А вектор е било кој вид на наплата на истиот тип. Значи тука се и еден куп на вектори. Значи ова е нумеричка. Нумерички е начин да се каже двојно Р. И така, по дифолт, секој бројот ќе биде двојно. Значи, ако имате в од 1,1, 3, негативни 5.7, на c е функција. Ова concatenates сите три броеви во вектор. И ова ќе be-- па ако Ако забележите 3 сама по себе, Нормално дека ќе ги преземе дека ова е како цел број, туку затоа што сите вектори може да бидат исти тип, ова е вектор на двојки или нумерички во овој случај. rnorm е функција која генерира стандард нормално variables-- или стандард нормални вредности. И јас сум специфицирање на две од нив. Па јас го правам rnorm 2, доделување дека за да devs, и тогаш јас сум печатење devs. Значи овие се само две случаен нормални вредности. И тогаш ints ако не вие се грижите за цели броеви. Значи ова е само за меморија распределба и заштеда на големината на меморијата. Значи, вие ќе треба да се додаде вашите броеви од главниот град Л. Во принцип, ова е Историски нотација Р за нешто што се нарекува долги цел број. Така, поголемиот дел од времето, ќе се занимаваат со двојки. И ако некогаш ќе подоцна за да се оптимизира вашиот код, можете само да ги додадете овие L's потоа или за време на тоа ако сте како precognitive за тоа што си оди за да се направи овие променливи. Значи тука е лик вектор. Значи, повторно, јас сум concatenating три жици тоа време. Забележете дека двојно жици и еден низи се исти во Р. Значи имам Артур и Марвин и така кога јас сум таа печатење, сите од нив се случува да се покаже двојно жици. И ако вие исто така сакаат да се вклучат двојни или за еден стринг во вашите карактери, тогаш може да се или го менува вашиот жици. Значи Марвин е проект за втор елемент, ова е ќе ви show-- само треба двојно жици а потоа еден стринг па ова е наизменични. Во спротивно, ако сакате да користите двојно низа оператор во двојна низа и кога го прогласи, а потоа само користење на бегство оператор. Така да се направи обратна коса црта двојно стринг. И на крај, ние, исто така, имаат логички вектори. Значи logical-- толку точно и лажни, и тие се случува да бидат сите големи букви. А потоа, повторно, јас сум concatenating нив, а потоа ги доделуват на bools. Значи bools ќе сака да покаже можете точно, неточно, и вистински. Па овде е векторизација индексирање. Така, во почетокот, сум преземање на function-- ова се нарекува sequence-- секвенца од 2 до 12. И јас сум преземање на низа од 2. Значи, тоа се случува да се направи 2, 4, 6, 8, 10 и 12. И тогаш, јас сум индексирање да се добие третиот елемент. Значи, една работа да се има предвид е дека R индекси почнувајќи од 1. Значи VALS 3 се случува да им даде можете третиот елемент. Ова е вид на различен од другите јазици, каде што почнува од нула. Значи во C или C ++, на пример, ти си ќе се добие четвртиот елемент. И тука е VALS од 3 до 5. Значи, едно нешто што е навистина кул е тоа што вие може да генерира привремени променливи внатре а потоа само ги користат на мува. Значи тука е 3 до 5. Затоа, јас сум генерирање вектор 3, 4 и 5, а потоа Јас сум индексирање да се добие трета, четвртиот, петтиот и елементи. Така, на сличен начин, можете да Апстракт Овој само да се направи било вид на вектор кој ви дава индексирање. Па овде е VALS а потоа првиот, третиот и шестиот елементи. И тогаш, ако сакате да се направи дополнување, така што само го прават минус потоа, а на кој ќе ти даде сè што не е прво, трето или шестиот елемент. Значи ова ќе биде 4, 8 и 10. И ако сакате да се добие дури и повеќе напредни, можете да concatenate Булова вектори. Значи овој индекс се случува да ви даде ова Булова вектор со должина од 6. Значи претставник ТОЧНО запирка 3. Ова ќе се повтори ТОЧНО три пати. Значи ова ќе ви даде вектор ТОЧНО, тоа е вистина, тоа е вистина. претставник НЕТОЧНО 4-- тоа се случува да ви даде вектор на лажни, неточни, погрешни, лажни. И тогаш в се случува да concatenate овие две Booleans заедно. Така да си оди за да се добие три TRUEs а потоа четири FALSEs. Така што кога ќе индекс VALS, ти си ќе се добие вистинската, тоа е вистина, тоа е вистина. Значи тоа се случува да се каже ДА, Сакам овие три елементи. И тогаш лажни, неточни, НЕТОЧНО, лажно се случува да кажеме не, не сакам оние елементи па тоа не се случува да ги врати. И претпоставувам дека има всушност е печатна грешка тука бидејќи ова е велејќи повтори ТОЧНО 3 и да го повтори FALSE, 4, и технички, имаат само шест елементи па повторете лажни, тоа треба да биде повторување НЕТОЧНО 3. Мислам R е исто така доволно такви паметни дека ако само 4 наведете тука, а потоа Тоа дури и не ќе грешки надвор. Тоа само ќе ви даде оваа вредност. Па тоа само ќе го игнорираат тоа четвртиот лажни. Па овде е векторизација задача. Значи set.seed-- ова само ги поставува семе за pseudorandom броеви. Затоа, јас сум поставување на семето да 42, што значи дека ако јас генерира три случајни нормално вредности, а потоа, ако set.seed кандидира на вашиот сопствен компјутер со користење на иста вредност 42, тогаш можете исто така да добијат истите три случаен нормални. Значи ова е навистина добра за репродуктивност. Обично, кога правиш некои вид на научна анализа, и вие ќе сакате да го поставите на семе. На тој начин, другите научници да се само репродуцира точно истиот код сте направи, бидејќи тие ќе имаат точната исто случајни променливи that-- или случајни вредности кои сте ги направиле исто така. И така на векторизација задача тука се покажува на VALS 1 до 2. Па тоа го зема првиот два елементи на VALS и потоа да ги доделува на 0. И тогаш, исто така можете да го направите само на Слична работа со Booleans. Значи VALS не е еднаков на 0-- оваа волја ви даде вектор лажни, неточни, ТОЧНО во овој случај. И тогаш, тоа се случува да се каже било од тие индекси кои беа вистински, тогаш тоа се случува да се додели дека до 5. Па го зема третиот елемент тука, а потоа го доделува на 5. И ова е навистина убаво во однос на јазиците на ниско ниво каде што треба да се користи за петелки да се направи сето ова векторизација работи затоа што тоа е само многу интуитивен и тоа е само еден-постелка. И, што е одлично за векторизација нотација е дека во R, овие се вид на вграден така што тие се речиси исто толку брзо што се прави во ниско ниво јазик за разлика од правење на за телефонска линија во R и потоа таа да се направи динамиката себе индексирање. И тоа ќе биде побавно од тоа овој вид на векторизација работа каде што може да го направи тоа во паралела, каде тоа е тоа го правам во нишките основа. Значи тука е векторизација операции. Затоа, јас сум генерирање на вредност од 1 до 3, назначување дека за да vec1, од 3 до 5, vec2, додавање на нив заедно. Тоа им додава компонента-мудар па тоа е 1 плус 3, 2 и 4, и така натаму. vec1 пати vec2. Ова се размножува двете вредности компонента мудар. Така, тоа е 1 пати 3, 2 пати 4, а потоа и 3 пати 5. И тогаш, на сличен начин можете исто така да се направи comparisons-- логички споредби. Така, тоа е НЕТОЧНО Неточно Вистински во оваа случај, бидејќи 1 не е поголем од 3, 2 не е поголем од 4. Ова е, претпоставувам, уште една печатна грешка, 3 дефинитивно не е поголема од 5. Да. И така, вие само може да се направи сите овие едноставни операции поради наследените од самите класи. Па тоа беше само на вектор. И тоа е вид на најфундаменталните Р објект, бидејќи со оглед на вектор, може да се изгради повеќе напредни објекти. Па еве матрица. Ова е суштина на апстракција на она што матрица е себе. Значи во овој случај, тоа е три различни вектори, каде што секој од нив е колона, или можете да го разгледа како секој од нив е ред. Затоа, јас сум чување матрица од 1 до 9 и тогаш јас сум специфицирање 3 реда. Значи, 1 до 9 ќе ви даде вектор 1, 2, 3, 4, 5, 6, и сите на патот до 9. Една работа е да, исто така, имајте на ум е дека Р продавници вредности во колона голем формат. Значи со други зборови, кога ќе видите 1 до 9, тоа се случува да се сместат them-- тоа се случува да биде 1, 2, 3 во првата колона, и тогаш тоа ќе го стори 4, 5, 6 во втората колона, а потоа и 7, 8, 9 во третата колона. И тука се и некои други заеднички функции можете да го користите. Значи темни МАТ, ова ќе ви даде димензиите на матрицата. Тоа се случува да ви се врати вектор на димензија. Значи во овој случај, бидејќи нашите матрица е 3 од 3, тоа се случува да ви даде вектор нумерички тоа е 3 3. И тука е само покажува матрица множење. Па обично, само ако се направи asterisk-- така МАТ ѕвездичка mat-- ова ќе биде компонента-мудар работа или она што се нарекува производот Hadamard. Значи, тоа се случува да се направи секој елемент компонента-мудрец. Сепак, ако сакате матрица multiplication-- така множење на првиот ред пати Првата колона на втората матрицата и така on-- ќе се користи овој процент операција. И т на МАТ е само еден операција за транспонира. Значи сакам да кажам дека ги преземе транспонира во матрица, тоа се размножуваат од страна на матрица себе. И тогаш тоа се случува да врати за вас уште 3 3 матрица прикажување производ што би сакале. И така тоа беше матрица. Тука е она што се нарекува податочна рамка. А податоците рамка можете да мислам на како матрица, но секоја колона се се случува да бидат од различен тип. Значи она што е навистина кул за податоци рамки е дека во анализа на податоци себе, ви се случува да имаат сите на овој хетерогени податоци и сите овие навистина каде неуредна нешта секоја од колоните самите можат да бидат од различен тип. Па еве јас велам создаде податоци рамка, дали ints од 1 до 3, а потоа, исто така, имаат карактер вектор. Па јас може да индексира преку секоја од овие колони а потоа јас ќе го добиете самите вредности. И ти исто така може да се направи некој вид на работењето на податоци рамки. И поголемиот дел од времето кога сте прави анализа на податоци или некој вид на препроцесирачка, ќе биде работа со овие структури на податоци каде што секоја колона се случува да бидат од различен тип. На крај, па тие се во суштина само Од четирите значајни објекти во Р. Листа само ќе се соберат сите други објекти што сакате. Значи, тие ќе бидат зачувани во една променлива која лесно можете да пристапите. Па еве, јас сум преземање на листата. Сакам да кажам дека е еднакво на 3 нешта. Значи, јас ќе одам да имаат еден елемент во листата, и ова се нарекува работи, и тоа се случува да имаат вредност 3. Јас, исто така може да се создаде матрица. Значи ова е од 1 до 4 и ставање крај на расправијата изнесува 2, па на 2 од 2 матрица. Исто така во листата и се вика МАТ. moreStuff, карактер стринг, па дури и уште еден список во себе. Значи, ова е листата што е 5 и мечка. Така што има вредност 5 и тоа има карактер стринг мечка и тоа е една листа во листата. Така може да имаат овие рекурзивен работи каде имате another-- на тип во рамките на видот. Така, на сличен начин, може да имаат матрица во друга матрица и така натаму. И листа е само добар начин на собирање и Собирање сите овие различни предмети. И на крај, тука е само помогне во случај Ова беше само качил над многу брзо. Значи, во секое време ви се збунети за некој вид на функција, можете да го направите помош на таа функција. Така што можете да направите помош матрица или знак прашалник матрица. И помош и прашалник се само кратенка за истото па тие се псевдоними. LM е функција која само го прави еден линеарен модел. Но, ако само немаат идеја како тоа дела, вие само може да се направи помош на lm и тоа ќе ви даде некои вид на документација која изгледа нешто како човек страница во Unix, каде имате краток опис на она што го прави тоа, исто така, она што нејзините аргументи се, што тој се враќа, и само совети за тоа како да го користат, а некои примери, како и. Значи, дозволете ми да оди напред и да го покаже некои демо за користење на Р. ред. Па отидов многу брзо само на податоците структури и некој вид на op-- некои од операции. Еве некои функции. Па еве јас сум само ќе за да се дефинира функција. Затоа, јас сум исто така со користење задача оператор тука, а потоа сакам да кажам дека ја прогласи како функција. И тоа трае вредноста х. Значи ова е било вредноста што сакате а јас ќе одам да се врати x себе. Значи ова е идентитетот функција. И, што е кул за ова во споредба со други јазици и уште на ниско ниво јазици е дека x може да биде на било која самата тип и тоа ќе се врати тој тип. Така може да се imagine-- па ајде ми го изврши овој брзо. Жал ми е. Значи, една работа што треба да се спомене е дека овој уредувач Јас сум со користење се нарекува rstudio. Ова е она што се нарекува еден IDE. И едно нешто што е навистина убаво за ова е тоа што во неа се опфатени многу од работите што сакате да го направите во R сама по себе само многу интуитивно. Па овде е преведувач конзола. Така, на сличен начин, можете, исто така, може да добие оваа конзола суровини само со правење на главниот град Р. И токму тоа е истото како конзола. Па јас само може да се направи проект функција x, x, x. И then-- и тогаш тоа ќе биде во ред себе. Значи rstudio е одлично затоа што има конзола. Таа, исто така има документи што би сакале да работат на. И тогаш таа има неколку променливи што може да се види во средини. И тогаш, ако имате да се направи парцели, тогаш ќе само може да го видите тука, што е спротивно на управувањето со сите овие различни прозорци сами по себе. Јас всушност лично користење vim, но јас се чувствувам како rstudio е одлична само за добивање на добра идеја како да се користи Р. Обично, кога ќе се обидуваш да научат некои нови задачи, вие не сакате да се справи со премногу работи одеднаш. Значи R е само very-- rstudio е многу добар начин за учење R без да се справи со сите овие други работи. Па еве јас се кандидирам проект здраво. Ова се враќа здраво. id 123. Тука е вектор на цели броеви. Така, на сличен начин, затоа што може да преземат какви било некој вид на вредност, можете да направите за да се врати на проект x така се враќа на 1234 и 5. И дозволете ми да ви покаже дека ова навистина е цел број. И слично на тоа, ако го направите класа проект X, тоа се случува да биде цел број. И тогаш, можете исто така да споредба на двете и тоа е вистина. Затоа, јас сум проверка дали проект на x еднаква еднаква на x и известување тоа што ви дава два TRUEs. Значи ова не е велејќи дека се два објекти идентични, но секој од влезовите во рамките на вектори идентични. Еве bounded.compare. Значи ова е малку покомплицирано со тоа, што има ако состојба и друго а потоа се потребни двајца аргументи во исто време. Значи x е од било кој тип. И јас велам дека ова Вториот аргумент е. Ова може да биде ништо како добро. Но, по дифолт, тоа се случува да се земе 5 Ако не наведете ништо. Па еве јас ќе одам да се каже ако x е поголема од. Значи, ако јас не одредите, тоа вели дека ако x е поголема од 5, тогаш јас ќе одам да се врати ТОЧНО. друго, јас ќе одам да се врати лажни. Значи, дозволете ми да оди напред и да ги дефинира ова. И сега јас ќе одам да работи bounded.compare 3. Така вели дека е 3 помалку than-- е 3 поголема од 5. Не, тоа не е толку неточно. И bounded.compare 3 и Одам за да го споредат со користење на изнесува 2. Па сега јас велам да, сега јас сакаат да бидат нешто друго. Па јас одам да се каже, треба да биде 2. Јас или може да се направи овој вид на нотација или велам изнесува 2. Ова е да се чита повеќе со тоа што кога сте гледајќи ги овие навистина сложени функции кои се повеќекратни arguments-- и ова може да има десетици oftentimes-- само велејќи: еден изнесува 2 е уште читлив за вас, така што подоцна во иднината ќе се знае она што го правиш. Значи во овој случај, јас сум Точно е тоа 3 поголема од 2. Да тоа е. И слично, јас само може да се отстрани ова и велат, е 3 поголем од 2 каде што изнесува 2. И тоа е така е точно. Да? ПУБЛИКАТА: Дали сте извршување линија по линија? DUSTIN TRAN: Да, јас сум. Значи она што го правам тука е преземање на овој текст document-- и што е одлично за rstudio е дека Јас само може да работи на short-- кратенка. Па јас го правам контрола-Enter. И тогаш, јас сум преземање на линија во текст документ и потоа да се стави во конзола. Па еве јас велам, bounded.compare и јас го правам Контрола-X. Па јас само може да се кандидира и тука. И тогаш таа ќе ги преземе линија, а потоа го стави тука. И тогаш слично на тоа, можам да го стартувате тука. И тогаш тоа само ќе го задржи дефинирање линии во конзола како тоа. И ако вие исто така забележуваат кадрава протези се таму исто како и во C синтакса. x-- ако ако состојбата е, исто така, случува да го користите загради, а потоа можете да го користите друг. Уште еден е друго, ако. Значи ова се случува да биде X еднаква еднакво на, на пример. И тогаш јас ќе одам да врати нешто тука. Забележете дека постојат два различни работи тука што се случува. Една од нив е дека овде сум специфицирање се врати вредноста е TRUE. Еве јас сум само велејќи х. Значи R ќе обично стандардно преземат последните arguments-- или да се последната линија на кодот, и дека ќе биде она што е се врати. Значи тука се работи за иста нешто што се прави враќање х. И само да ви покаже. И тогаш, тој ќе работи само како тоа. Значи, дозволете ми да продолжи со тоа. Па што друго ако. И, навистина, можат да се вратат ништо што би сакале. Па јас дури и не мора да враќање Booleans цело време, Јас само може да се врати нешто друго. Значи можам да направам враќање мечка. Значи, ако x е еднаква еднакво, тоа се случува да се врати мечка. Инаку, тоа се случува да се вратите ТОЧНО. Јас, исто така може да се направи вектор или навистина ништо. И нормално, во статички отчукува јазици, ќе треба да наведете еден вид тука. И ќе забележите дека тоа само може да биде ништо. И R е доволно интелигентен дека само ќе го направи тоа и тоа ќе работи добро. Значи, дозволете ми да го дефинираат ова. Unexpected-- ох ми е жал. Тоа треба да биде кадрава голема заграда тука. OK. Кул. Во ред. Па сега ајде да се споредат 3 и е еднаква на 3. Значи таа треба да return-- yeah-- вредноста мечка. Па сега една поопшта работа е како Што е со другите структури на податоци. Па имате оваа функција. Ова се случува да работат на било кој вид од вредност како 3 или било нумерички, со други зборови, двојно. Но, она што за нешто како вектор. Значи она што се случува ако do-- па јас сум ќе додели Вал, да речеме, од 4 до 6. Значи, ако јас го вратите ова е вектор од 4, 5, 6. Сега да видиме што ќе се случи ако го направам bounded.compare разл. Значи ова се случува да ви даде 15 1251. Значи со други зборови, тоа е велејќи ако се погледне на оваа состојба тоа што го кажува x е помалку од една или нешто слично. Значи ова е малку збунувачки, бидејќи сега само не знам што се случува. Па претпоставувам дека едно нешто што е навистина добро за само се обидува да debug е дека само може да го направи Вал е поголема од една и да видиме што се случува таму. Значи val-- на е стандардно 5 па ајде да се Вал поголема од 5. Значи ова е вектор НЕТОЧНО Неточно Вистински. Па сега кога сте во потрага на ова, тоа се случува да се каже дали, а потоа тоа се случува да ви даде оваа е вектор на лажни Неточно Вистински. Значи, кога ќе помине оваа во R, R не знае она што го правиш. Поради тоа се очекува еден вредност, која е Булова, а сега сте го дава векторот на Booleans. Значи, по дифолт, R е само одам да се каже она што е грижам, Одам да се претпостави дека сте случува да се земе првиот елемент тука. Значи, јас ќе одам да say-- Одам да се претпостави дека ова е неточно. Значи, тоа се случува да се каже Не, ова не е во право. Слично на тоа, тоа се случува да биде Вал еднаква еднакво. Не, жал 5. И тоа е, исто така, ќе биде неточно, како и. Значи, тоа се случува да се каже не, тоа не е точно, како и тоа е случува да се врати овој последен. Значи ова е или добро или лошо работа, во зависност од тоа како ќе ја видите. Затоа што кога ќе се креирање на овие функции, што всушност не знаат што се случува. Така понекогаш ќе сакате грешка, Или можеби само сакаат предупредување. Во овој случај, Р тоа не го стори. Така, тоа е навистина до можете базирана на она што мислите дека јазикот треба да се направи во овој случај ако поминете на векторот на Booleans кога правите ако состојба. Па да речеме дека сте имале оригиналот Ако еден со друг се врати вистина и вие сте случува да се врати лажни. Значи еден начин на црпење Ова е да се каже дека не ни треба овој условен работа. Друга работа е што можете да направите е само враќање на самите вредности. Значи ако забележите дека, ако направи Вал е поголем од 5, тоа се случува да се врати вектор НЕТОЧНО Неточно Вистински. Можеби тоа е она што сакате за bounded.compare. Сакате да се врати на векторот на Booleans каде што ја споредува секоја од вредностите за себе. Значи, вие само може да се bounded.compare функција x, на еднакво на 5. И наместо да се прави ова ако друг услов, Јас сум само се случува да се врати x е поголема од 5. Значи, ако тоа е точно, тогаш тоа се случува да се вратите ТОЧНО. А потоа, ако тоа не е, тоа е случува да се врати лажни. И ова ќе работат за било која од овие структури. Значи можам да bounded.compare в 1 6 или 9 а потоа јас ќе одам да се каже изнесува 6, на пример. И тогаш тоа се случува да ви даде право Булова вектор дека сте дизајнирање. Значи, тие се само функции и сега ме пушти само ви покаже некои интерактивни визуелни елементи. Јас не мислам дека, всушност, имаат Wi-Fi тука, па дозволете ми да оди напред и прескокнете овој претпоставувам. Но, едно нешто што е кул иако е тоа што ако само сакаат да се тестираат еден куп различни податоци команди, има еден куп на различни бази на податоци кои се веќе во пакет во Р. Еден од нив е наречен ирис базата. Ова е една од најпознатите оние во машина за учење. Вие ќе обично само се направи некој вид на тест случаи да се види дали вашиот код бега. Значи, ајде да се провери што ирис е. Значи ова нешто се случува за да биде податоци рамка. И тоа е вид на долго, бидејќи Јас само отпечатени ирисот. Тоа е печатење на целата работа. Значи таа ги има сите овие различни имиња. Значи ирис е збирка на различни цвеќиња. Во овој случај, тоа е кажувам можете видовите на тоа, сите овие различни ширини и должините на sepal и венчелистче. И така, нормално, ако сакате да печатите ирис, На пример, вие не сакате да го имаат направи сето ова, бидејќи тоа може да потрае повеќе Вашиот целата конзола. Значи, едно нешто што е навистина убаво е на чело функција. Значи, ако само го прават глава ирис, ова ќе ви даде првите пет редови, или шест претпоставувам. И тогаш добро, ќе само да наведете тука. Значи 20-- ова ќе им даде ти првите 20 реда. И јас всушност беше еден вид на изненадени дека овој ми даде шест, па дозволете ми да оди напред и проверете iris-- или главата, жалам. И тука ќе даде можете документација на она што вредност глава го прави тоа. Значи, таа се враќа на првата или последен на објектот. И тогаш јас ќе одам да се погледне на стандардно. И тогаш се вели стандардно метод глава X и n е еднакво на 6L. Значи ова се враќа на првите шест елементи. И слично, ако забележите тука, не треба да се наведе n изнесува 6. Стандардно се користи шест, претпоставувам. И тогаш, ако сакам да наведете одреден вредност, тогаш можам да ги видите тоа како добро. Па тоа е некои едноставни команди и еве уште еден што е just-- добро, Јас can-- ова е всушност малку посложени, Но, ова само ќе земе класа на секоја колона на ирисот базата. Значи ова ќе ви покаже што секоја од овие столбовите во однос на нивните видови. Значи sepal должина е нумерирана, sepal ширина е нумеричка. Сите овие вредности се само нумерички затоа што може да се каже од оваа податоци структурата на овие се сите ќе нумерички. И видови колона се случува да биде фактор. Па нормално, ќе помислите дека ова е како карактер стринг. Но, ако само се направи irisSpecies, а потоа јас ќе одам да направите глава 5, и тоа се случува да се печати на првите пет вредности. И тогаш го забележуваат тоа ниво. Значи ова е saying-- ова е начин на Р да има категорични променливи. Така, наместо на само имаат карактер жици, тие имаат нивоа специфицирање кој од овие работи. Па да речеме irisSpecies 1. Значи она што сакате да го направите тука е Јас сум subsetting на овој вид колона. Значи ова го зема Видови колона, а потоа индексира да се добие првиот елемент. Значи ова треба да ви даде setosa. И тој исто така ви дава нивоа тука. Така да, исто така, може да се спореди ова на ликот setosa и ова не се случува да биде точно, бидејќи еден е од различен вид од другата. Или претпоставувам дека тоа е точно, бидејќи R е поинтелигентен од тоа. И тоа изгледа во тоа, а потоа вели, можеби тоа е она што го сакате. Значи, тоа се случува да се каже карактер низа setosa е иста како оваа. И тогаш слично на тоа, можете да исто така, само го зграби овие, како така натаму. Па тоа е само некој вид на брзо команди на базата. Па еве некои истражување на податоци. Значи ова е малку повеќе вклучени во анализата на податоците. И ова се земени од некои bootcamp во истражување во Беркли. Значи библиотека за надворешни работи. Па јас одам да се вчита во библиотека со која се вика за надворешни работи. Значи ова се случува да ми даде read.dta па се претпостави дека имам оваа базата. Ова се чуваат во тековната работниот директориум на мојот конзола. Значи, ајде да видиме што работниот директориум е. Па тука е мојот работен директориум. И да чита податоци точка, ова работа, вели оваа датотека, се наоѓа во податоците папка на ова тековната работна папка. И ова не е read.dta на стандардната команда. Претпоставувам дека тоа што е ставена во веќе. IEI претпоставуваат Јас подигнат во веќе. Но, тоа не се случува read.dta да се биде стандардната команда. И тоа е причината зошто ви се случува да имаат да се вчита во оваа библиотека package-- овој пакет наречен странски. И ако немате пакетот, мислам дека странските е еден од вграден во нив. Инаку, можете исто така да направи install.packages и тоа ќе го инсталирате пакетот. И тоа ќе ви даде Р. Ух, бр. И тогаш јас сум само нема да запре ова, бидејќи јас веќе го имаат. Но она што е навистина убаво за R е дека за управување со пакети Системот е многу елегантна. Поради тоа што ќе ги чува се што навистина убаво за вас. Значи во овој случај, тоа се случува да се сместат во, верувам, оваа библиотека тука. Значи секое време сакате да инсталирате нови пакети, тоа е само едноставно како прави install.packages и R ќе управува со сите пакетите за вас. Значи, вие не треба да се направи нешто во Пајтон, каде што треба надворешен пакет менаџери како хартија Анаконда каде сте doing-- ќе се инсталира пакети надвор од Пајтон а потоа ќе се обидат да ги извршувате себе. Значи ова е навистина убав начин. И install.packages бара интернет. Тоа е потребно од сервер и складиштето собира сите пакети се нарекува CRAN. И можете да наведете кој вид на огледалото сакате да ја преземете пакети од. Па еве јас сум преземање на CCD ова. Јас сум тоа и читањето за користење на оваа функција. Значи, дозволете ми да оди напред и да го направи тоа. Значи, да се претпостави дека имаш овој на CCD и имаш апсолутно не знам што е тоа. И тоа, всушност, доаѓа до доста често во индустријата каде што само имаат овие тони и тони на неуредна нешта и тие се неверојатно Етикетата LABEL. Па еве јас ја имаат оваа Средување на податоци и не знам што е тоа, па јас сум само покажувајќи да го провериш. Па јас ќе одам да направите главата во прв план. Па јас се провери првите шест колони од она што тоа е на CCD. Значи, ова е држава, pres04, а потоа сите овие различни вид на колони. И она што е интересно тука, претпоставувам, е дека би се претпостави дека ова изгледа како некој вид на изборите. И претпоставувам само од гледање на датотеката именува ова е некој вид на наплата на податоци за кандидатите или гласачите кои гласаа за одредени претседатели или претседателот кандидати за изборите во 2004 година. Па овде е вредностите 1, 2 така еден начин на складирање претседателот кандидати се нивните имиња. Во овој случај, тоа личи тие се само целобројни вредности. Значи, 2004 година, тоа беше Буш наспроти Кери верувам. А сега, ајде да речеме дека само не знам 1 дали одговара на Буш или 2 одговара на Кери или и така натаму и така натаму, нели? И ова е само за мене, прилично заеднички проблем. Така што можете да направите во овој случај? Значи, да се провери сите овие други работи. држава, јас сум под претпоставка дека ова доаѓа од различни држави. partyid, приход. Ајде да погледнеме во partyid. Па можеби една работа што можете да направите е осврнам на секој од набљудувањата кои имаат partyid на Републиканската или демократ или нешто. Па ајде да погледнеме во она што е partyid. Па јас одам да се земе DAT, а потоа јас ќе одам да го направите тоа знак за долар операторот што го направив порано и тоа се случува да се подмножество на таа колона. И тогаш јас ќе одам да се упатат во овој 20, само да видам што ова изгледа како. Значи ова е само еден куп на NAS. Значи со други зборови, имаш недостасуваат податоци за овие момци. Но, исто така забележуваат тоа DAT partyid е фактор така што ова ви дава различни категории. Значи со други зборови, може да се земе partyid Демократите, републиканците, Индипендант, или нешто друго. Па ајде да одиме напред и ајде види кои од овие is-- О, во ред. Па јас ќе одам да се подмножество да partyid и потоа погледнете кои од нив се Демократ, на пример. Ова ќе ви даде Булова, огромен Булова на TRUEs и FALSEs. А сега, ајде да се каже сакам на подмножество на овие момци. Значи, тоа се случува да се земе мојата dat и подмножество линија до кој и забелешки имаат partyid еднаквите еднакво на демократите. И ова е прилично долга, бидејќи Има толку многу од нив. Па сега, јас ќе одам да го предводи овој во 20. И како што можете да забележите, е еднаква на еднаквите Интересно е во тоа што сте already-- сте, исто така, вклучувајќи ги и NAS. Значи во овој случај, се уште може да се добие каква било информација, бидејќи сега имате Национални агенции а вие само сакате да видите кои од набљудување одговараат на демократите а не овие исчезнати вредности себе. Па, како ќе се ослободи од овие Национални? Па еве јас сум само со користење на Up копчето на мојот курсорот и да кажат за движење наоколу. А потоа, тука јас сум само ќе да се каже is.na datpartyid. Значи ова и и ќе се две различни Булова вектори и велат дека тоа нема да биде Вистински и лажни, на пример. Значи, тоа се случува да се направи оваа компонента-мудрец. Па еве јас велам преземање податоците рамка, подмножество на оние кои одговараат на демократите, и да ги отстраните било кој од нив кои не се Н.А.. Значи ова will-- треба ти даде нешто. Ајде да видиме is.na. Ајде да се обидеме is.na datpartyid. И тоа треба да се даде you-- sorry-- само Булова вектор. И тогаш, бидејќи тоа е толку долго, Одам да се подмножество на 20. OK. Значи ова треба да работат. А таа една, исто така, ќе биде TRUEs. Ах, па мојата грешка е дека јас I'm-- ги користат C ++ и R мешаат па јас се направи оваа грешка цело време. На и оператор е всушност оној што го сакате. Вие не сакате да го користите двете ampersands, само еден. OK. Па ајде да видиме. Значи ние subsetted на partyid каде што тие се демократ и тие не се како исчезнати вредности. А сега да ги погледнеме кои од нив гласале за. Така ми се чини дека повеќето од нив гласаа за 1. Па јас одам да се оди напред и велат дека е Кери. И слично, можете да исто така оди на републиканците и се надевам, ова треба да ви даде 2. Тоа е само еден куп на различни колони. И навистина, тоа е 2. Значи partyid сите републиканците, повеќето од нив се гласа за 2. Така ми се чини, само од страна гледајќи во ова, Републиканскиот ќе биде на very-- или partyid се случува да биде многу голем фактор во одредувањето кој кандидат тие се ќе гласаат за. И ова е очигледно точно во целина. И ова се поклопува со вашиот интуиција, се разбира. Така, се чини како да сум работи надвор од времето, па за дозволете ми само треба да оди напред и да покаже некои брзи слики. Па еве нешто што е малку покомплицирана со визуелизација. Значи во овој случај, тоа е многу едноставна анализа на само проверка на она што претседателот на '04 е. Значи во овој случај, ајде да речеме сакаше да одговори на ова прашање. Значи да претпоставиме што сакавте да знаете за гласање однесување во претседател на изборите во 2004 година и како таа се разликува од трката. Затоа, не само што ќе сакаат да види однесувањето на гласање, но сакате да подгрупа на секој трка и вид на резимираме дека. А ти само може да се каже од комплексот нотација дека ова е вид на добивање на маглива. Значи еден од повеќе напредни R пакети и тоа е, исто така, вид на неодамнешниот се нарекува dplyr. Значи тоа е еден токму тука. И ggg-- ggplot2 е едно убаво начин на вршење на подобро визуализации од вграден во едно. Па јас одам да се вчита овие две библиотеки. И тогаш, јас ќе одам да се оди напред и да ја извршите оваа команда. Вие само може да се третираат ова како црна кутија. Што се случува е дека оваа цевка операторот поминува во овој аргумент во тука. Значи сакам да кажам дека група од DAT трка и тогашниот претседател 04. И тогаш, сите овие други команди се филтрираат и потоа сумирањето каде јас го правам слика и тогаш јас сум го планирале тука. Добро кул. Па ајде да одиме напред и види она што ова изгледа како. Значи она што се случува овде е дека јас само црта секоја од трките, а потоа кои од нив гласале за. И овие две различни вредности одговараат на 2 и 1. Ако сакате да бидете повеќе домот, можете исто така само да се каже дека 2 е Kerry-- или 2 е на Буш, а потоа 1 е Кери. И ти исто така може да има дека во вашиот легенда. И ти исто така може да се подели на овие бар графикони. Затоа што едно е дека, ако забележите, ова не е многу лесно да се идентификуваат која од овие две вредности се поголеми. Па едно нешто што би сакале да го однесам синото поле и само да го придвижат тука, па можат да се споредуваат овие две рамо до рамо. И претпоставувам дека тоа е нешто што јас немаат време да го направите токму сега, но тоа е исто така многу лесно да се направи. Вие само може да се погледне во на man-страници на ggplot. Значи, вие само може да се ggplot како што и да прочитате во овој човек страница. Значи ми го дозволуваат само брзо ви покаже некои кул работи. Ајде да одиме напред и да одат to-- само примена на машина за учење. Па да речеме имаме овие три пакети, па ќе одам да се вчита во овие. Значи ова е само отпечатоци од некои информации, откако јас натоварени во нешто. Па јас го кажувам ова read.csv, ова на CCD, а сега Одам да се оди напред и да се погледне и види она што е внатре во овој базата. Па првите 20 забелешки. Па јас само имаат X1, X2 и Y. Така е тоа изгледа како еден куп на овие вредности се движат од можеби 20 до 80 или така. И тогаш слично за X2 и тогаш ова Y се чини дека етикети 0 и 1. За да се потврди ова, можам да само го направи резиме на податоците X1. И тогаш слично за сите овие други колумни. Значи резиме е брз начин на само ви покажува брз вредности. Ох, извинете. Ова треба да биде Ј Значи во овој случај, дава quantiles, медиани, maxes, како и. Во овој случај, dataY, можете да видите дека таа само се случува да биде 0 и 1. Исто така, значи е велејќи дека 0,6, само значи дека се чини дека имам повеќе 1s од 0-ти. Значи, дозволете ми да оди напред и да го покаже вас она што ова изгледа како. Па јас сум само ќе да заговор ова. Ајде да видиме како да ја избришете оваа. О, во ред. OK. Значи ова е она што изгледа како. Така ми се чини дека сум посочи дрва како 0, а потоа црвени јас наведен како 1S. Па еве како изгледа етикета поени и тоа се чини дека само сакав некои вид на групирање на оваа тема. И дозволете ми да оди напред и да го покаже што некои од овие вградена во функциите. Па овде е LM. Значи ова е само се обидува да одговара на линија за ова. Значи она што е најдобар начин што може да се вклопат линија, како дека најдобро ќе ги разделиме овој вид на групирање. И идеално, вие само може да се види дека само што работи на сите овие команди и тогаш, јас ќе одам напред и да додадете линија. Значи, ова изгледа како најдобра претпоставка. Тоа е преземање на најдобар оној кој го минимизира грешка во обидот да одговара на оваа линија. Очигледно, ова изгледа вид на добро, но тоа не е најдобар. И линеарни модели, Генерално, се случува да бидат навистина одлично за теорија и само вид на градење на основите на машина учење. Но, во пракса, си оди за да сакате да направите нешто повеќе воопшто. Значи, вие само може да се обидете работи нешто што се нарекува нервните мрежа. Овие нешта се се повеќе и повеќе заеднички. И тие само работат фантастично за големи бази на податоци. Значи во овој случај, ние само have-- ајде see-- имаме nrow. Значи nrow е само велејќи дека бројот на редови. Значи во овој случај, има 100 забелешки. Значи, дозволете ми да оди напред и направи нервните мрежа. Значи ова е навистина убаво бидејќи јас само може да се каже nnet и тогаш јас сум назадување Ј Значи Y е таа колона. И тогаш тоа регресирање на другите две променливи. Значи ова е пократка нотација за X1 и X2. Значи, да оди напред и да ја извршите оваа. Ох, извинете. Јас треба да се кандидира на целата оваа работа. И ова е само за печатење нотација за тоа колку брзо или не брзо го обединети. Па изгледа како тоа го правеше се спојуваат. Значи, дозволете ми да оди напред и печатење што ова изгледа како. Видете, тука е слика и тука е контура покажува колку добро се вклопува. И ова е just-- може да се види ова дека тоа е многу, многу убаво. Тоа дури може да биде overfitting, но исто така можете да сметка за тоа со другите техники како крос-валидација. И овие се исто така изграден во Р. И дозволете ми да ви покаже поддршка вектор машина. Ова е уште еден навистина заеднички техника во машина за учење. Тоа е многу слично на линеарни модели, но го користи она што се нарекува кернелот метод. И ајде да видиме колку добро што го прави тоа. Значи ова е многу слично на тоа како и нервните мрежа врши, но тоа е многу здодевна. И ова е базирана на what-- како SVMs работа. Значи ова е само еден многу брз преглед на некои на вградена во функциите што можете да направите а исто така и некои од податоците од истражувањето. Значи, дозволете ми само напред и да се вратиме на слајдови. Значи очигледно, ова е не многу содржајна. И ова е навистина само навестување ви покажува она што навистина може да се направи во Р. Па ако сакате само како за да дознаете повеќе, тука се еден куп на различни ресурси. Значи, ако сте љубител на книги или сте само убави за читање на работи на интернет, тогаш ова е фантастичен еден по Хедли Wickham, кој исто така, создаде сите овие навистина кул пакети. Ако сте љубител на видеа, тогаш Беркли има страшни Bootcamp тоа е several-- тоа е вид на долго. И тоа ќе ве научи на речиси сè што сакате да знаете за Р. И слично, има Codeacademy и сите други вид на интерактивни веб-сајтови. Тие се исто така common-- повеќе и повеќе заеднички. Значи ова е многу слична на Codeacademy. И конечно, ако само сакате заедницата и ќе помогне, тие се еден куп на работи што можете да одат. Очигледно, ние се уште користите листи, само како речиси секоја друга програмски јазик заедницата. И #rstats, ова е нашата заедница Твитер. Тоа е всушност прилично честа. И тогаш корисник! Е само нашата конференција. И тогаш, се разбира, може да ги користат сите овие други прашања и работи, како Стак прелевање, Google, а потоа GitHub. Бидејќи повеќето од овие пакети и многу заедницата ќе биде центрирана околу развојот кодот затоа што тоа е со отворен код. И тоа е само навистина убаво на GitHub. И на крај, можете да ме контактирате доколку вие само треба било брз прашања. Така можете да ме најдете на Твитер тука, мојот вебсајт, и само мојата е-маил. Па се надевам дека тоа беше something-- само краток вовед на она што R е навистина способни да прават. И се надевам дека, само проверете ги овие три линкови и да видиме што може да направи повеќе. И претпоставувам дека тоа е само за тоа. Ви благодариме. [Аплауз]