[Hudba hrát] DUSTIN TRAN: Ahoj. Jmenuji se Dustin. Takže budu prezentovat Analýza dat v R. Jen něco málo o sobě. Já jsem v současné době studentem strojírenství a aplikovaných věd. Studuji průnik strojové učení a statistiky tak Analýza dat v R je Opravdu zásadní pro to, co Já na denní bázi. A R je zvláště dobré pro analýzu dat protože je to velmi dobré pro prototypování. A obvykle, když děláte nějaký analýzy dat, hodně problémů budou kognitivní. A tak si jen chcete mít nějaký opravdu dobrý jazyk, který je jen dobře pro to vestavěných funkcí, na rozdíl se museli vypořádat s nízkými věcmi úrovně. Takže na začátku, já jsem prostě jít představit, co je R, by proto Chcete-li jej použít, a pak přejít do nějaké demo, a jen dál od toho. Takže to, co je R? R je jen jazyk se vyvíjel pro statistické výpočty a vizualizace. Takže to, co to znamená, že je to velmi výborný jazyk pro nějaký druh věc, která se zabývá nejistota nebo vizualizace dat. Takže budete mít všechny tyto rozdělení pravděpodobnosti. Tam se bude vestavěných funkcí. Budete mít také vynikající vykreslování balíčky. Python je další konkurenční jazyka pro data. A ještě jedna věc, kterou jsem si, že R je mnohem lepší je vizualizace. Takže to, co uvidíte v ukázce, jak dobře, je jen velmi intuitivní jazyk že prostě funguje velmi dobře. To je také zdarma a open source, as Je nějaký jiný dobrý jazyk, myslím. A tady, banda jen klíčová slova hodil na vás. Je to dynamický, což znamená, pokud máte Specifický typ přiřazen k objektu než to bude jen to změnit za běhu. Je to líný, takže je to chytře Jak to dělá výpočty. Funkční což znamená, že může skutečně fungovat založený off funkcí tak anything-- nějaký druh manipulace jste dělá, bude založen vypnutí. Tak binární operátory, například, jsou prostě neodmyslitelně funkce. A všechno, co budete dělat, je bude utéct funkce sám. A pak objektově orientované stejně. Takže tady je XKCD spiknutí. Nejen proto, že mám pocit, jako XKCD je základem jakéhokoliv druhu prezentace, ale proto, že Mám pocit, že to opravdu kladiva upozorňuje, že mnoho Doba, kdy děláte nějaký údajů analýza, není problém tak moc, jak rychle běží, ale jak dlouho to bude vás programovat úkol. Tak tady je právě analyzuje, zda Strategie a nebo b je účinnější. To bude něco, co jste bude zabývat hodně se v Druh jazyky low-level kde máte co do činění s Seg poruch, alokace paměti, inicializace, i zhotovení vestavěných funkcí. A tohle vše je nakládáno velmi, velmi elegantně v R. Takže jen ke kladivu to bod, největší překážkou bude poznávací. Takže analýza dat je velmi těžké problém. Ať už děláte strojové učení nebo jste dělá jen nějaký druh základní průzkum dat, nechcete mít aby dokument a pak kompilovat něco, co při každém Chcete vidět, co sloupec vypadá, jaké konkrétní položky v matrici vypadá. Takže si jen chcete mít některé opravdu pěkné rozhraní můžete spustit jednoduchou funkci že indexy na cokoliv chcete a jen spustit odtud. A budete potřebovat doménu konkrétní jazyky pro to. A R bude opravdu pomůže definovat problém a vyřešit tímto způsobem. Takže tady je graf ukazující programování Obliba R, jak je to pryč v průběhu času. Takže jak vidíte, stejně jako 2013, nebo tak to prostě vyhodit do povětří ohromně. A to bylo jen proto, že z toho obrovský trend v odvětví technologií o zpracování velkých objemů dat. Také, a to nejen technologie průmysl, ale ve skutečnosti jakýkoli průmysl that-- protože Mnoho průmyslových odvětví jsou trochu zásadní pro se snaží tyto problémy řešit. A obvykle, můžete mít nějaké dobré způsob měření těchto problémů nebo je dokonce definování nebo řešení je pomocí dat. Takže myslím, že teď je R 11. nejpopulárnější jazyk na TIOBE a to bylo od té doby roste. Tak tady je to trochu víc rysy R. má enormní počet balení a pro všechny tyto různé věci. Takže kdykoli budete mít Určitým problémem, většina čas R bude mít že funkce pro vás. Takže jestli chcete budovat jakési stroje učení algoritmus nazvaný Random Forest nebo rozhodovací stromy, nebo dokonce se snaží vzít průměr funkcí nebo některý z těchto věcí, R bude mít to. A pokud si budete záleží optimalizace, jedna věc, která je společná se, že poté, co jste udělal prototypů nějaký druh jazyka na vysoké úrovni, vám bude hodit, že in-- budete jen port, přes do určité jazyk nízké úrovně. Co je dobré o výzkumu je, že jakmile jste udělal prototyping, můžete spustit C ++, nebo Fortran, nebo některý z nich ty nižší úrovně přímo do R. Tak to je jedna opravdu zajímavé funkce o R, pokud vám opravdu záleží optimalizace bod. A to je také velmi dobrý pro webové vizualizace. Tak D3.js, například, je Myslím, že další seminář že jsme představili dnes. A to je opravdu úžasné pro dělá interaktivní vizualizace. A D3.js předpokládá, že máte nějaký druh údajů, které budou vyneseny a R je skvělý způsob, jak být schopen dělat analýza dat, než ji exportovat se k D3.js, nebo dokonce jen spustit D3.js příkazy do R sám, stejně jako všechny tyto další knihovny také. Takže to byl právě zavedení co je R a proč ho mohl použít. Tak doufejme, že jsem přesvědčen o tom, něco ti asi jen se snaží zjistit, co to je. Takže budu pokračovat a projít Některé základy o R objektů a to, co opravdu můžete udělat. Takže tady je jen banda příkazů matematických. Takže říkat you're-- chcete vytvořit Jazyk sami a chcete jen mít spoustu různých nástrojů. Jakýkoliv druh provozu si myslíte, že byste chci, je do značné míry bude v R. Takže tady je 2 plus 2. Tady je 2 krát pi. R má spoustu vestavěných konstant že budete často používat jako Pi, e. A pak, tady je 7 a runif, takže runif z 1. To je funkce, která je generuje jeden náhodný jednotný od 0 do 1. A pak je tu 3 k síle 4. Je tu druhé odmocniny. Tam je log. Takže log bude dělat základnu exponenciální sama o sobě. A pak, pokud zadáte základnu, pak si můžete dělat, co chcete, základna. A pak tady jsou některé další příkazy. Takže máte 23 mod 2. Pak máte zbytek. Pak máte vědecký notace pokud zároveň chcete udělat jen více a složitější věci. Takže tady je úkol. Takže typické úkoly v R se provádí s šipkou tak je to méně než, a pak pomlčka. Tak tady jsem jen přidělování 3 k proměnné val. A pak jsem tisk val a pak se vytiskne tři. Ve výchozím nastavení v R interpret, vytiskne, co pro vás takže nemusíte zadat tisk val kdykoli budete chtít něco vytisknout. Stačí si jen udělat val a pak to udělá za vás. Také můžete použít rovná technicky jako operátor přiřazení. K dispozici jsou malé nuance Mezi pomocí šipky Provozovatel a rovná se pohon pro úkoly. Většinou konvencí, každý bude jen používat operátor šipky. A tady, já to přiřazování šikmý zápis říká 1 dvojtečka 6. To vytváří vektor 1-6. A to opravdu pěkné, protože pak stačí přiřadit vektor Val a který pracuje sám. Tak to už bude z single-- velmi intuitivní údaje struktura jen dvojnásobek nějaký druh druhu do vektoru a který se bude shromažďovat všechny skalární hodnoty pro vás. Takže poté, co šel z skalární, vy mají předměty R, a to je vektor. Vektor je nějaký druh kolekce stejného typu. Tak tady je banda vektorů. Tak tohle je číselný. Číselný je R způsob, jak říct double. A tak ve výchozím nastavení, jakýkoli Číslo bude double. Takže pokud máte c 1,1, 3, negativní 5.7, c je funkce. To zřetězuje všechny tři Čísla do vektoru. A to bude be-- takže pokud zjistíte, 3 sama o sobě, Normálně by se předpokládat, že to je jako celé číslo, ale proto, že všech vektorů jsou stejného typu, to je vektor čtyřher nebo číselný v tomto případě. RNorm je funkce, která generuje Standardní normální variables-- nebo standardní normální hodnoty. A já s uvedením dva z nich. Takže dělám RNorm 2, přiřazování, že pro vývojáři, a pak jsem tisk DEVS. Tak to jsou jen dvě náhodné normální hodnoty. A pak Ints, pokud nemáte vám záleží na celá čísla. Takže je to jen o paměti alokace a ukládání velikost paměti. Takže budete muset připojit Vaše čísla od hlavního města L. Obecně platí, že se jedná Historické notace R: za něco, co nazývá long integer. Takže většinu času, budete se zabývají zdvojnásobí. A pokud jste někdy bude později na optimalizaci kódu, stačí přidat tyto L's později nebo v jeho průběhu pokud jste jako precognitive o tom, co budete dělat tyto proměnné. Takže tady je znak vektor. Takže, ještě jednou, já jsem zřetězení Tři řetězce tentokrát. Všimněte si, že dvojité řetězce a Jednotlivé řetězce jsou stejné v R. Tak jsem se Arthur a Marvin, a tak když jsem tisku to, všichni z nich ukážeme dvojité řetězce. A pokud chcete také zahrnout jedno- nebo řetězec ve své postavy, pak můžete buď střídají struny. Tak marvin je pro druhý prvek, to je tě show-- Jen mají dvojité řetězce a pak jeden řetězec Tak tohle je střídavý. V opačném případě, pokud chcete použít double operátor řetězec ve dvoulůžkovém řetězci když jste ji prohlásí, pak stačí použít operátor uniknout. Takže si udělat zpětné lomítko dvojité řetězec. A konečně jsme také mají logické vektorů. Tak logical-- tak TRUE a FALSE, a oni jsou Bude všechna písmena. A pak ještě jednou, já jsem zřetězení je a pak jejich přiřazení bools. Takže bools se chystá ukázat ty TRUE, FALSE, a TRUE. Takže tady je vectorized indexování. Takže na začátku jsem beru na function-- tomu se říká sequence-- Sekvence od 2 do 12. A já beru sekvenci o 2. Takže to bude dělat 2, 4, 6, 8, 10 a 12. A pak, já jsem indexování získat třetí prvek. Takže jedna věc je mít na paměti, je že R indexy od 1. Takže odstupech 3 se chystá dát ty třetí element. To je trochu odlišný od jiných jazyků, kde se začíná od nuly. Takže v C nebo C ++, například, že jste dostane čtvrtý prvek. A tady je vals 3-5. Takže jedna věc, která je opravdu cool je, že vás může vytvářet dočasné proměnné uvnitř a pak stačí použít je na čase. Takže zde je 3 až 5. Takže jsem generování vektor 3, 4, a 5 a poté Jsem indexování dostat třetinu, Čtvrtý a pátý prvky. Takže podobně, můžete abstract to prostě dělat nějaký druh vektoru že vám dává indexování. Takže tady je Vals a pak První, třetí a šestý prvky. A pak, pokud chcete dělat doplněk, takže stačí udělat minus poté a že bude vám všechno, co není první, třetí, nebo šestý prvek. Takže to bude 4, 8, a 10. A pokud chcete získat ještě pokročilejší, můžete zřetězit logických vektorů. Takže tento index se chystá dát vám tento Boolean vektor délky 6. Takže rep TRUE čárka 3. To se bude opakovat TRUE třikrát. Tak to vám dá vektor TRUE, TRUE, TRUE. rep FALSE 4-- to bude tak, aby vám vektor FALSE, FALSE, FALSE, FALSE. A pak c bude zřetězit tyto dvě Booleans dohromady. Takže budete dostat tři TRUEs a pak čtyři FALSEs. Takže, když se index Vals, že jste dostane TRUE, TRUE, TRUE. Takže to bude říkat ano, Chci ty tři prvky. A pak FALSE, FALSE, FALSE, FALSE se děje říci ne, nechci tyto prvky takže to nebude je vrátit. A myslím, že je to vlastně překlep zde protože to říká repeat TRUE 3 a opakovat FALSE 4, a technicky, vás mít pouze šest prvků tak opakovat FALSE, to by mělo být opakovat FALSE 3. Myslím si, že R je také dost, jako inteligentní že pokud jste právě určit 4 tady, a pak nebude ani chyba ven. To bude jen vám tuto hodnotu. Tak to si prostě ignorovat skutečnost, že Čtvrtá FALSE. Takže tady je vectorized úkol. Takže set.seed-- to jen nastaví osivo pro pseudonáhodných čísel. Takže jsem nastavit semeno do 42, což znamená, že když jsem vytvářet Tři náhodný normální hodnoty, a pak, pokud vás spustit set.seed na vlastní pěst počítač používá stejnou hodnotu 42, pak můžete také získat Stejné tři náhodné normály. Tak tohle je fakt dobrý reprodukovatelnosti. Obvykle, když děláte nějaký druh vědecké analýzy, budete chtít nastavit semeno. Tak jiní vědci mohou jen reprodukovat přesně stejný kód, který jste dáno tím, že budou mít přesný Stejné náhodné veličiny that-- nebo náhodné hodnoty, které jste si vzal ven také. A tak vectorized přiřazení Zde se ukazuje Vals 1-2. Tak to trvá první dva prvky Vals a pak přiřadí 0. A pak se můžete také jen dělat Podobná věc se s Boolean. Takže vals není rovno 0-- to bude vám vektorový FALSE, FALSE, TRUE v tomto případě. A pak, že to bude říkat jakýkoli z těch indexů to byla pravda, pak to bude přiřadit, že pro 5. Tak to trvá třetí element tady a pak ji přiřadí 5. A to je opravdu pěkný ve srovnání s low-level jazyky kde budete muset použít na smyčky dělat všechny tyto věci vectorized protože je to jen velmi intuitivní a to je jeden one-liner. A co je skvělé vectorized notace je to, že v oblasti výzkumu, to jsou jakési zabudovaný tak, že jsou téměř stejně rychle jak dělá v jazyce nízké úrovně as protichůdný k tomu, že pro vedení v R a pak musel to udělat dynamický indexování sám. A že to bude pomalejší, než dělat tento druh vectorized věci kde to může dělat to paralelně, kde to dělá to v podstatě závitů. Tak tady je vektorových operací. Takže jsem generování hodnoty 1-3, přiřazení, že pro vec1, 3 až 5, vec2, sečíst je. Dodává jim komponent moudrý tak to je 1 plus 3, 2 plus 4, a tak dále. vec1 časy vec2. To násobí dvě hodnoty komponenty moudrý. Takže je to 1 krát 3, 2 krát 4, a pak 3 krát 5. A pak, podobně můžete dělat comparisons-- logické srovnání. Takže je to FALSE FALSE TRUE v tomto případ, protože 1 není vyšší než 3, 2 není větší než 4. To je, myslím, že další překlep, 3 rozhodně není větší než 5. Jo. A tak si můžete jen udělat vše Tyto jednoduché operace protože jejich zděděné od samotných tříd. Takže to byl jen vektor. A to je tak nějak nejzásadnější R objekt, protože daný vektor, si můžete postavit pokročilejší objekty. Tak tady je matice. To je v podstatě abstrakce o tom, co matice je sama o sobě. Takže v tomto případě, je to tři různé vektory, kde každý z nich je sloupec, nebo si můžete uvažovat protože každý z nich je řada. Takže jsem uložení matice od 1 do 9 a pak já s uvedením 3 řádky. Takže 1-9 vám vektor 1, 2, 3, 4, 5, 6, a až do 9. Jedna věc je mít na paměti, že R ukládá hodnoty ve formátu sloupci-major. Takže jinými slovy, když vidíte 1 9, že to bude ukládat them-- to bude 1, 2, 3. místo v prvním sloupci, a pak to udělám 4, 5, 6 ve druhém sloupci, a pak 7, 8, 9 ve třetím sloupci. A zde jsou některé další běžné funkce, které můžete použít. Takže dim mat, to vám dá rozměry matrice. Bude to vrátíte vektor dimenze. Takže v tomto případě, protože Naše matice je 3 o 3, to bude vám numerický vektor, který je 3 3. A tady se právě ukazuje násobení matic. Takže většinou, pokud jste právě dělat asterisk-- tak mat hvězdička mat-- to bude komponent, moudrý provoz nebo to, co se nazývá produkt Hadamard. Takže to bude dělat každý element komponent-moudrý. Nicméně, pokud chcete matice multiplication-- tak vynásobením první časy řádek První sloupec druhé tabulky se a tak on--, měli byste použít toto procento operace. A t mat je jen Provoz na přemístit. Takže říkám vzít přemístit do matice, násobit ji matrici sám. A pak, že to bude vrátit se k vám další 3 o 3 Následující tabulka znázorňuje produkt byste chtěli. A tak, aby byla matice. Zde je to, co se nazývá datový rámec. Rám údaje si můžete myslet as matice, ale každý sloupec sám bude jiného typu. Takže to, co je opravdu v pohodě o datech Rámy je, že v analýze dat samotné, budete mít všechno heterogenní data a všechny tyto skutečnosti chaotický věcí, kde každý ze sloupců samy o sobě mohou být různých typů. Tak tady říkám vytvořit Údaje rám, dělat celých čísel od 1 do 3, a pak mají také charakter vektor. Takže mohu index přes Každý z těchto sloupců a pak budu si sami hodnoty. A můžete si také udělat nějakou o provozu na datových rámců. A většina z doby, kdy jste dělá analýzu dat, nebo nějakou předběžného zpracování, budete práce s těmito datovými strukturami kde každý sloupec se děje být jiného typu. A konečně, takže tyto jsou v podstatě jen čtyři základní objekty v R. Seznam bude jen sbírat jakýkoli jiné objekty, které chcete. Tak to bude ukládat to do jednoho proměnné, které lze snadno otevřít. Tak tady, beru seznam. Říkám, že věci se rovná 3. Takže budu mít jeden prvek seznam, a to se nazývá věci, a to bude mít hodnotu 3. Já si také vytvořit matici. Tak tohle je 1-4 a na konci řádku se rovná 2, takže 2 o 2 matice. Také v seznamu a je to jen mat. moreStuff, řetězec znaků, a dokonce i další seznam sám o sobě. Tak to je seznam, který je 5 a medvěda. Tak to má hodnotu 5 a to Má charakter řetězec medvěda a je to seznam v seznamu. Takže můžete mít tyto rekurzivní věcí, kde Máte another-- A typu v rámci typu. Takže podobně, můžete mít matici uvnitř jiné matrice, a tak dále. A seznam je jen dobrý způsob, jak shromažďování a agregaci Všechny tyto různé objekty. A konečně, je zde jen pomoci v případě to bylo jen pryč přes velmi rychle. Takže kdykoli jste zmatený o jakési funkce, můžete dělat pomoc této funkce. Takže si můžete udělat help matice nebo otazník matice. A pomoc a otazník jsou jen zkratka pro stejnou věc takže jsou aliasy. LM je funkce, která Jen dělá lineární model. Ale pokud jste právě nemáte tušení, jak to práce, stačí udělat pomoc lm a že ti dám trochu druh dokumentace, která Vypadá trochu jako man stránky v Unixu, kde máte krátký popis toho, co ano, i to, co je její argumentace, to, co se vrátí, a jen tipy na to, jak jejich použití, a některé příklady stejně. Tak nech mě jít dopředu a přehlídka některé demo použití R. OK. Tak jsem šel na velmi rychle jen údaje struktury a nějaká op-- některé operace. Zde je některé funkce. Tak tady jsem prostě jít k definování funkce. Takže jsem také používají Operátor přiřazení tady, a pak říkám deklarovat jako funkce. A to má hodnotu x. Tak to je nějaká hodnota, kterou chcete a budu se vrátit x sebe. Tak tohle je funkce identity. A co je v pohodě o tom ve srovnání s jinými jazyky a další nízkoúrovňové jazyky, je to, že x může být jakéhokoliv typu samotného a to vrátím tento typ. Takže si můžete imagine-- tak nechat mě stačí spustit tak rychle. Promiňte. Takže jedna věc, kterou bych měl zmínit je to, že tento editor jsem pomocí se nazývá rstudio. To je to, co se nazývá IDE. A ještě jedna věc, která je opravdu pěkné o tom je to, že obsahuje velké množství věci, které chcete dělat do výzkumu by samo o sobě Jen velmi intuitivně. Takže tady je interpret konzole. Takže podobně, můžete si to konzole raw jen tím, že dělá kapitálu R. A to je přesně to, totéž jako konzole. Tak jsem si jen to id funkce x, x, x. A then-- a pak to bude v pořádku sám. Takže rstudio je skvělý proto, že má konzolu. Má také dokumenty chcete běžet dál. A pak to má nějaké proměnné které můžete vidět v prostředí. A pak, pokud máte k tomu pozemky, a pak vás stačí vidět zde, na rozdíl od řízení všech těchto různých oken samy od sebe. Vlastně jsem osobně používám Vim, ale já pocit, že rstudio je vynikající právě pro získání dobrý nápad jak používat R. Obvykle když se snažíte naučit se nějaký nový úkol, nechcete řešit příliš mnoho věcí najednou. Takže R je jen very-- rstudio je velmi dobrý způsob, jak učení R aniž by museli vypořádat s Všechny tyto další věci. Tak tady Běžím id ahoj. Vrátí ahoj. id 123. Zde je vektor celých čísel. Tak podobně, protože můžete přijmout jakékoli nějaké hodnoty, můžete udělat vrací id x tak, že se vrací 1234 a 5. A dovolte mi, abych jen ukázat, že To je skutečně celé číslo. A podobně, pokud nechcete třídy id x, to bude celé číslo. A pak, můžete také porovnat dva a je to pravda. Takže jsem kontrolovat, jestli id ​​x rovná se rovná x a oznámení že to vám dává dva TRUEs. Takže to neříká, jsou dva objekty identické, ale každý z údajů V rámci vektory identické. Tady je bounded.compare. Tak to je o něco složitější v tom, že má-li to stav a jinde a pak to trvá dva argumenty najednou. Takže x je z jakéhokoliv typu. A já říkám Druhý argument je. To může být cokoliv stejně. Ale ve výchozím nastavení, že to bude trvat 5 Pokud nezadáte nic. Tak tady budu říkat pokud x je větší než. Takže když jsem se neuvádějí, je říká, že pokud x je větší než 5, pak budu vracet TRUE. jinak, budu se vrátit FALSE. Tak nech mě jít napřed a definovat to. A teď budu spustit bounded.compare 3. Tak to říká, že je 3 méně than-- je 3 větší než 5. Ne, to není tak FALSE. A bounded.compare 3 a jdu porovnat jej pomocí rovná 2. Takže teď říkám ano, teď už chci být něco jiného. Takže jsem chtěl říct, měli byste být 2. Můžu buď dělat tento druh notace nebo Říkám rovná 2. To je čitelnější v tom, že když jste při pohledu na tyto skutečnosti složité funkce, které aby více arguments-- a to mohou být desítky oftentimes-- jen říkám rovná 2, která je srozumitelná pro vám tak, že později v budoucnu budete vědět, co děláte. Takže v tomto případě, já jsem Říká se nachází 3 větší než 2. Ano, to je. A stejně, já si jen odstranit to a říkají, je 3 větší než 2 kde se rovná 2. A to je také pravda. Ano? Diváků: Jste provádění řádek po řádku? DUSTIN TRAN: Ano, jsem. Takže to, co dělám tady je přičemž tento text document-- a co je skvělé o rstudio je to, že Mohu jen spustit short-- zkratky pro. Takže dělám Control-Enter. A pak, beru řádek v textovém dokumentu a potom uvedení v konzole. Tak tady říkám, bounded.compare a já dělám Control-X. Tak jsem si prostě běžet i zde. A pak, že bude trvat linka a pak ji sem. A pak podobně, můžu to spustit zde. A pak to bude jen držet vymezení linky do konzole takhle. A pokud jste si také povšimnout kudrnaté rovnátka jsou tam stejně jako v syntaxi C. x-- pokud pokud podmínka je také bude používat závorky a poté můžete použít jinde. Další z nich je jiný, pokud. Takže to bude x rovná rovná, například. A pak budu vrátit něco tady. Všimněte si, že existují dva různé věci, které zde děje. Jedním z nich je, že tu jsem s uvedením vrátí hodnotu TRUE. Tady Jen říkám x. Takže R bude obvykle ve výchozím nastavení užít poslední arguments-- nebo se poslední řádek kódu, a to bude to, co je to vrátil. Tak tady je to stejné věc, jako dělá zpáteční x. A jen proto, aby vám ukázat. A pak, bude to fungovat stejně jako to. Dovolte mi tedy pokračovat s tím. Takže pokud jiný. A opravdu, můžu se vrátit něco, co bych chtěl. Tak jsem to ani na návratové Booleans po celou dobu, Mohu jen vrátit něco jiného. Tak jsem si udělat zpáteční medvěda. Takže pokud x rovná rovná, to bude návrat medvěda. V opačném případě to bude vracet TRUE. Já si také udělat vektor nebo opravdu cokoliv. A obvykle staticky zadávané jazyky, budete muset zadat typ zde. A všimněte si, že to může být jen něco. A R je dost inteligentní, aby to bude jen to a to bude fungovat dobře. Takže mě to definovat. Unexpected-- oh líto. Mělo by to být složená závorka zde. OK. Super. Dobrá. Takže teď pojďme porovnat 3 a rovná 3. Tak to by mělo return-- yeah-- hodnotu medvěda. Takže teď obecnější věc je jako co o jiných datových struktur. Takže budete muset tuto funkci. To bude fungovat na jakémkoliv druhu hodnoty, jako je 3 nebo jakékoliv číselné, Jinými slovy, double. Ale co o něčem takovém vektoru. Takže to, co se stane, když do--, takže jsem bude přiřadit Val za, řekněme, 4-6. Takže když jsem se vrátit to, to je vektor z 4, 5, 6. Nyní se podívejme, co se stane když to udělám bounded.compare val. Takže to bude dát 15 1251. Takže jinými slovy, je to říká když se podíváte na tuto podmínku tak to říká, že x je menší než nebo tak něco. Tak tohle je trochu matoucí, protože teď prostě nevím, co se děje. Takže si myslím, jednu věc, která je opravdu dobrý jen snaží ladit je, že můžete prostě val, je větší než, a uvidíme, co se děje tam. Takže val-- je standardně 5 tak, ať to jen do Val větší než 5. Tak to je vektor FALSE FALSE TRUE. Takže teď, když se díváte na to, bude to říci, zda, a pak, že to bude vám to je vektor false TRUE. Takže když to projít do R, R nemá ani ponětí, co děláte. Vzhledem k tomu, že očekává, že jeden jediný hodnota, která je logická, a teď dáváte jí vektor Boolean. Takže ve výchozím nastavení, R je prostě říkat, co to sakra, Budu předpokládat, že jste bude trvat první prvek zde. Takže budu say-- jdu předpokládat, že to je FALSE. Takže to bude říkat ne, to není v pořádku. Stejně tak, že to bude být val rovná rovná. Ne, je mi líto 5. A je to také bude falešný stejně. Takže to bude říkat ne, To není pravda, stejně tak je to chystá se vrátit tento poslední. Tak tohle je buď dobrá věc, nebo špatná věc, v závislosti na tom, jak jej zobrazit. Vzhledem k tomu, když jste vytváření těchto funkcí, nemáte skutečně vědět, co se děje. Takže občas byste chtěli nějakou chybu, nebo možná jen chcete varování. V tomto případě, R nedělá. Takže je to opravdu jen na vám na základě off o tom, co si myslíte, že jazyk by měl dělat v tomto případě Máte-li projít do vektoru Boolean když děláte v případě stavu. Řekněme, že jste měli původní jedna, jestliže jiný vrátí TRUE, a vy jste chystá se vrátit FALSE. Takže jeden způsob abstrahovat je to, že jsem Dokonce ani nemusíte podmíněného věc. Další věc, kterou můžu udělat, je jen vrácení samotné hodnoty. Takže pokud si všimnete, pokud máte do Val je vyšší než 5, to bude návrat vector FALSE FALSE TRUE. Možná, že to je to, co Chcete pro bounded.compare. Chcete-li vrátit vektor Boolean kde se porovnává každou z hodnot pro sebe. Takže si můžete prostě bounded.compare funkce x, se rovná 5. A pak místo provádění , pokud jiný stav, Já jsem prostě jít k návratu x je větší než 5. Takže pokud je to pravda, pak to bude vracet TRUE. A pak, pokud to není, je to chystá se vrátit FALSE. A to bude pracovat pro některé z těchto struktur. Tak jsem si bounded.compare c 1 6 nebo 9 a pak budu říkat rovná 6, například. A pak, že to bude vám ten správný Boolean vektor, který jste navrhování. To jsou jen funkce a to mi teď se prostě ukázat vám některé interaktivní vizualizace. Já si nemyslím, že ve skutečnosti se Wi-Fi zde tak ať mi prostě jít dopředu a přeskočit tohle myslím. Ale jedna věc, která je v pohodě však je, že pokud jste právě chcete vyzkoušet spoustu různé příkazy dat, je zde spoustu různých datových sad které jsou již předinstalovaný na R. Takže jeden z nich je volal iris datové sady. To je jeden z nejvíce známý ty v strojového učení. Budete obvykle jen udělat nějakou testovací případy, zda je váš kód běží. Tak ať to jen zkontrolovat, co duhovka je. Takže to, co se děje být datový rámec. A je to docela dlouho, protože Jen jsem vytisknout clonu. Je to tisk na celou věc. Tak to má všechny tyto různé názvy. Takže duhovka je kolekce různých květin. V tomto případě je to říká ty druhy to, Všechny tyto různé šířky a Délky kališní lístek a plátku. A tak normálně, pokud Chcete-li tisknout clonu, Například, nechcete ho mít to všechno, protože to může převzít Celá konzole. Takže jedna věc, která je opravdu pěkná je funkce hlavy. Takže pokud jste právě dělat hlavu iris, bude vám Prvních pět řádků, nebo šest myslím. A pak také ti, stačí zadat zde. Takže 20-- to bude dávat si prvních 20 řádků. A já jsem vlastně tak trochu překvapen, že tato dal mi šest, takže nech mě jít napřed a zkontrolujte, zda iris-- nebo hlavy, je mi líto. A tady to bude dávat vy dokumentace z toho, co je hodnota hlava dělá. Tak to vrátí první nebo poslední objektu. A pak budu podívejte se na výchozí hodnoty. A pak říká, že výchozí Metoda head x a n se rovná 6L. Tak to vrátí prvních šest prvků. A podobně, pokud si všimnete, tady jsem Nemusel specifikovat n = 6. Ve výchozím nastavení se používá šest, řekl bych. A pak, když chci zadat určitý hodnoty, pak jsem si názor, že stejně. Takže to je asi jednoduché příkazy a tady je ještě jeden, který je jen-- dobře, I can-- je to vlastně trochu složitější, ale to bude jen vzít třídu každého sloupce duhovky datové sady. Takže to bude to, co každý z nich ukáže sloupce jsou, pokud jde o jejich typu. Takže kališní lístek délka je číselné, kališní lístek šířka je číselný. Všechny tyto hodnoty jsou pouze číselné protože si můžete říct, z těchto údajů struktury se jedná o všichni budeme numerické. A sloupec druhů bude faktorem. Takže za normálních okolností, by si myslíte, že to je jako řetězec znaků. Ale pokud si prostě irisSpecies, a pak budu dělat hlavu 5, a to bude pro tisk out prvních pěti hodnot. A pak upozornění Tato úroveň. Tak to je saying-- je to způsob, jak R: mít kategorické proměnné. Takže místo toho jen mající řetězce znaků, to má úrovně se stanoví zejména který tyto věci jsou. Řekněme, že irisSpecies 1. Takže to, co chcete dělat, tady je, že jsem podmnožin k tomuto druhu sloupce. Tak to trvá Druh sloupec a poté indexuje získat první prvek. Tak to by vám měl dát setosa. A to vám tady také dává úrovně. Takže si můžete také porovnat to znak setosa a to nebude být pravda, protože jeden je jiného typu, než druhý. Nebo Myslím, že je to pravda, protože R je inteligentnější než to. A to vypadá na to, a pak se říká, možná to je to, co chcete. Takže to bude říkat charakter string setosa je stejný, jako je tento. A pak podobně, můžete také jen chytit ty jako tak dále. Takže to je jen nějaký druh rychlé příkazy datové sady. Tak tady je to nějaký průzkum dat. Tak to je trochu více podílí se na analýze dat. A to je převzat z některých bootcamp do výzkumu v Berkeley. Tak knihovna cizí. Takže jdu se načte knihovna, která se nazývá cizí. Tak to bude, aby mi read.dta tak předpokládat, že mám tento soubor dat. Tento je uložen v aktuální pracovní adresář můj konzole. Takže pojďme se podívat, co právě pracovní adresář. Tak tady je moje pracovní adresář. A čtení dat DOT, tento věc, říká tento soubor je umístěn ve složce dat Tento aktuální pracovní adresář. A read.dta to není výchozí příkaz. Myslím, že načtení jsem to v již. IEI předpokládal jsem nahrál to v již. Ale stejně tak read.dta nebude být výchozí příkaz. A to je důvod, proč budete mít načíst v této knihovně package-- Tento balíček nazývaný cizí. A v případě, že nemáte balíček, myslím, že zahraniční je jedním z vestavěných ty. V opačném případě můžete také dělat install.packages a to nainstalovat balíček. A to vám dá R. Uh, no. A pak jsem jen tak přestat to proto, že už si to. Ale to, co je opravdu hezké o R je to, že správu balíků Systém je velmi elegantní. Vzhledem k tomu, že se bude ukládat vše opravdu pěkně pro vás. Takže v tomto případě, že to bude ukládat se v Věřím, že tato knihovna tady. Takže kdykoli budete chtít, aby instalovat nové balíčky, je to stejně jednoduché jako dělá install.packages a R bude řídit všechny balíčky pro vás. Takže si nemusíte dělat něco Python, kde máte externí balíčku manažeři jako papír Anaconda, kde jste doing-- instalaci balíčky mimo Python a pak se je pokusíte spustit sami. Tak tohle je opravdu příjemný způsob, jak. A install.packages vyžaduje připojení k internetu. Trvá to ze serveru a úložiště, které sbírá všechny balíky se nazývá CRAN. A můžete určit, jaký typ zrcadla Chcete-li stáhnout balíčky z. Tak tady beru tento soubor dat. Já jsem to četl v tuto funkci používat. Tak nech mě jít dopředu a udělat to. Takže předpokládejme, že máte tento soubor dat a máte naprosto ponětí, co to je. A to vlastně přijde poměrně často v průmyslu kde stačí mít tyto tuny a tuny chaotický věcí a jsou neuvěřitelně unlabeled. Tak tady to mám datový soubor, a já nevím, co to je tak, že jsem prostě ukazuje na to podívat. Takže budu dělat po hlavě. Tak jsem zkontrolovat prvních šest sloupy, co to je datová sada. Tak to je stav, pres04, a poté Všechny tyto různé druh sloupců. A co je zajímavé tady, myslím, že jste to vy by se předpokládat, že to vypadá jako nějaký druh voleb. A myslím, že právě od při pohledu na souboru jméno to je nějaký druh kolekce údajů o kandidáty nebo voličů Kdo hlasoval pro konkrétní prezidenty nebo kandidáti prezident pro volby 2004. Takže tady je hodnoty 1, 2 tak jeden způsob ukládání uchazeči prezident jsou jejich jména. V tomto případě to vypadá, že jsou to jen celočíselné hodnoty. Takže 2004, to byl Bush proti Kerry věřím. A teď, řekněme, že prostě nevím zda 1 odpovídá Bush nebo 2, odpovídá Kerry nebo a tak dále a tak dále, že jo? A to je, jen pro mě, poměrně častým problémem. Takže to, co můžete udělat v tomto případě? Takže pojďme zkontrolovat všechny tyto další věci. stát, já jsem za předpokladu, že tato pochází z různých států. partyid, příjem. Pojďme se podívat na partyid. Takže možná jedna věc, kterou můžete udělat, je podívejte se na každé z pozorování které mají partyid republikánských nebo demokrat, nebo tak něco. Tak pojďme se jen podívat na to, co je partyid. Takže budu brát dat, a pak jdu to udělat znak dolaru subjekt, který jsem dělal dříve a to bude podmnožiny do tohoto sloupce. A pak budu na hlavu to v 20, jen aby viděl, jak to vypadá. Tak to je jen banda agentur. Takže jinými slovy, máte Chybí údaje o tyto lidi. Ale také všimnout dat partyid je faktor tak to vám dává různé kategorie. Takže jinými slovy, partyid může trvat Demokrat, republikán, Independent, nebo něco jiného. Tak pojďme do toho a pojďme zjistit, které z nich je-- oh, OK. Takže jdu do podmnožiny k partyid a poté podívejte se na ty, které jsou Demokrat, například. Tohle vám Boolean, obrovský Boolean o TRUEs a FALSEs. A teď, řekněme, že chci na podmnožiny na tyto lidi. Takže to bude trvat můj DAT a podmnožina se podle toho, co pozorování mají partyid roven rovná demokrat. A to je poměrně dlouhá, neboť tam je tak mnoho z nich. Takže teď, budu na hlavu to v 20. A jak zjistíte, rovná se rovná Je zajímavé, že jsi already-- jste také, včetně NAS. Takže v tomto případě se stále nemůže dostat jakékoli informace, protože teď máte NAS a vy jen chcete zjistit, které z pozorování odpovídají Democrat a ne ty chybějící hodnoty sami. Tak jak se vám zbavit se těchto agentur? Tak tady jsem jen pomocí zvýąení na mé kurzoru a pak říká pohybující se kolem. A pak tady já jsem prostě jít říkat is.na datpartyid. Tak to i a bude trvat dvě různé logické vektorů a říkají, že to bude TRUE a FALSE např. Takže to bude dělat tuto komponentu-moudrý. Tak tady říkám zavádění datový rámec, podmnožiny na ty, které odpovídají demokrat, a odstranit některé z nich, které nejsou NA. Tak tohle by měla will-- dát něco. Podívejme se is.na. Zkusme is.na datpartyid. A to by mělo dát you-- sorry-- jen logický vektor. A pak, protože je to tak dlouho, Chystám se podmnožiny do 20 ° C. OK. Tak by to mělo fungovat. A tohle bude také TRUEs. Aha, takže moje chyba je, že jsem se nezlobte použití C ++ a R zaměnitelně tak Dělám tato chyba po celou dobu. A operátor ve skutečnosti ten, který chcete. Nechcete používat dva ampersandy, jen jeden člověk. OK. Tak pojďme se podívat. Tak jsme podmnožina se partyid kde jsou demokrat a nejsou to chybějící hodnoty. A teď se pojďme podívat na ty, které oni volili. Takže to vypadá, že většina z nich hlasovalo pro 1. Takže budu pokračovat a říkají, že je Kerry. A podobně, můžete také jít do Republican a doufejme, že to by vám měl dát 2. Je to jen banda různých sloupců. A skutečně, to je 2. Takže partyid všechny republikán, většina z nich hlasují pro 2 osoby. Tak vypadá to, že, jen při pohledu na to, Republikánská bude very-- nebo partyid bude velmi významným faktorem při určování který kandidát jsou bude hlasovat pro. A je to samozřejmě platí obecně. A to odpovídá vašim intuice, samozřejmě. Takže to vypadá, jako bych málo času, takže dovolte mi, abych měla pokračovat a ukázat několik rychlých snímků. Tak tady je něco, co je trochu více komplikované s vizualizací. Takže v tomto případě se jedná o velmi Jednoduchá analýza jen kontrolovat, co prezident '04 je. Takže v tomto případě je, řekněme, že chtěl na tuto otázku odpovědět. Takže předpokládám, že jsme chtěli znát hlasování chování v 2004 prezident voleb a jak se to liší podle rasy. Takže nejen že chcete zobrazit chování hlasování, ale chcete podmnožinu každého závod a trochu shrnout, že. A můžete jen říct o této složité značení že je to druh stále mlhavé. Takže jeden z více pokročilý výzkum balíčky, které také druh nedávný se nazývá dplyr. Tak to je to jediné správné tady. A ggg-- ggplot2 je jen pěkná způsob, jak dělat lepší vizualizace než vestavěné v jednom. Takže jdu nahrát tyto dvě knihovny. A pak, já jdu vpřed a spuštění tohoto příkazu. Stačí si jen léčit to jako černá skříňka. Co se to děje, je, že tato potrubí Provozovatel je kolem v tomto argumentu na zde. Takže říkám Skupinu dat závod a pak prezidentem 04. A pak to všechno ostatní příkazy filtrování a poté shrnující kde dělám počet a pak jsem ho vykreslování zde. OK v pohodě. Tak pojďme do toho a vidět, jak to vypadá. Takže to, co se tu děje, je, že jsem se jen vynesou každý ze závodů a pak ty, které oni volili. A tito dva různé hodnoty odpovídají 2 a 1. Chcete-li, aby se více Elegantní, můžete také stačí zadat, že 2 je Kerry-- nebo 2 je Bush, a pak 1 Kerry. A také můžete mít že v legendě. A také můžete rozdělit tyto sloupcové grafy. Vzhledem k tomu, jedna věc je že, pokud si všimnete, to není velmi snadno identifikovat který z těchto dvou hodnot je větší. Takže jedna věc, kterou byste chtěli udělat, je tento modrá oblast a jen přesunout ji, takže zde Můžete porovnat tyto dva vedle sebe. A myslím, že je to něco, co jsem nemají čas udělat právě teď, ale to je také velmi snadné. Můžete se jen dívat na manuálové stránky ggplot. Takže si můžete prostě ggplot jako to a přečtěte si do této manuálové stránce. Tak mi dovolte jen rychle ukázat nějaké zajímavé věci. Pojďme dál a jít to-- jen aplikace strojového učení. Řekněme, že máme tyto tři balíčky takže budu nahrát je do. Tak to prostě vytiskne se na některé informace poté, co jsem vložen věci. Takže já říkám read.csv, Tento datový soubor, a teď Chystám se jít dopředu a podívat se a vidět, co je uvnitř tohoto souboru údajů. Takže prvních 20 pozorování. Tak jsem prostě x1, x2, a Y. Tak to Zdá se, jako banda těchto hodnot jsou od asi 20 až 80 nebo tak. A pak podobně pro X2 a poté Tento Y se zdá být štítky 0 a 1. Chcete-li ověřit, mohu prostě shrnutí dat X1. A pak podobně pro Všechny tyto další sloupce. Takže shrnutí je rychlý způsob, jak jen ukáže vám rychlé hodnoty. Oh, promiň. Ten by měl být Y. Takže v tomto případě dává kvantily, mediány, maxes stejně. V tomto případě, dataY, můžete vidět že je to jen bude 0 a 1. Také střední říká 0.6, prostě znamená, že ji Zdá se, jako bych mít více než 1s 0s. Tak nech mě jít dopředu a přehlídka vám, jak to vypadá. Takže jsem prostě jít na plot to. Podívejme se, jak odstranit to. Oh OK. OK. Tak tohle je to, co to vypadá. Takže to vypadá, že žluté I uvedené as 0, a pak červenou jsem určen jako 1s. Tak tady to vypadá štítek body a to Zdá se, jako bys chtěl nějaký druh clusterů na toto téma. A dovolte mi, abych prostě jít dopředu a přehlídka jste některé z těchto vestavěných funkcí. Takže tady je lm. Tak to se jen snaží aby se vešly do linky to. Takže to, co je nejlepší způsob, jak že jsem se vejde linie, jako že bude nejlépe oddělí Tento druh clusterů. A v ideálním případě, stačí vidět že jsem spustit všechny tyto příkazy a pak, já jdu vpřed a přidejte řádek. Takže se to zdá jako nejlepší odhad. Je to brát nejlepší ten, který minimalizuje chyba ve snaze, aby se vešly tento řádek. Je zřejmé, že tento druh vypadá dobrý, ale není to nejlepší. A lineární modely, v Obecně platí, že se bude opravdu skvělé pro teorii a tak nějak stavebních základů stroje učení. Ale v praxi, budete Chcete udělat něco obecnějšího. Takže si můžete jen zkusit spustit něco jako neuronové sítě. Tyto věci jsou čím dál častější. A prostě fungují fantasticky pro velké soubory dat. Takže v tomto případě, my jen have-- Pojďme see-- máme nrow. Takže nrow je jen říkám, počet řádků. Takže v tomto případě, jsem mají 100 pozorování. Tak nech mě jít dopředu a jak neuronové sítě. Tak tohle je opravdu pěkný proto, že jsem si jen říct nnet a pak jsem regresi Y. Takže Y je to, že sloupec. A pak se to regresi na další dvě proměnné. Tak tohle je kratší notace pro X1 a X2. Tak pojďme do toho a spustit to. Oh, promiň. Musím běžet celou tuhle věc. A to je právě tiskne notace na tom, jak rychle, nebo ne rychle se sblížil. Takže to vypadá, že se sbíhají. Tak nech mě jít dopředu a tisk out, jak to vypadá. Můžete tady je obrázek, a tady je obrys ukazuje, jak dobře zapadá. A to je jen-- můžete vidět to, že je to velmi, velmi pěkné. Mohlo by to být i overfitting, ale můžete si také za toto s ostatními techniky, jako je cross-validace. A tito jsou také postaveny v R. A dovolte mi, abych vám ukázat podporovat Vector Machine. To je další opravdu obyčejný technika v strojového učení. To je velmi podobný lineární modely, ale používá, co se nazývá metoda jádro. A podívejme se, jak dobře, že dělá. Takže toto je velmi podobný tomu, jak dobře neuronová síť provádí, ale je to mnohem hladší. A je to založeno mimo z what-- jak SVMs práce. Tak to je jen velmi rychlý přehled některých z vestavěných funkcí, které můžete udělat a také některé z průzkumu dat. Takže mě prostě jít dopředu a vrátit se do snímků. Tak zřejmé, že toto je ne velmi komplexní. A to je opravdu jen ukázka ukáže vám, co můžete opravdu v R. Takže pokud byste stejně jako se dozvědět více, zde jsou banda různých zdrojů. Takže pokud jste rádi učebnice nebo jste jen rád čtení věci on-line, pak je to fantastický jeden by Hadley Wickham, který také vytvořil všechny tyto opravdu cool balíčky. Pokud jste rádi videa, pak Berkeley má úžasné bootcamp to je several-- je to trochu dlouhé. A to vás naučí téměř všechno, co jste chtěli vědět o R. A podobně je tu Codeacademy a všechny tyto jiný druh na interaktivní webové stránky. Oni jsou také stále common-- běžnější. Tak to je velmi podobný Codeacademy. A konečně, pokud jste právě Chcete společenství, a pomoci, to jsou banda věci, které můžete jít. Je zřejmé, že stále používat e-mailové konference, právě jako téměř každý druhý programovací jazyk komunity. A #rstats, to je naše komunita Twitter. To je vlastně docela běžné. A pak uživatel! Je jen naše konference. A pak, samozřejmě, můžete použít všechny tyto jiné Q & A věci, jako přetečení zásobníku, Google, a pak GitHub. Protože většina z těchto balíčků a mnoho komunity bude soustředěn kolem rozvojových kód, protože je to open source. A to je jen opravdu hezky na GitHub. A konečně, můžete se mě, jestli kontaktovat stačí nějaké rychlé otázky. Takže si mě najít na Twitteru zde, moje webové stránky, a to jen můj e-mail. Tak doufejme, že to something-- jen krátký teaser čeho R je opravdu schopen dělat. A doufejme, že jste právě podívejte se na tyto tři odkazy a uvidíte, co můžete udělat víc. A já myslím, že je to jen o tom. Díky. [APPLAUSE]