[Гуляе музыка] DUSTIN TRAN: Прывітанне. Дастын Мяне клічуць. Так што я буду прадстаўляць Аналіз дадзеных у R. Проста крыху пра сябе. Я ў цяперашні час аспірант Інжынерная і прыкладной навукі. Я вывучаю скрыжаванне машыннае навучанне і статыстыка так Аналіз дадзеных у R з'яўляецца сапраўды асноватворнае значэнне для Я раблю на штодзённай аснове. І R асабліва добра для аналізу дадзеных таму што гэта вельмі добра для прототипирования. І, як правіла, калі вы робіце нейкія аналізу дадзеных, шмат праблем збіраюцца пазнавальнай. І так вы проста хочаце мець некаторыя сапраўды добры мова, што гэта проста добра для гэтага убудаваныя функцыі, у адрозненне для таго, каб мець справу з нізкімі рэчаў ўзроўню. Такім чынам, у самым пачатку, я проста хачу, ўвесці тое, што R, то чаму б Вы хочаце, каб выкарыстоўваць яго, і затым пераходзяць у нейкі дэма, і проста пайсці далей. Так што ж такое R? R толькі мову развіўся для статыстычных разлікаў і візуалізацыя. Дык што ж гэта азначае, што гэта вельмі добры мова для любога роду рэчы, што мае справу з няўпэўненасць або візуалізацыі дадзеных. Так што вы павінны ўсё гэта імавернасных размеркаванняў. Там збіраюцца быць убудаваныя функцыі. Вы таксама будзеце мець выдатны пабудова пакетаў. Python з'яўляецца яшчэ адным канкуруючых мова для дадзеных. І яшчэ адна рэч, якую я знаходжу, што R значна лепш візуалізацыя. Так што вы ўбачыце ў дэма як а проста вельмі інтуітыўна мова , Які проста працуе вельмі добра. Гэта таксама з'яўляецца бясплатным і адкрытым зыходным кодам, а любы іншы добры мову, я думаю. І вось, куча ўсяго Ключавыя словы кінутыя на вас. Гэта дынамічны, то бок, калі ў вас ёсць Канкрэтны тып прысвоены аб'екту чым проста змяніць яго на лета. Гэта лянівы, так што гэта разумна, аб як ён гэта робіць разлікі. Функцыянальнае значэнне гэта можа сапраўды працаваць заснаваныя ад функцый, так anything-- любы від маніпуляцый вы рабіць, ён будзе заснаваны оф функцый. Так бінарныя аператары, напрыклад, проста па сваёй сутнасці функцыі. І ўсё, што Вы збіраецеся зрабіць, гэта будзе бегчы функцыі самастойна. А потым аб'ектна-арыентаваны, а таксама. Дык вось сюжэт XKCD. Не толькі таму, што я адчуваю, што XKCD мае фундаментальнае значэнне для любога выгляду прэзентацыі, а таму, што Я адчуваю, што гэта сапраўды малаткі пункт, што шмат час, калі вы робіце нейкія дадзеныя аналіз, праблема заключаецца не ў так як хутка ён працуе, але як доўга гэта будзе вас праграмаваць задачы. Дык вось, гэта проста аналізуючы ці Стратэгія або б з'яўляецца больш эфектыўным. Гэта будзе тое, што вы будзем мець справу шмат з у Сартаваць нізкаўзроўневыя мовы дзе вы маеце справу з SEG няспраўнасцяў, вылучэнне памяці, ініцыялізацыя, нават робячы убудаваныя функцыі. І гэты матэрыял ўсё апрацоўваецца вельмі, вельмі элегантна ў R. Так што проста забіць гэты Справа, самае вузкае месца будзе пазнавальным. Так аналіз дадзеных вельмі складаная праблема. Калі вы робіце машыннае навучанне, ці вы рабіць проста нейкі Асноўная разведка дадзеных Вы не хочаце, каб ўзяць дакумент а затым скампіляваць тое, што кожны раз, калі вы хачу паглядзець, што калона выглядае, якія менавіта запісу ў матрыцы выглядае. Такім чынам, вы проста хочаце мець некаторыя сапраўды прыемны інтэрфейс Вы можаце запусціць простую функцыю што індэксы да таго, што Вы хацелі б і проста запусціць яго адтуль. І вы павінны дамен канкрэтныя мовы для гэтага. І R сапраўды дапаможа вам вызначыць Праблема і вырашыць гэтую праблему такім чынам. Дык вось графік, які паказвае праграмавання Папулярнасць R, як гэта пайшло з цягам часу. Такім чынам, як вы бачыце, як 2013 ці так што проста ўзарвалі надзвычай. І гэта было толькі з-за гэтага Велізарны тэндэнцыя ў індустрыі высокіх тэхналогій аб вялікіх дадзеных. Акрамя таго, не толькі тэхналогія прамысловасць, але на самой справе Любая галіна that--, таму што шмат галін з'яўляюцца свайго роду асновай для спрабуюць вырашыць гэтыя праблемы. І, як правіла, вы можаце мець некаторыя добрыя спосаб вымярэння гэтых праблем ці нават вызначаючы іх ці іх рашэнні, выкарыстоўваючы дадзеныя. Так што я думаю, зараз R з'яўляецца 11- самы папулярны мову на Tiobe і гэта расце з тых часоў. Дык вось некаторыя больш асаблівасці R. Ён мае Велізарная колькасць пакетаў і для ўсіх гэтых розных рэчаў. Так у любы час у вас ёсць пэўная праблема, большасць Час R будзе мець што функцыя для вас. Так ці вы хочаце, каб пабудаваць якое-небудзь машыны Алгарытм навучання называецца Выпадковыя Лес або дрэвы рашэнняў, ці нават спрабуюць узяць сярэдняе функцыя або якой-небудзь з гэтага матэрыялу, R будзе мець гэта. І калі вы робіце вы клапоціцеся аб аптымізацыя, адна рэч, якая агульная з'яўляецца тое, што пасля таго як вы зрабілі прататыпы нейкая мове высокага ўзроўню, вы будзеце кідаць, што in-- Вы проста порт, які больш у якой-то мова нізкага ўзроўню. Тое, што добра пра R з'яўляецца тое, што, як толькі вы зроблена прататыпаў, вы можаце запусціць C ++, або Fortran, або любы з іх ніжнія ўзроўню непасрэдна ў R. Дык вось адзін сапраўды крута асаблівасцю R, Калі вы сапраўды клапоціцеся аб Справа ў аптымізацыі. І гэта таксама вельмі добра для вэб-візуалізацыі. Так D3.js, напрыклад, Я думаю, яшчэ адзін семінар што мы прадставілі сёння. І гэта сапраўды дзіўным для рабіць інтэрактыўныя візуалізацыі. І D3.js мяркуе, што ў вас ёсць свайго роду дадзеных, якія будуць нанесеныя і R з'яўляецца выдатным спосабам, каб быць здольным рабіць Аналіз дадзеных, перш чым экспартаваць яго да D3.js ці нават проста працаваць D3.js каманд у самой R, а таксама ўсе гэтыя іншыя бібліятэкі, а таксама. Так што проста ўкараненне што R і чаму яго можна выкарыстоўваць. Так, мы спадзяемся, у мяне перакананыя, што вы нешта аб проста спрабую ўбачыць, што гэта такое. Так што я збіраюся ісці наперад і прайсці праз некаторыя асновы аб аб'ектах R і тое, што вы сапраўды можаце зрабіць. Так вось проста куча каманд матэматыку. Так кажуць you're-- вы хочаце пабудаваць мова самастойна, і вы проста хочаце мець кучу розных інструментаў. Любы выгляд працы вы думаеце, вы хачу ў значнай ступені будзе ў R. Дык вось 2 плюс 2. Вось 2 разы пі. R мае кучу ўбудаваных канстант што вы будзеце часта выкарыстоўваць як пі, е. І потым, вось 7 плюс runif, так runif 1. Гэта функцыя, якая генеруе адно выпадковае раўнамернае ад 0 да 1. А тут яшчэ ад 3 да ступені 4. Там гэта квадратныя карані. Там жа часопіса. Так, аўтарызуйцеся будзе рабіць базу Экспанентны сам па сабе. І потым, калі вы пакажа базу, то Вы можаце рабіць усё, што база вы хочаце. І тады, вось некаторыя іншыя каманды. Так што вы павінны 23 мод 2. Тады ў вас ёсць рэшту. Тады ў вас ёсць навукова абазначэння, калі вы таксама хачу зрабіць проста больш і больш складаныя рэчы. Дык вось прызначэнне. Так тыповыя заданні ў R выконваецца са стрэлкай так што гэта менш, чым а затым злучок. Дык вось, я проста прызначэння 3 з зменнай Вал. І тады я друкую Val а затым выводзіць тры. Па змаўчанні ў R перакладчыка, яго будзе друкаваць рэчы для вас так што вам не трэба паказваць друку Val у любы час вы хочаце, каб нешта надрукаваць. Вы можаце проста зрабіць Вэл і то ён будзе рабіць гэта за вас. Акрамя таго, вы можаце выкарыстоўваць складае тэхнічна як аператар прысвойвання. Ёсць невялікія тонкасці паміж выкарыстаннем стрэлку аператар і роўнасці Аператар для выканання заданняў. У асноўным у адпаведнасці з Канвенцыяй, усё проста выкарыстоўваць аператар стрэлкі. І вось, я задаю гэты касой абазначэння называецца 1 двукроп'е 6. Гэта генеруе вектар ад 1 да 6. І гэта вельмі прыемна, таму што тады Вы проста прызначыць вектар Валь і што працуе сама па сабе. Так што гэта ўжо адбываецца з single-- вельмі інтуітыўны дадзеных Структура проста двайнік некаторы тып тыпу ў вектар і які будзе збіраць усе скалярныя значэння для вас. Такім чынам, пасля пераходу ад скалярнага, вы ёсць аб'екты R, і гэта вектар. Вектар любы від Збор і таго ж тыпу. Дык вось куча вектараў. Так што гэта лічбы. Лікавы, з'яўляецца спосаб R спосаб сказаць два разы. І так па змаўчанні, любы лік будзе ў два разы. Так што, калі ў вас ёсць з 1,1, 3, адмоўнай 5,7, C з'яўляецца функцыяй. Гэта аб'ядноўвае ўсе тры лікі ў вектары. І гэта будзе be-- так што калі Вы заўважылі, 3 само па сабе, як правіла, вы б выказаць здагадку, што гэта, як цэлае, а таму, што ўсе вектары той жа самы тып, гэта вектар парным разрадзе або лічбавы ў гэтым выпадку. RNorm з'яўляецца функцыяй, якая стварае стандартная нармальная variables-- або стандартныя нармальныя значэння. І я, паказаўшы дзве з іх. Так што я раблю RNorm 2, прызначэнне, што Распрацоўшчыкі, а затым я друкую дэвы. Такім чынам, гэтыя толькі два Выпадковыя нармальныя значэння. А потым цэлых лікаў, калі вы Вы клапоціцеся аб цэлых лікаў. Так што гэта проста аб памяці размеркаванне і захаванне аб'ём памяці. Такім чынам, вы павінны дадаць вашыя нумары па сталіцы Л. Увогуле, гэта Гістарычны абазначэння R ў для таго, што называецца доўгае цэлае. Таму вялікую частку часу, вы будзеце мець справу з двайнікамі. І калі вы калі-небудзь будзе позна на аптымізаваць свой код, Вы можаце проста дадаць іх у L'гадоў пасля або падчас яго калі вы, як прарочыя аб тым, што Вы збіраецеся зрабіць гэтыя зменныя. Дык вось вектарны характар. Так, зноў жа, я аб'яднання тры струны на гэты раз. Звярніце ўвагу, што падвойныя струны і адзінкавыя радкі ж у R. Так што ў мяне Артур і Марвін і так калі я друкую гэта, усе яны збіраемся паказаць падвойнымі струнамі. І калі вы таксама хочаце, каб уключыць двайны або адзінарнай радкі ў вашых персанажаў, то вы можаце альбо чаргаваць вашыя радкі. Так Марвін для Другі элемент, гэта збіраецца show-- вас проста падвойнымі струнамі а затым адзін радок так што гэта пераменнага. У адваротным выпадку, калі вы хочаце выкарыстоўваць двойчы Радок аператар у двухмесным радкі калі вы абвясціўшы яе, а затым вы проста карыстаецеся аператар ўцёкаў. Так што вам зваротны слэш двайны радок. І, нарэшце, мы таксама ёсць лагічныя вектары. Так logical-- так правільна і FALSE, і яны будзе ўсё загалоўныя літары. А потым, зноў жа, я аб'яднання іх, а затым прызначаць іх BOOLS. Так Bools збіраецца паказаць Вы TRUE, FALSE, і TRUE. Дык вось векторизация індэксацыі. Такім чынам, у пачатку, я бяру function-- гэта называецца sequence-- Паслядоўнасць ад 2 да 12. І я бяру паслядоўнасць, 2. Дык гэта будзе рабіць 2, 4, 6, 8, 10 і 12. І потым, я індэксаванне каб атрымаць трэці элемент. Такім чынам, адна рэч, каб мець на ўвазе, што г індэксы, пачынаючы з 1. Так Вальс 3 будзе даваць Вы Трэці элемент. Гэта свайго роду адрозніваецца ад іншых мовы, у якіх ён пачынаецца з нуля. Такім чынам, у C ці C ++, напрыклад, вы збіраецца атрымаць чацвёрты элемент. А вось вальс ад 3 да 5. Такім чынам, адна рэч, якая сапраўды выдатна, што вы можа генераваць часовыя зменныя ўнутры а затым проста выкарыстоўваць іх на лета. Дык вось 3 да 5. Так я генерацыі вектар 3, 4 і 5, а затым Я індэксацыі, каб атрымаць траціну, чацвёрты і пяты элементы. Такім чынам, падобным чынам, вы можаце Анатацыя проста зрабіць любы від вэктару Гэта дае вам індэксацыю. Дык вось вальс, а затым першы, трэці, шосты і элементы. І потым, калі вы хочаце зрабіць дадатак, так што вы проста зрабіць мінус пасля гэтага і што будзе даць вам усё, што не першы, трэці, шосты і элемент. Такім чынам, гэта будзе 4, 8 і 10. І калі вы хочаце атрымаць нават больш прасунутыя, Вы можаце аб'яднаць лагічныя вектары. Так гэты паказчык будзе даваць вам гэта булева вектара даўжыні 6. Так прадстаўнік TRUE, коска 3. Гэта будзе паўтараць ПРАЎДА тры разы. Так што гэта дасьць вам вектар TRUE, TRUE, TRUE. прадстаўнік FALSE 4-- гэта адбываецца, каб даць вам вектар FALSE, FALSE, FALSE, FALSE. І тады з будзе аб'ядноўваць гэтыя два Лагічныя разам. Такім чынам, вы збіраецеся атрымаць тры Ісціны, а затым чатыры FALSEs. Так што, калі вы форумаў вальс, вы збіраецца атрымаць TRUE, TRUE, TRUE. Дык вось хачу сказаць, ды, Я хачу, каб гэтыя тры элемента. А потым FALSE, FALSE, ХЛУСНЯ, ХЛУСНЯ збіраецца каб сказаць няма, я не хачу, каб гэтыя элементы так што не збіраецца іх вярнуць. І я думаю, ёсць на самой справе памылка друку тут таму што гэта кажа паўторыце TRUE, 3 і паўтараць хлуслівыя 4, і тэхнічна, вам толькі шэсць элементаў, так паўтараць хлуслівыя, яна павінна быць паўтор FALSE 3. Я думаю, што R таксама досыць такі шыкоўны што калі вы проста паказваеце 4 тут, то Гэта не будзе нават без памылак. Гэта будзе проста даць вам гэтую велічыню. Дык гэта будзе проста ігнараваць, што ў чацвёртым ХЛУСНЯ. Дык вось векторизация прызначэнне. Так set.seed-- гэта толькі ўстанаўлівае насенне псеўдавыпадковых лікаў. Так я ўсталёўваю насення з 42, гэта азначае, што, калі я магу генераваць тры выпадковых нармальна значэння, а затым, калі вас запусціць set.seed па сваім меркаванні кампутар, выкарыстоўваючы той жа значэнне 42, то вы таксама атрымліваеце Тыя ж тры выпадковыя нармалей. Так што гэта вельмі добра узнаўляльнасці. Звычайна, калі вы робіце некаторыя Сартаваць навуковага аналізу, Вы хацелі б ўсталяваць насеньне. Такім чынам, іншыя навукоўцы могуць проста прайграць сапраўды такі жа код, які вы зроблена таму, што яны маюць дакладнае ж выпадковыя велічыні that-- або выпадковая значэння, якія вы ўзялі, як добра. І так Векторизованных прызначэнне тут паказвае Вальс з 1 па 2. Так што займае першыя два элемента з вальса, а затым прысвойвае іх 0. І потым, вы таксама можаце проста зрабіць Падобная рэч з перамыкачоў. Так вальс ня роўная 0-- гэтую волю даць вам вектар ХЛУСНЯ, ХЛУСНЯ, ПРАЎДА ў гэтым выпадку. І потым, гэта будзе казаць любы з тых індэксаў, якія былі праўдзівымі, то гэта будзе прызначыць што 5. Так ён прымае трэці элемент тут, а затым прысвойвае яго 5. І гэта вельмі прыемна у параўнанні з нізкаўзроўневых мовах дзе вы павінны выкарыстоўваць для завес зрабіць усё гэта векторизованного рэчы таму што гэта проста вельмі інтуітыўна і гэта адзіны адзін ўкладыш. І тое, што з'яўляецца вялікім аб векторизация абазначэння у тым, што ў R, гэта свайго роду ўбудаваныя такім чынам, што яны амаль гэтак жа хутка, як рабіць на мове нізкага ўзроўню, як у адрозненне ад рашэнняў для завесы ў R , А затым з яго рабіць Сам дынамічны індэксацыі. І гэта будзе больш павольна, чым рабіць Гэты выгляд векторизованного рэчы дзе ён можа зрабіць гэта паралельна, дзе ён робіць гэта ў запраўцы ў прынцыпе. Дык вось векторизуется аперацый. Так я генерацыі значэння 1 да 3, прызначаючы што vec1, ад 3 да 5, vec2, складаючы іх разам. Ён дадае ім покомпонентная так гэта 1 плюс 3, 2 плюс 4, і гэтак далей. vec1 раз vec2. Гэта памнажае два каштоўнасны кампанент мудрым. Так што гэта 1 раз 3, 2 разы 4, а затым 3 разы 5. А потым, гэтак жа вы можаце таксама зрабіць comparisons-- лагічнае параўнанне. Так што гэта ХЛУСНЯ ХЛУСНЯ ПРАЎДА ў гэтым так, таму што адзін не больш, чым 3, 2 не болей, чым 4. Гэта, я думаю ,, іншы памылка друку, 3 вызначана не больш, чым 5. Так. І таму вы можаце проста зрабіць усё Гэтыя простыя аперацыі таму што іх у спадчыну ад саміх класаў. Так што было проста вектар. І гэта свайго роду найбольш фундаментальных R аб'ект, таму што зададзены вектар, Вы можаце пабудаваць больш складаныя аб'екты. Дык вось матрыца. Гэта, па сутнасці абстракцыя што матрыца сама па сабе. Такім чынам, у гэтым выпадку, гэта тры розныя вектары, дзе кожны з калонкі, ці вы можаце разглядаць яго як кожнага з іх шэраг. Так што я захоўваю матрыцу ад 1 да 9, а затым я указаннем 3 радкоў. Так з 1 па 9 дасць вам вектар 1, 2, 3, 4, 5, 6, і аж да 9. Адна рэч, каб мець на ўвазе, што R захоўвае значэння ў Стоўбцах-маёр фармаце. Такім чынам, іншымі словамі, калі вы бачыце 1 9, гэта будзе захоўваць them-- гэта будзе 1, 2, 3 у першым слупку, а затым ён будзе рабіць 4, 5, 6 у другім слупку, а затым 7, 8, 9, у трэцім слупку. А вось некаторыя іншыя агульныя функцыі, якія вы можаце выкарыстоўваць. Так цьмяны мат, гэта дасць вам памеры матрыцы. Гэта будзе вяртаць вас вектар памернасці. Такім чынам, у гэтым выпадку, паколькі наша матрыца 3 на 3, гэта будзе даваць вам лічбавая вектарная гэта 3 сакавіка. А вось проста паказвае множання матрыц. Так звычайна, калі вы проста робіце asterisk-- так кілімок зорачка mat-- гэта будзе покомпонентная праца або тое, што называецца прадукт Адамара. Дык гэта будзе рабіць кожны элемент покомпонентная. Тым не менш, калі вы хочаце матрыца multiplication-- так множання першы раз радкоў Першы слупок другі матрыцы ў і так on-- вы павінны выкарыстоўваць гэты працэнт аперацыя. І т мата проста Праца для транспазіцыя. Так што я кажу, прыняць Транспанаванне ў матрыца, памножыць яго на матрыцу Сам. І тады гэта будзе вярнуцца да вас яшчэ 3 на 3 матрыцы паказу прадукт, які вы хацелі. І так, каб было матрыца. Вось тое, што называецца кадр дадзеных. Кадр дадзеных вы можаце думаць аб якасці матрыца, а сама кожны слупок будзе іншага тыпу. Так што сапраўды выдатна аб дадзеных кадры, што ў аналізе дадзеных самога, Вы будзеце мець усё гэта гетэрагенныя дадзеныя і ўсё гэта на самай справе брудныя рэчы, дзе кожная з калон самі па сабе могуць быць розных тыпаў. Дык вось я і кажу стварыць кадр дадзеных, зрабіць цэлымі ад 1 да 3, а затым таксама вектарны характар. Так што я магу індэкс праз кожны з гэтых калонак і тады я атрымаю самі значэння. І вы таксама можаце зрабіць нейкі аперацый па фрэймаў дадзеных. І большую частку часу, калі вы рабіць аналіз дадзеных або нейкі папярэдняй апрацоўкі, вы будзеце працаваць з гэтымі структурамі дадзеных дзе кожны слупок будзе каб быць іншага тыпу. Нарэшце, так што гэта ў асноўным толькі чатыры асноўныя аб'екты ў Спіс Р. будзе проста збіраць любыя іншыя аб'екты, якія вы хочаце. Так ён будзе захоўваць гэта ў адным пераменная, якую можна лёгка атрымаць доступ. Дык вось, я бяру спіс. Я кажу рэчы роўная 3. Так што я буду мець адзін элемент у Спіс, і гэта завецца матэрыял, і гэта будзе мець значэнне 3. Я магу таксама стварыць матрыцу. Так што гэта ад 1 да 4 і канчатковага запар роўны 2, так што матрыца 2 × 2. Акрамя таго, у спісе, і гэта завецца мат. moreStuff, радок знакаў, і нават адзін спіс сам па сабе. Так што гэта спіс, гэта 5 і мядзведзя. Так што мае значэнне 5 і яго мае знакавай радкі мядзведзя і гэта спіс ўнутры спісу. Такім чынам, вы можаце мець гэта рэкурсіўныя рэчаў, дзе ў вас ёсць another-- А ўвядзіце ў межах тыпу. Такім чынам, падобным чынам, вы можаце мець матрыцу у іншай матрыцы і гэтак далей. І спіс проста добры спосаб збору і агрэгавання усе гэтыя розныя аб'екты. І, нарэшце, тут проста дапаможа ў выпадку Гэта было як раз перайшлі вельмі хутка. Так у любы час вы заблыталіся пра нейкую функцыі, Вы можаце зрабіць дапамогу гэтай функцыі. Такім чынам, вы можаце зрабіць даведачную матрыцу або пытальнік матрыца. І дапамогу і пытальнік з'яўляюцца толькі аблічваць за тое ж самае так што яны псеўданімы. ЛМ функцыя, якая проста робіць лінейная мадэль. Але калі вы проста паняцця не маю, як гэта Працы, вы можаце проста зрабіць дапамогу лм і гэта дасць вам некаторыя Сартаваць дакументацыі, якая выглядае накшталт як Чалавек старонкі ў Unix, дзе ў вас ёсць кароткае апісанне таго, што ён робіць, і тое, што яе аргументы, што гэта вяртаецца, і ўсяго саветаў аб тым, каб выкарыстоўваць яго, і некаторыя прыклады. Такім чынам, дазвольце мне ісці наперад і шоў некаторыя дэма з дапамогай Р. OK. Так што я пайшоў на вельмі хутка толькі дадзеныя структуры і нейкі op-- некаторыя аперацыі. Вось некаторыя функцыі. Дык вось я проста хачу, вызначыць функцыю. Так я таксама выкарыстоўваю Аператар прысвойвання тут, і тады я кажу, аб'явіць яго як функцыю. І ён прымае значэнне х. Так што гэта якое-небудзь значэнне вы хочаце і я збіраюся вярнуцца х сам па сабе. Так што гэта функцыя тоеснасці. І тое, што гэта крута пра гэта у параўнанні з іншымі мовамі а другі з нізкім узроўнем моў заключаецца ў тым х можа быць самай розных тыпаў і яна верне гэты тып. Такім чынам, вы можаце imagine-- так што давайце мне проста запусціць гэта хутка. Выбачайце. Такім чынам, адна рэч, якую я павінен таксама згадаць, з'яўляецца тое, што гэты рэдактар ​​я выкарыстоўваю называецца RStudio. Гэта тое, што называецца IDE. І адна рэч, якая вельмі прыемна пра гэта з'яўляецца тое, што яна ўключае ў сябе мноства рэчы, якія вы хочаце зрабіць у R само па сабе проста вельмі інтуітыўна. Дык вось пульт перакладчыка. Такім чынам, падобным чынам, вы таксама можаце атрымаць гэта Кансоль сыравіны проста рабіць вялікай літары І гэта менавіта тое, Тое ж самае, як кансоль. Так што я магу рабіць дакумента функцыя х, х, х. І then--, а затым, што будзе выдатна сябе. Так RStudio вялікі таму што яна мае кансоль. Яна таксама мае дакументы Вы хацелі б працаваць на. І тады яна мае некаторыя зменныя што вы можаце ўбачыць у навакольнага асяроддзі. І потым, калі ў вас ёсць зрабіць ўчасткі, то вам можна проста бачыць яго тут, у адрозненне ад кіравання ўсе гэтыя розныя вокны самі па сабе. Я на самой справе асабіста выкарыстоўваю Vim, але я адчуваю, што RStudio выдатна проста для атрымання добрай ідэяй аб тым, як выкарыстоўваць R. Звычайна калі вы спрабуеце даведацца некаторыя новыя задачы, Вы не хочаце апрацоўваць занадта шмат рэчаў адразу. Так R проста very-- RStudio гэта вельмі добры спосаб навучання R без неабходнасці мець справу з усе гэтыя іншыя рэчы. Дык вось я бягу ID Hello. Гэта вяртае прывітанне. ID 123. Вось вектар цэлых лікаў. Такім чынам, падобным чынам, таму што вы можаце прымаць якія-небудзь нейкую каштоўнасць, Вы можаце зрабіць вяртанне ідэнтыфікатар х, так што вяртаецца 1234 і 5. І дазвольце мне паказаць вам, што гэта сапраўды цэлы лік. І сапраўды гэтак жа, калі вы клас ID х, гэта будзе цэлы лік. І потым, вы таксама можаце параўнаць два і гэта праўда. Так я правяраю, калі ідэнтыфікатар X роўная роўная х і апавяшчэнне што яна дае вам два ісціны. Так што гэта не кажа, з'яўляюцца два аб'екта ідэнтычныя, але кожны з запісаў у вектары супадаюць. Вось bounded.compare. Так што гэта крыху больш складана тым, што ён мае, і калі ўмова яшчэ а затым ён прымае два Аргументы ў той час. Так х любога тыпу. І я кажу гэта Другі аргумент. Гэта можа быць што заўгодна, як добра. Але па змаўчанні, гэта зойме 5, калі вы не пакажаце што-небудзь. Дык вось я хачу сказаць, калі х больш. Так што, калі я не паказваю, яго кажа, што калі х больш, чым 5, потым я збіраюся вярнуцца TRUE. яшчэ, я збіраюся вярнуцца FALSE. Такім чынам, дазвольце мне ісці наперад і вызначыць гэта. А цяпер я збіраюся запусціць bounded.compare 3. Так ён кажа ў 3 менш, than-- 3 больш, чым 5. Не, гэта не так FALSE. І bounded.compare 3, і я збіраюся параўнаць яго з дапамогай складае 2. Так што цяпер я кажу так, цяпер я хачу, каб нешта іншае. Так што я збіраюся сказаць, вы павінны быць 2. Я магу альбо рабіць такога роду абазначэння ці я кажу роўная 2. Гэта больш чытэльным у тым, што, калі вы Гледзячы на ​​гэтыя сапраўды складаныя функцыі, якія ўзяць некалькі arguments-- і гэта можа быць дзесяткі oftentimes-- проста кажу, роўная 2 з'яўляецца больш чытэльным для Вы, каб потым у будучыні Вы будзеце ведаць, што вы робіце. Такім чынам, у гэтым выпадку, я прымаўка 3 больш, чым 2. Ды гэта так. І сапраўды гэтак жа, я магу проста выдаліць гэта і кажуць, 3 больш, чым 2 дзе роўная 2. І гэта таксама праўда. Так? АЎДЫТОРЫЯ: Вы выкананне парадкова? DUSTIN TRAN: Так, я. Так, што я раблю тут ўспрымае тэкст document-- і тое, што з'яўляецца вялікім аб RStudio у тым, што Я магу проста запусціць short-- ключавую ярлык. Так што я раблю Control-Enter. І потым, я вязу радок у тэкставым дакуменце а затым пакласці ў кансолі. Дык вось я і кажу, bounded.compare і я раблю Control-X. Так што я магу проста запусціць тут. І тады вазьму лініі, а затым змясціць яго тут. А потым гэтак жа, я магу бягуць тут. І тады гэта будзе проста трымаць вызначэння лініі ў кансолі, як, што. І калі вы таксама заўважыце, кучаравыя брекеты там гэтак жа, як у сінтаксісе C. x-- калі калі ўмова таксама збіраецеся выкарыстоўваць дужкі, а затым Вы можаце выкарыстоўваць у іншым месцы. Яшчэ адзін яшчэ, калі. Так што гэта будзе х роўная роўная, напрыклад. А потым я збіраюся вярнуць што-то тут. Звярніце ўвагу, што ёсць два розных рэчы, якія тут адбываецца. Па-першае, тут я з указаннем вярнуцца значэнне ПРАЎДА. Тут я проста кажу х. Так R будзе звычайна па змаўчанні ўзяць апошні arguments-- або ўзяць апошнюю радок кода, і гэта будзе тое, што ён вярнуўся. Дык вось, гэта ж рэч, як рабіць зваротны х. І проста каб паказаць вам. І потым, ён будзе працаваць менавіта так. Такім чынам, дазвольце мне працягнуць з гэтым. Так яшчэ, калі. І на самай справе, я магу вярнуцца усё, што я хацеў бы. Так што я нават не прыйдзецца Зваротныя Лагічныя ўвесь час, Я магу проста вярнуць што-нешта іншае. Так што я магу зрабіць зваротны мядзведзя. Так што, калі х роўны роўна, гэта збіраецца вярнуцца мядзведзя. У адваротным выпадку, гэта будзе вярнуць TRUE. Я таксама магу зрабіць вектар ці сапраўды што-небудзь. І звычайна ў статычна тыпізаваных мовах, вы павінны пазначыць тып тут. І заўважце, што гэта можа быць проста што-небудзь. І R досыць разумны, што ён проста гэта зрабіць, і яна будзе выдатна працаваць. Такім чынам, дазвольце мне вызначыць гэта. Unexpected-- эх шкада. Яна павінна быць фігурная дужка тут. ОК. Крута. Добра. Так што цяпер давайце параўнаем 3 і роўная 3. Так яно і павінна return-- yeah-- значэнне мядзведзя. Так што цяпер больш агульны Справа ў тым, як як наконт іншых структур дадзеных. Так што вы павінны гэтую функцыю. Гэта будзе працаваць на які-небудзь кошту, як 3 ці любую лічбавую, Іншымі словамі, у два разы. Але тое, што пра што-то, як вектара. Так што ж адбываецца, калі вы do-- таму я збіраецца прызначыць Вал, скажам, ад 4 да 6. Так што, калі я вярнуся гэта, гэта з'яўляецца вектарам з 4, 5, 6. Зараз давайце паглядзім, што адбываецца калі я bounded.compare Вал. Так што гэта будзе даваць вам 15 1251. Такім чынам, іншымі словамі, гэта кажа калі вы паглядзіце на гэтага ўмовы так ён кажа х менш чым або чагосьці. Так што гэта крыху у зман, паколькі ў цяперашні час вы проста не ведаеце, што адбываецца. Так што я думаю, адна рэч, якая сапраўды добра аб проста спрабую адладжваць з'яўляецца тое, што вы можаце проста зрабіць Val больш чым і паглядзець, што там адбываецца. Так val-- па змаўчанні 5 так давайце проста Валь больш, чым 5. Так што гэта вектар ХЛУСНЯ ХЛУСНЯ ПРАЎДА. Так што цяпер, калі вы глядзіце на гэта, скажа, калі, а затым ён збіраецца даць вам гэта з'яўляецца вектар ілжывых ілжывых TRUE. Таму, калі вы праходзіце гэта ў R, R не мае ні найменшага падання, што вы робіце. Таму што ён чакае адзін сінгл значэнне, якое з'яўляецца лагічным, а цяпер Вы даеце яму вектар лагічных значэнняў. Таму па змаўчанні R проста хачу сказаць, што, чорт вазьмі, Я буду лічыць, што вы збіраецца ўзяць першы элемент тут. Так што я збіраюся say-- я збіраюся выказаць здагадку, што гэта няправільна. Так што збіраецца сказаць Не, гэта не правільна. Акрамя таго, ён збіраецца быць Val роўная роўная. Не, прабачце 5. І гэта таксама будзе ілжывым, а таксама. Так што скажа няма, Гэта не праўда, а таму збіраецца вярнуць гэтую апошнюю. Так гэта ці добра ці дрэнна што, у залежнасці ад таго, як вы яго прагляду. Таму што, калі вы стварэння гэтых функцый, Вы на самой справе не ведаю, што адбываецца. Так што часам вы хацелі б памылку, ці, можа быць, вы проста хочаце папярэджанне. У гэтым выпадку, R не рабіць. Так што гэта сапраўды да Вы заснаваныя ад таго, што Вы думаеце, што мова павінен рабіць у гэтым выпадку калі вы праходзіце ў вектары Booleans калі вы робіце, калі ўмовы. Такім чынам, давайце казаць, што ў вас арыгінал адзін з тым, калі яшчэ вяртае ісціну, і вы збіраецца вярнуцца FALSE. Так адзін з спосабаў абстрагавання гэта сказаць, што я нават не трэба гэтую ўмоўную рэч. Іншая справа, што я магу зрабіць, гэта проста вяртанне самі значэння. Так што, калі вы заўважылі, калі вы Do Val больш, чым 5, гэта збіраецца вярнуцца вектар ХЛУСНЯ ХЛУСНЯ ПРАЎДА. Можа быць, гэта тое, што вы хачу на bounded.compare. Вы хочаце, каб вярнуцца вектар лагічных значэнняў, дзе ён параўноўвае кожнае з значэнняў да сябе. Такім чынам, вы можаце проста bounded.compare функцыя х, роўная 5. І тады замест таго, каб рабіць гэта, калі яшчэ ўмова, Я проста хачу, каб вярнуцца х больш за 5. Так што, калі гэта праўда, то гэта збіраецца вяртацца TRUE. І потым, калі гэта не так, гэта збіраецца вярнуцца FALSE. І гэта будзе працаваць для любы з гэтых структур. Так што я магу bounded.compare з 1 6 або 9 і тады я буду казаць роўная 6, напрыклад. І тады гэта будзе даць вам права Boolean вектар, вы распрацоўваеце. Так што тыя проста функцыі і цяпер мне проста паказаць вам некаторыя інтэрактыўныя візуальныя эфекты. Я не думаю, што я на самой справе ёсць Wi-Fi тут, так што дазвольце мне ісці наперад і прапусціць гэты я думаю. Але адна рэч, якая крута хоць тое, што, калі вы проста хочаце праверыць кучу розныя каманды дадзеных, ёсць куча розных набораў дадзеных якія ўжо папярэдне загружаюцца ў R. Такім чынам, адна з іх называецца набор дадзеных касач. Гэта адна з найбольш добра вядомых тыя, у машынным навучанні. Вы, як правіла, толькі рабіць нейкія тэстаў, каб убачыць, калі ваш код працуе. Так што давайце проста праверыць, што вясёлкавая абалонка. Так што гэта справа будзе быць кадр дадзеных. І гэта свайго роду доўга, таму што Я проста раздрукаваць дыяфрагмы. Гэта Раздрукаваўшы ўсю рэч. Так што ёсць усе гэтыя розныя назвы. Так дыяфрагмы калекцыя розных кветак. У гэтым выпадку, гэта кажа Вы выгляд з яго, усе гэтыя рознай шырыні і Даўжыні чашалісцікаў і пялёсткаў. І так нармальна, калі Вы хочаце, каб раздрукаваць дыяфрагмы, Напрыклад, вы не хочаце, каб ён рабіць усё гэта, таму што гэта можа ўзяць на сябе Уся ваша кансоль. Такім чынам, адна рэч, якая сапраўды прыемна, функцыя кіраўнік. Так што, калі вы проста робіце галаву касач, гэта дасць вам Першыя пяць радкоў, ці шэсць гадоў, я думаю. І тады добра, вы можна проста паказаць тут. Так 20-- гэта дасць Вы першыя 20 радкоў. І я на самой справе быў добры здзіўлены, што гэта даў мне шэсць, таму дазвольце мне ісці наперад і праверце iris-- або галаву, прабачце. І вось ён дасць Вы дакументацыя што значэнне кіраўнік робіць. Так яна вяртае першы ці апошні з аб'екта. А потым я збіраюся паглядзець на значэнні па змаўчанні. І тады ён размаўляе па змаўчанні Метад кіраўнік х і н роўная 6L. Так што гэта вяртае першыя шэсць элементаў. І сапраўды гэтак жа, калі вы заўважылі тут, я ня трэба паказваць N роўна 6. Па змаўчанні ён выкарыстоўвае шэсць, я думаю. І потым, калі я хачу, каб паказаць упэўнены, значэнне, то я магу паглядзець, што добра. Так што некалькі простых каманд і вось яшчэ адзін гэта просто-- добра, Я can-- гэта на самай справе крыху больш складана, але гэта будзе проста ўзяць клас кожнага слупка вясёлкавай абалонкі дадзеных. Так што гэта будзе паказаць вам, што кожны з іх калонкі з пункту гледжання іх тыпаў. Так чашелистник даўжыня лічбавай, чашелистник шырыня з'яўляецца лікавы. Усе гэтыя значэння з'яўляюцца толькі лікавым таму што вы можаце сказаць па гэтых дадзеных структураваць гэтыя ўсе збіраемся лікавы. І калона Віды будзе фактарам. Так нармальна, можна падумаць, што гэта як радок знакаў. Але калі вы проста робіце irisSpecies, і тады я буду рабіць галаву 5, і гэта будзе раздрукаваць з першых пяці значэнняў. І зьвярніце ўвагу на тое гэта ўзроўні. Так што гэта saying-- гэта спосаб R ў таго, катэгарыяльныя зменныя. Такім чынам, замест таго, каб проста маючы знакавых радкоў, яна мае Настройка узроўняў якія з гэтых рэчаў. Такім чынам, давайце казаць irisSpecies 1. Так што вы хочаце зрабіць тут я падмноства ў гэтай калонцы відаў. Так гэта адбываецца Калонка выгляду і затым ён індэксуе, каб атрымаць першы элемент. Так што гэта павінна даць вам setosa. І гэта таксама дае вам ўзровень тут. Такім чынам, вы можаце таксама параўнаць гэта да setosa сімвалаў і гэта не будзе праўда, таму што адзін гэта іншага тыпу, чым іншыя. Ці я мяркую, што гэта праўда, таму што R разумнейшы, чым гэта. І ён глядзіць на гэта, а затым кажа, можа быць, гэта тое, што вы хочаце. Так што скажа характар Радок setosa з'яўляецца такой жа, як гэты. А потым гэтак жа, вы можаце таксама проста захапіць гэтыя як так далей. Так што гэта проста нейкае хуткіх каманд, набору дадзеных. Дык вось некаторыя даследаванні дадзеных. Так што гэта крыху больш, ўдзельнічае ў аналізе дадзеных. І гэта бярэцца з некаторых Bootcamp ў R для ў Берклі. Так бібліятэка замежнай. Так што я збіраюся загрузіць у бібліятэка, якая называецца вонкавай. Так што гэта дасць мне read.dta таму выкажам здагадку, што ў мяне ёсць гэты набор дадзеных. Гэта захоўваецца ў цяперашні час Працоўны каталог маёй кансолі. Такім чынам, давайце паглядзім, што працоўны каталог. Такім чынам, вось мой працоўны каталог. І чытаць кропкавыя дадзеныя, гэта рэч, кажа гэты файл знаходзіцца ў тэчцы дадзеных гэта бягучы працоўны каталог. І read.dta гэта не Каманда па змаўчанні. Я мяркую, што я загрузіў яго ва ўжо. IEI выказаў здагадку, што я нагружаная ва ўжо. Але так read.dta не збіраецца быць каманда па змаўчанні. І вось чаму вы будзеце мець для загрузкі ў гэтай бібліятэцы package-- Гэты пакет называецца вонкавай. І калі ў вас няма Пакет, я думаю, знешняя з'яўляецца адным з убудаваных у іх. У адваротным выпадку, вы можаце таксама зрабіць install.packages і гэта будзе ўсталяваць пакет. І гэта дасць вам Р. Э-э, няма. А потым я проста хачу, каб спыніць Гэта таму, што я ўжо ёсць. Але тое, што сапраўды добра пра R з'яўляецца тое, што кіраванне пакетамі Сістэма вельмі элегантна. Таму што гэта будзе захоўваць усе сапраўды добра для вас. Такім чынам, у гэтым выпадку, гэта будзе для захоўвання гэта, я лічу, гэтая бібліятэка тут. Так у любы час вы хочаце ўсталяваць новыя пакеты, гэта так жа проста, як рабіць install.packages і R абыйдзецца ўсяго пакеты для вас. Такім чынам, вы не павінны рабіць што-то ў Python, дзе ў вас маецца знешні пакет менеджэры як папера Anaconda, дзе вы doing-- ўстаноўкі пакеты па-за Python а затым паспрабуйце запусціць іх самастойна. Так што гэта сапраўды добры спосаб. І install.packages патрабуецца доступ у Інтэрнэт. Яна прымае ад сервера і сховішча, у якім збірае ўсе пакеты, называецца кран. І вы можаце вызначыць, які выгляд люстэрка Вы хочаце, каб загрузіць пакеты. Дык вось, я бяру гэты набор дадзеных. Я чытаю яго пры дапамозе гэтай функцыі. Такім чынам, дазвольце мне ісці наперад і рабіць гэта. Такім чынам, давайце выкажам здагадку, што ў вас ёсць гэты набор дадзеных і ў вас ёсць абсалютна Не ведаю, што гэта такое. І гэта на самай справе адбываецца да даволі часта ў прамысловасці дзе вы проста павінны гэта тоны і тоны бруднай рэчы і яны неверагодна немеченых. Дык вось у мяне ёсць гэта набор дадзеных, і я не ведаю, што гэта такое, так што я проста паказваючы, каб праверыць яго. Так што я збіраюся зрабіць з галавой. Так што я праверыць першыя шэсць калоны, што гэта набор дадзеных. Так што гэта дзяржава, pres04, а затым Усе гэтыя розныя роду слупкоў. І што цікава, тут, я думаю, з'яўляецца тое, што вам было б выказаць здагадку, што гэта выглядае як свайго роду выбараў. І я думаю, толькі з гледзячы на ​​файл назваць гэта нейкі калекцыі даных аб кандыдатах або выбаршчыкаў хто галасаваў за канкрэтных прэзідэнтаў ці прэзыдэнта кандыдаты для абрання ў 2004 годзе. Дык вось значэння 1, 2 так адзін спосаб захоўвання кандыдаты прэзідэнт іх імёны. У гэтым выпадку, падобна, яны проста цэлыя значэння. Так 2004 годзе ён быў Буш у параўнанні з Кэры я веру. А цяпер, выкажам здагадку, што вы проста не ведаеце, Ці 1 адпавядае Буша або 2 адпавядае Кэры або і гэтак далей, і гэтак далей, ці не так? І гэта, толькі мне, даволі распаўсюджаная праблема. Так што вы можаце рабіць у дадзеным выпадку? Так давайце праверым усе гэтыя іншыя рэчы. стан, я мяркую, што гэта прыходзіць з розных дзяржаў. partyid, даход. Давайце паглядзім на partyid. Так, можа быць, адна рэч, вы можаце зрабіць гэта разгледзім кожны з назіранняў якія маюць partyid рэспубліканскага або дэмакрат ці нешта. Так што давайце проста паглядзім на тое, што partyid ёсць. Так што я збіраюся ўзяць DAT, а затым я іду зрабіць гэта знак даляра аператар, што я зрабіў раней і гэта будзе падмноства ў гэтым слупку. А потым я збіраюся ўзначаліць гэта 20, проста каб паглядзець, як гэта выглядае. Так што гэта проста куча NAS. Такім чынам, іншымі словамі, у вас ёсць адсутнічаюць дадзеныя аб гэтых хлопцаў. Але вы таксама заўважыце, гэта DAT partyid з'яўляецца фактарам так што гэта дае вам розныя катэгорыі. Такім чынам, іншымі словамі, partyid можа заняць Дэмакрат, рэспубліканец, Незалежная, ці нешта яшчэ. Так што давайце ісці наперад і давайце даведацца, якія з іх is-- О, добра. Так што я збіраюся падмноства у partyid, а затым паглядзець на тыя, якія з'яўляюцца Дэмакрат, напрыклад. Гэта будзе даваць вам лагічны, Велізарны Boolean ісцін і FALSEs. А цяпер, давайце казаць, што я хачу падмноствам з гэтымі хлопцамі. Так што гэта збіраюся прыняць мае DAT і падмноства да якога б назірання ёсць partyid роўных роўна дэмакрат. І гэта даволі доўга, таму што ёсць так многія з іх. Так што цяпер, я збіраюся ўзначаліць гэта ў 20. І, як вы заўважылі, прымаецца роўным роўных Цікава, што вы already-- вы таксама уключаючы NAS. Такім чынам, у гэтым выпадку, вы ўсё роўна не можаце атрымаць любая інфармацыя, таму што зараз у вас ёсць NAS і вы проста хочаце, каб убачыць, якія з назіранне адпавядаюць дэмакрат а не гэтыя адсутнічаюць сябе шануе. Так як жа пазбавіцца ад гэтых ВПЛ? Дык вось я толькі з дапамогай клавішу уверх на маім курсора, а затым кажуць перасоўвацца. А потым вось я проста хачу, сказаць is.na datpartyid. Так гэта і і будзе прымаць два розныя Булевы вектары і сказаць, што гэта будзе ПРАЎДА і ХЛУСНЯ напрыклад. Так што будзе рабіць гэты кампанент Мудры. Дык вось я і кажу ўзяцце кадр дадзеных, падмноства на тыя, якія адпавядаюць дэмакрат, і выдаліць любы з іх, якія не з'яўляюцца NA. Так што гэта will-- павінны даць вам нешта. Давайце паглядзім, is.na. Давайце паспрабуем is.na datpartyid. І гэта павінна даць you-- sorry-- толькі лагічны вектар. І потым, таму што гэта так доўга, Я збіраюся падмноства да 20. ОК. Так што гэта павінна працаваць. І на гэты раз таксама будзе ісцін. Ах, так мая памылка ў тым, што I'm-- Я выкарыстоўваць C ++ і R ўзаемазаменныя, так што я зрабіць гэтая памылка ўвесь час. І аператар на самай справе той, які вы хочаце. Вы ж не хочаце, каб выкарыстоўваць два Ампэрсанд, проста адзін. ОК. Такім чынам, давайце паглядзім. Такім чынам, мы subsetted ў partyid, дзе яны дэмакрат і яны не хапае значэнняў. А цяпер давайце паглядзім на якія яны галасавалі. Так што, падобна, як і большасць з іх прагаласавалі за 1. Так што я збіраюся ісці наперад і сказаць, што Кэры. І сапраўды гэтак жа, вы можаце таксама пайсці ў Рэспубліканскі і, спадзяюся, гэта павінна даць вам 2. Гэта проста куча розных калонках. І на самай справе, гэта 2. Так partyid ўсіх рэспубліканскіх, большасць з іх галасуюць за 2. Так што падобна, проста гледзячы на ​​гэта, Рэспубліканскі будзе very-- або partyid будзе вельмі важным фактарам у вызначэнні які кандыдат яны збіраецца галасаваць. І гэта, відавочна, дакладна ў цэлым. І гэта адпавядае вашаму інтуіцыя, вядома. Так што, падобна, як быццам я не хапае часу, каб дазвольце мне ісці наперад і паказаць некалькі хуткіх здымкаў. Дык вось тое, што гэта крыху Чым складаней з візуалізацыяй. Такім чынам, у гэтым выпадку, гэта вельмі Просты аналіз проста праверка, што Прэзідэнт '04 ёсць. Такім чынам, у гэтым выпадку, дапусцім, што вы хацеў адказаць на гэтае пытанне. Таму выкажам здагадку, што мы хацелі ведаць галасавання паводзіны ў 2004 выбараў прэзідэнта і як гэта залежыць ад расы. Так што не толькі вы хочаце паглядзець паводзіны галасавання, але вы хочаце, каб падмноства сябар расы і роду рэзюмаваць, што. І можна толькі сказаць, гэтай комплекснай запісу што гэта свайго роду атрымання туманнымі. Такім чынам, адзін з больш прасунутых R пакеты, якія таксама выгляд нядаўняе называецца dplyr. Так што гэта прама тут. І ggg-- ggplot2 проста прыемна спосаб зрабіць лепш візуалізацыі чым убудаваная ў адным. Так што я збіраюся загрузіць Гэтыя дзве бібліятэкі. І потым, я збіраюся пайсці наперад і запусціце наступную каманду. Вы можаце разглядаць гэта як чорны скрыню. Што адбываецца, што гэтую трубу Аператар праходзіць у гэтай спрэчцы у тут. Так што я кажу, групу, DAT Гонка, а затым прэзідэнтам 04. І потым, усе гэтыя іншыя каманды фільтруюцца, а затым падвядзенне вынікаў дзе я раблю лічыльнік і то я ў змову ягоную тут. ОК выдатна. Так што давайце ісці наперад і см, як гэта выглядае. Так, што тут адбываецца, што я проста нанесеныя кожнай з рас, а затым якія яны галасавалі. І гэтыя два розныя значэнні адпавядаюць 2 і 1. Калі вы хочаце быць больш элегантны, вы таксама можаце проста паказаць, што 2 Kerry-- або 2 Буш, а затым 1 Кэры. І вы таксама можаце мець што ў сваю легенду. І вы таксама можаце падзяліць гэтыя гістаграмы. Таму што адна справа што, калі вы заўважылі, гэта не вельмі лёгка вызначыць які з гэтых двух значэнняў больш. Такім чынам, адна рэч, якую вы хацелі б зрабіць, гэта прыняць гэтую сінюю вобласць і проста перанесьці яго сюды, каб вы Можна параўнаць гэтыя два бок аб бок. І я думаю, што гэта тое, што я не было часу, каб зрабіць прама цяпер, але гэта таксама вельмі лёгка зрабіць. Вы можаце проста паглядзець у у чалавека старонкі ggplot. Такім чынам, вы можаце проста ggplot як што і чытаць у гэтым даведачнай старонцы. Так дазвольце мне хутка паказаць вам некаторыя цікавыя рэчы. Давайце ісці наперад і ісці to-- толькі Прымяненне машыннага навучання. Так што давайце, у нас ёсць гэтыя тры пакеты, так што я збіраюся загрузіць іх у. Так што гэта проста выводзіць некаторыя Інфармацыя пасля таго як я загружаны ў рэчы. Так што я кажу гэта read.csv, Гэты набор дадзеных, і цяпер Я збіраюся ісці наперад і глядзець і паглядзець, што ўнутры гэтага набору дадзеных. Такім чынам, першыя 20 назіранняў. Так што я проста X1, X2, і Y. Такім чынам, Падобна на тое, кучай гэтых значэнняў якія, магчыма, у межах ад 20 да 80 або каля таго. А потым гэтак жа для X2, а затым Гэты Y-відаць, этыкеткі 0 і 1. Каб пераканацца ў гэтым, я магу проста рабіць зводныя дадзеныя X1. А потым гэтак жа для усе гэтыя іншыя слупкі. Так кароткае выклад хуткі спосаб проста паказваючы вам хутка значэння. Эх, шкада. Гэта трэба быць Y. Такім чынам, у гэтым выпадку, дае Квант, медыяна, вычарпаны, а таксама. У гэтым выпадку, dataY, вы можаце ўбачыць што гэта проста будзе 0 і 1. Таксама сярэдняя кажа 0,6, азначае толькі тое, што яно Падобна на тое, у мяне ёсць яшчэ 1с, чым 0s. Такім чынам, дазвольце мне ісці наперад і шоў Вы, як гэта выглядае. Так што я проста хачу, каб пабудаваць гэта. Давайце паглядзім, як ачысціць гэты. Аб OK. ОК. Так што гэта, як ён выглядае. Так што падобна жоўтых Я названых 0, а затым чырвоны я паказаў у выглядзе 1. Дык вось, падобна, пункту пазнак і гэта Падобна на тое, вы проста хацелі некаторыя Сартаваць кластарызацыі па гэтым пытанні. І дазвольце мне проста ісці наперад і шоў вам некаторыя з гэтых ўбудаваных функцый. Дык вось лм. Так што гэта проста спрабуе каб адпавядаць радок да гэтага. Так што лепшы спосаб што я магу адпавядаць лініі такіх што ён будзе лепш падзяліць Гэты выгляд кластарызацыі. А ў ідэале, вы можаце проста паглядзець што я проста запусціць ўсе гэтыя каманды а затым, я збіраюся наперад і дадайце радок. Так гэта здаецца найбольш верагодная здагадка. Гэта займае лепшае, што зводзіць да мінімуму Памылка пры спробе, каб адпавядаць гэтай лініі. Відавочна, што гэта выглядае накшталт добра, але гэта не самае лепшае. І лінейныя мадэлі, у наогул, будзе сапраўды выдатна падыходзіць для тэорыі, так і толькі выгляд будаўнічых асноў машыны навучанне. Але на практыцы, вы збіраецеся хачу зрабіць што-то больш агульнае. Такім чынам, вы можаце проста паспрабаваць запусціць тое, што называецца нейронавай сеткі. Гэтыя рэчы большае распаўсюджванне. І яны проста працуюць фантастычна для вялікіх набораў дадзеных. Такім чынам, у гэтым выпадку, мы толькі have-- давайце see-- ў нас ёсць nrow. Так nrow проста кажу лік радкоў. Такім чынам, у гэтым выпадку, я ёсць 100 назіранняў. Такім чынам, дазвольце мне ісці наперад і зрабіць нейронных сетку. Так што гэта вельмі прыемна таму што я магу толькі сказаць, Nnet а потым я рэгрэс Y. Так Y з'яўляецца тое, што калонка. А потым рэгрэс яго на дзве іншыя зменныя. Так што гэта карацей Абазначэння X1 і X2. Так што давайце ісці наперад і запуску гэтага. Эх, шкада. Мне трэба, каб запусціць усё гэта справа. І гэта толькі друк абазначэння аб тым, як хутка ці не хутка яна сыходзіліся. Так гэта выглядае, як гэта было сыходзяцца. Такім чынам, дазвольце мне ісці наперад і друку , Што гэта выглядае. См вось карціна і тут Контур паказвае, наколькі добра яна падыходзіць. І гэта просто-- вы можаце ўбачыць гэта, што гэта вельмі, вельмі прыемна. Гэта можа быць нават перанавучання, але вы таксама можаце даводзіцца гэта з іншымі такія метады, як крос-праверкі. І гэта таксама ўбудаваныя ў R. І дазвольце мне паказаць вам, Машына апорных вектараў. Гэта яшчэ адзін вельмі распаўсюджаны Тэхніка ў машынным навучанні. Гэта вельмі падобна на лінейных мадэляў, а ён выкарыстоўвае тое, што называецца метад ядра. І давайце паглядзім, як добра, што робіць. Такім чынам, гэта адна вельмі падобная на тым а Нейронавыя сеткі выконвае, але гэта значна больш гладкай. І гэта грунтуецца з што-хаў SVMs працу. Так што гэта проста вельмі кароткі агляд некаторых з убудаваных функцый вы можаце зрабіць а таксама некаторыя з даследавання дадзеных. Такім чынам, дазвольце мне проста ісці наперад і вярнуцца да слайдамі. Так відавочна, што гэта не вельмі ўсёабдымны характар. І гэта на самай справе проста тізер паказваючы вам, што вы сапраўды можаце зрабіць у R. Так што калі вы проста хацеў каб даведацца больш, тут куча розных рэсурсаў. Так што калі вы любіце падручнікаў ці вы проста люблю чытаць рэчы ў Інтэрнэце, то гэта фантастычны адзін Хэдлі Уикхемом, які таксама стварыў усё гэта сапраўды выдатна пакеты. Калі вы любіце відэа, то Berkeley мае выдатную буткемп гэта several-- гэта нейкія доўгія. І ён будзе вучыць вас амаль усё, што вы хацелі б ведаць аб R. І сапраўды гэтак жа, ёсць Codeacademy і ўсё гэта іншага роду інтэрактыўных вэб-сайтаў. Яны таксама атрымліваюць common-- больш і больш распаўсюджаным. Такім чынам, гэта вельмі падобна на Codeacademy. І, нарэшце, калі вы проста хочаце супольнасці і дапамагчы, гэта куча рэчы, якія вы можаце пайсці. Відавочна, што мы да гэтага часу выкарыстоўваць паштовыя рассылкі, проста як і амаль усе іншыя мова праграмавання супольнасці. І #rstats, гэта Наша супольнасць Twitter. Гэта на самай справе даволі распаўсюджанай з'явай. І тады карыстальнік! Гэта проста наша канферэнцыя. І тады, вядома, вы можаце выкарыстоўваць усе гэтыя іншыя Q & A рэчы, як перапаўненне стэка, Google, а затым GitHub. Паколькі большасць з гэтых пакетаў і шмат супольнасці будзе засяроджаная вакол распрацоўкі Код, таму што гэта з адкрытым зыходным кодам. І гэта вельмі-вельмі добры на GitHub. І, нарэшце, вы можаце звязацца са мной, калі вы проста ёсць якія-небудзь простых пытанняў. Такім чынам, вы можаце знайсці мяне на Twitter тут, мой сайт, і толькі мой адрас электроннай пошты. Так, мы спадзяемся, што было something-- толькі кароткі тізер чаго R сапраўды здольны. І мы спадзяемся, Вы проста праверыць гэтыя тры спасылкі і паглядзець, што можна зрабіць яшчэ больш. І я думаю, што гэта як раз пра гэта. Дзякуй. [Апладысменты]