1 00:00:00,000 --> 00:00:00,750 2 00:00:00,750 --> 00:00:09,800 >> [Hudba hrát] 3 00:00:09,800 --> 00:00:13,014 4 00:00:13,014 --> 00:00:13,680 DUSTIN TRAN: Ahoj. 5 00:00:13,680 --> 00:00:14,980 Jmenuji se Dustin. 6 00:00:14,980 --> 00:00:18,419 Takže budu prezentovat Analýza dat v R. 7 00:00:18,419 --> 00:00:19,710 Jen něco málo o sobě. 8 00:00:19,710 --> 00:00:24,320 Já jsem v současné době studentem strojírenství a aplikovaných věd. 9 00:00:24,320 --> 00:00:28,330 Studuji průnik strojové učení a statistiky 10 00:00:28,330 --> 00:00:31,375 tak Analýza dat v R je Opravdu zásadní pro to, co 11 00:00:31,375 --> 00:00:33,790 Já na denní bázi. 12 00:00:33,790 --> 00:00:35,710 >> A R je zvláště dobré pro analýzu dat 13 00:00:35,710 --> 00:00:39,310 protože je to velmi dobré pro prototypování. 14 00:00:39,310 --> 00:00:43,590 A obvykle, když děláte nějaký analýzy dat, hodně problémů 15 00:00:43,590 --> 00:00:44,920 budou kognitivní. 16 00:00:44,920 --> 00:00:48,700 A tak si jen chcete mít nějaký opravdu dobrý jazyk, který 17 00:00:48,700 --> 00:00:53,770 je jen dobře pro to vestavěných funkcí, na rozdíl 18 00:00:53,770 --> 00:00:57,430 se museli vypořádat s nízkými věcmi úrovně. 19 00:00:57,430 --> 00:01:01,040 Takže na začátku, já jsem prostě jít představit, co je R, by proto 20 00:01:01,040 --> 00:01:04,540 Chcete-li jej použít, a pak přejít do nějaké demo, 21 00:01:04,540 --> 00:01:07,060 a jen dál od toho. 22 00:01:07,060 --> 00:01:08,150 >> Takže to, co je R? 23 00:01:08,150 --> 00:01:11,180 R je jen jazyk se vyvíjel pro statistické výpočty 24 00:01:11,180 --> 00:01:12,450 a vizualizace. 25 00:01:12,450 --> 00:01:16,000 Takže to, co to znamená, že je to velmi výborný jazyk 26 00:01:16,000 --> 00:01:22,400 pro nějaký druh věc, která se zabývá nejistota nebo vizualizace dat. 27 00:01:22,400 --> 00:01:24,850 Takže budete mít všechny tyto rozdělení pravděpodobnosti. 28 00:01:24,850 --> 00:01:27,140 Tam se bude vestavěných funkcí. 29 00:01:27,140 --> 00:01:31,650 Budete mít také vynikající vykreslování balíčky. 30 00:01:31,650 --> 00:01:34,110 >> Python je další konkurenční jazyka pro data. 31 00:01:34,110 --> 00:01:40,020 A ještě jedna věc, kterou jsem si, že R je mnohem lepší je vizualizace. 32 00:01:40,020 --> 00:01:45,200 Takže to, co uvidíte v ukázce, jak dobře, je jen velmi intuitivní jazyk 33 00:01:45,200 --> 00:01:48,050 že prostě funguje velmi dobře. 34 00:01:48,050 --> 00:01:53,140 To je také zdarma a open source, as Je nějaký jiný dobrý jazyk, myslím. 35 00:01:53,140 --> 00:01:55,440 >> A tady, banda jen klíčová slova hodil na vás. 36 00:01:55,440 --> 00:02:00,450 Je to dynamický, což znamená, pokud máte Specifický typ přiřazen k objektu 37 00:02:00,450 --> 00:02:02,025 než to bude jen to změnit za běhu. 38 00:02:02,025 --> 00:02:05,670 Je to líný, takže je to chytře Jak to dělá výpočty. 39 00:02:05,670 --> 00:02:12,250 Funkční což znamená, že může skutečně fungovat založený off funkcí tak anything-- 40 00:02:12,250 --> 00:02:16,910 nějaký druh manipulace jste dělá, bude založen vypnutí. 41 00:02:16,910 --> 00:02:20,162 >> Tak binární operátory, například, jsou prostě neodmyslitelně funkce. 42 00:02:20,162 --> 00:02:21,870 A všechno, co budete dělat, je 43 00:02:21,870 --> 00:02:24,690 bude utéct funkce sám. 44 00:02:24,690 --> 00:02:27,140 A pak objektově orientované stejně. 45 00:02:27,140 --> 00:02:30,930 >> Takže tady je XKCD spiknutí. 46 00:02:30,930 --> 00:02:34,350 Nejen proto, že mám pocit, jako XKCD je základem jakéhokoliv druhu 47 00:02:34,350 --> 00:02:37,770 prezentace, ale proto, že Mám pocit, že to opravdu 48 00:02:37,770 --> 00:02:42,160 kladiva upozorňuje, že mnoho Doba, kdy děláte nějaký údajů 49 00:02:42,160 --> 00:02:46,570 analýza, není problém tak moc, jak rychle běží, 50 00:02:46,570 --> 00:02:49,850 ale jak dlouho to bude vás programovat úkol. 51 00:02:49,850 --> 00:02:54,112 Tak tady je právě analyzuje, zda Strategie a nebo b je účinnější. 52 00:02:54,112 --> 00:02:55,820 To bude něco, co jste 53 00:02:55,820 --> 00:02:58,290 bude zabývat hodně se v Druh jazyky low-level 54 00:02:58,290 --> 00:03:03,440 kde máte co do činění s Seg poruch, alokace paměti, inicializace, 55 00:03:03,440 --> 00:03:05,270 i zhotovení vestavěných funkcí. 56 00:03:05,270 --> 00:03:09,920 A tohle vše je nakládáno velmi, velmi elegantně v R. 57 00:03:09,920 --> 00:03:12,839 >> Takže jen ke kladivu to bod, největší překážkou 58 00:03:12,839 --> 00:03:13,880 bude poznávací. 59 00:03:13,880 --> 00:03:17,341 Takže analýza dat je velmi těžké problém. 60 00:03:17,341 --> 00:03:19,340 Ať už děláte strojové učení nebo jste 61 00:03:19,340 --> 00:03:22,550 dělá jen nějaký druh základní průzkum dat, 62 00:03:22,550 --> 00:03:25,290 nechcete mít aby dokument 63 00:03:25,290 --> 00:03:27,440 a pak kompilovat něco, co při každém 64 00:03:27,440 --> 00:03:31,010 Chcete vidět, co sloupec vypadá, jaké konkrétní položky v matrici 65 00:03:31,010 --> 00:03:32,195 vypadá. 66 00:03:32,195 --> 00:03:34,320 Takže si jen chcete mít některé opravdu pěkné rozhraní 67 00:03:34,320 --> 00:03:37,740 můžete spustit jednoduchou funkci že indexy na cokoliv 68 00:03:37,740 --> 00:03:41,870 chcete a jen spustit odtud. 69 00:03:41,870 --> 00:03:44,190 A budete potřebovat doménu konkrétní jazyky pro to. 70 00:03:44,190 --> 00:03:51,750 A R bude opravdu pomůže definovat problém a vyřešit tímto způsobem. 71 00:03:51,750 --> 00:03:58,690 >> Takže tady je graf ukazující programování Obliba R, jak je to pryč v průběhu času. 72 00:03:58,690 --> 00:04:04,060 Takže jak vidíte, stejně jako 2013, nebo tak to prostě vyhodit do povětří ohromně. 73 00:04:04,060 --> 00:04:09,570 A to bylo jen proto, že z toho obrovský trend v odvětví technologií 74 00:04:09,570 --> 00:04:10,590 o zpracování velkých objemů dat. 75 00:04:10,590 --> 00:04:13,010 Také, a to nejen technologie průmysl, ale ve skutečnosti 76 00:04:13,010 --> 00:04:16,490 jakýkoli průmysl that-- protože Mnoho průmyslových odvětví 77 00:04:16,490 --> 00:04:20,589 jsou trochu zásadní pro se snaží tyto problémy řešit. 78 00:04:20,589 --> 00:04:24,590 A obvykle, můžete mít nějaké dobré způsob měření těchto problémů 79 00:04:24,590 --> 00:04:29,720 nebo je dokonce definování nebo řešení je pomocí dat. 80 00:04:29,720 --> 00:04:35,430 Takže myslím, že teď je R 11. nejpopulárnější jazyk na TIOBE 81 00:04:35,430 --> 00:04:38,200 a to bylo od té doby roste. 82 00:04:38,200 --> 00:04:40,740 83 00:04:40,740 --> 00:04:43,080 >> Tak tady je to trochu víc rysy R. má 84 00:04:43,080 --> 00:04:46,900 enormní počet balení a pro všechny tyto různé věci. 85 00:04:46,900 --> 00:04:52,470 Takže kdykoli budete mít Určitým problémem, většina 86 00:04:52,470 --> 00:04:55,060 čas R bude mít že funkce pro vás. 87 00:04:55,060 --> 00:04:58,520 Takže jestli chcete budovat jakési stroje 88 00:04:58,520 --> 00:05:02,770 učení algoritmus nazvaný Random Forest nebo rozhodovací stromy, 89 00:05:02,770 --> 00:05:07,530 nebo dokonce se snaží vzít průměr funkcí nebo některý z těchto věcí, 90 00:05:07,530 --> 00:05:10,000 R bude mít to. 91 00:05:10,000 --> 00:05:14,190 >> A pokud si budete záleží optimalizace, jedna věc, která je společná 92 00:05:14,190 --> 00:05:17,430 se, že poté, co jste udělal prototypů nějaký druh jazyka na vysoké úrovni, 93 00:05:17,430 --> 00:05:19,810 vám bude hodit, že in-- budete jen port, přes 94 00:05:19,810 --> 00:05:21,550 do určité jazyk nízké úrovně. 95 00:05:21,550 --> 00:05:26,090 Co je dobré o výzkumu je, že jakmile jste udělal prototyping, můžete spustit C ++, 96 00:05:26,090 --> 00:05:29,510 nebo Fortran, nebo některý z nich ty nižší úrovně přímo do R. 97 00:05:29,510 --> 00:05:32,320 Tak to je jedna opravdu zajímavé funkce o R, 98 00:05:32,320 --> 00:05:35,930 pokud vám opravdu záleží optimalizace bod. 99 00:05:35,930 --> 00:05:39,490 >> A to je také velmi dobrý pro webové vizualizace. 100 00:05:39,490 --> 00:05:43,530 Tak D3.js, například, je Myslím, že další seminář 101 00:05:43,530 --> 00:05:45,130 že jsme představili dnes. 102 00:05:45,130 --> 00:05:48,510 A to je opravdu úžasné pro dělá interaktivní vizualizace. 103 00:05:48,510 --> 00:05:54,460 A D3.js předpokládá, že máte nějaký druh údajů, které budou vyneseny 104 00:05:54,460 --> 00:05:58,080 a R je skvělý způsob, jak být schopen dělat analýza dat, než ji exportovat 105 00:05:58,080 --> 00:06:04,220 se k D3.js, nebo dokonce jen spustit D3.js příkazy do R sám, 106 00:06:04,220 --> 00:06:08,240 stejně jako všechny tyto další knihovny také. 107 00:06:08,240 --> 00:06:13,041 >> Takže to byl právě zavedení co je R a proč ho mohl použít. 108 00:06:13,041 --> 00:06:14,790 Tak doufejme, že jsem přesvědčen o tom, něco ti 109 00:06:14,790 --> 00:06:18,460 asi jen se snaží zjistit, co to je. 110 00:06:18,460 --> 00:06:23,930 Takže budu pokračovat a projít Některé základy o R objektů 111 00:06:23,930 --> 00:06:26,150 a to, co opravdu můžete udělat. 112 00:06:26,150 --> 00:06:29,690 >> Takže tady je jen banda příkazů matematických. 113 00:06:29,690 --> 00:06:35,000 Takže říkat you're-- chcete vytvořit Jazyk sami a chcete jen 114 00:06:35,000 --> 00:06:38,080 mít spoustu různých nástrojů. 115 00:06:38,080 --> 00:06:42,520 Jakýkoliv druh provozu si myslíte, že byste chci, je do značné míry bude v R. 116 00:06:42,520 --> 00:06:44,150 >> Takže tady je 2 plus 2. 117 00:06:44,150 --> 00:06:46,090 Tady je 2 krát pi. 118 00:06:46,090 --> 00:06:51,870 R má spoustu vestavěných konstant že budete často používat jako Pi, e. 119 00:06:51,870 --> 00:06:56,230 >> A pak, tady je 7 a runif, takže runif z 1. 120 00:06:56,230 --> 00:07:02,450 To je funkce, která je generuje jeden náhodný jednotný od 0 do 1. 121 00:07:02,450 --> 00:07:04,400 A pak je tu 3 k síle 4. 122 00:07:04,400 --> 00:07:06,430 Je tu druhé odmocniny. 123 00:07:06,430 --> 00:07:07,270 >> Tam je log. 124 00:07:07,270 --> 00:07:14,500 Takže log bude dělat základnu exponenciální sama o sobě. 125 00:07:14,500 --> 00:07:18,337 A pak, pokud zadáte základnu, pak si můžete dělat, co chcete, základna. 126 00:07:18,337 --> 00:07:19,920 A pak tady jsou některé další příkazy. 127 00:07:19,920 --> 00:07:22,180 Takže máte 23 mod 2. 128 00:07:22,180 --> 00:07:24,910 Pak máte zbytek. 129 00:07:24,910 --> 00:07:27,110 Pak máte vědecký notace pokud zároveň 130 00:07:27,110 --> 00:07:34,060 chcete udělat jen více a složitější věci. 131 00:07:34,060 --> 00:07:37,320 >> Takže tady je úkol. 132 00:07:37,320 --> 00:07:40,830 Takže typické úkoly v R se provádí s šipkou 133 00:07:40,830 --> 00:07:43,440 tak je to méně než, a pak pomlčka. 134 00:07:43,440 --> 00:07:47,250 Tak tady jsem jen přidělování 3 k proměnné val. 135 00:07:47,250 --> 00:07:50,160 >> A pak jsem tisk val a pak se vytiskne tři. 136 00:07:50,160 --> 00:07:53,920 Ve výchozím nastavení v R interpret, vytiskne, co pro vás 137 00:07:53,920 --> 00:07:57,280 takže nemusíte zadat tisk val kdykoli budete chtít něco vytisknout. 138 00:07:57,280 --> 00:08:00,200 Stačí si jen udělat val a pak to udělá za vás. 139 00:08:00,200 --> 00:08:04,380 >> Také můžete použít rovná technicky jako operátor přiřazení. 140 00:08:04,380 --> 00:08:07,190 K dispozici jsou malé nuance Mezi pomocí šipky 141 00:08:07,190 --> 00:08:10,730 Provozovatel a rovná se pohon pro úkoly. 142 00:08:10,730 --> 00:08:15,470 Většinou konvencí, každý bude jen používat operátor šipky. 143 00:08:15,470 --> 00:08:21,850 >> A tady, já to přiřazování šikmý zápis říká 1 dvojtečka 6. 144 00:08:21,850 --> 00:08:26,010 To vytváří vektor 1-6. 145 00:08:26,010 --> 00:08:29,350 A to opravdu pěkné, protože pak stačí přiřadit vektor Val 146 00:08:29,350 --> 00:08:34,270 a který pracuje sám. 147 00:08:34,270 --> 00:08:37,799 >> Tak to už bude z single-- velmi intuitivní údaje 148 00:08:37,799 --> 00:08:41,070 struktura jen dvojnásobek nějaký druh druhu do vektoru 149 00:08:41,070 --> 00:08:45,670 a který se bude shromažďovat všechny skalární hodnoty pro vás. 150 00:08:45,670 --> 00:08:50,770 Takže poté, co šel z skalární, vy mají předměty R, a to je vektor. 151 00:08:50,770 --> 00:08:55,610 Vektor je nějaký druh kolekce stejného typu. 152 00:08:55,610 --> 00:08:58,150 Tak tady je banda vektorů. 153 00:08:58,150 --> 00:08:59,800 >> Tak tohle je číselný. 154 00:08:59,800 --> 00:09:02,440 Číselný je R způsob, jak říct double. 155 00:09:02,440 --> 00:09:07,390 A tak ve výchozím nastavení, jakýkoli Číslo bude double. 156 00:09:07,390 --> 00:09:13,150 >> Takže pokud máte c 1,1, 3, negativní 5.7, c je funkce. 157 00:09:13,150 --> 00:09:16,760 To zřetězuje všechny tři Čísla do vektoru. 158 00:09:16,760 --> 00:09:19,619 A to bude be-- takže pokud zjistíte, 3 sama o sobě, 159 00:09:19,619 --> 00:09:21,910 Normálně by se předpokládat, že to je jako celé číslo, 160 00:09:21,910 --> 00:09:25,050 ale proto, že všech vektorů jsou stejného typu, 161 00:09:25,050 --> 00:09:28,660 to je vektor čtyřher nebo číselný v tomto případě. 162 00:09:28,660 --> 00:09:34,920 >> RNorm je funkce, která generuje Standardní normální variables-- 163 00:09:34,920 --> 00:09:36,700 nebo standardní normální hodnoty. 164 00:09:36,700 --> 00:09:38,360 A já s uvedením dva z nich. 165 00:09:38,360 --> 00:09:43,840 Takže dělám RNorm 2, přiřazování, že pro vývojáři, a pak jsem tisk DEVS. 166 00:09:43,840 --> 00:09:47,350 Tak to jsou jen dvě náhodné normální hodnoty. 167 00:09:47,350 --> 00:09:50,060 >> A pak Ints, pokud nemáte vám záleží na celá čísla. 168 00:09:50,060 --> 00:09:54,650 Takže je to jen o paměti alokace a ukládání velikost paměti. 169 00:09:54,650 --> 00:10:01,460 Takže budete muset připojit Vaše čísla od hlavního města L. 170 00:10:01,460 --> 00:10:04,170 >> Obecně platí, že se jedná Historické notace R: 171 00:10:04,170 --> 00:10:06,940 za něco, co nazývá long integer. 172 00:10:06,940 --> 00:10:09,880 Takže většinu času, budete se zabývají zdvojnásobí. 173 00:10:09,880 --> 00:10:15,180 A pokud jste někdy bude později na optimalizaci kódu, 174 00:10:15,180 --> 00:10:18,110 stačí přidat tyto L's později nebo v jeho průběhu 175 00:10:18,110 --> 00:10:22,280 pokud jste jako precognitive o tom, co budete dělat tyto proměnné. 176 00:10:22,280 --> 00:10:25,340 177 00:10:25,340 --> 00:10:26,890 >> Takže tady je znak vektor. 178 00:10:26,890 --> 00:10:31,440 Takže, ještě jednou, já jsem zřetězení Tři řetězce tentokrát. 179 00:10:31,440 --> 00:10:36,230 Všimněte si, že dvojité řetězce a Jednotlivé řetězce jsou stejné v R. 180 00:10:36,230 --> 00:10:41,000 Tak jsem se Arthur a Marvin, a tak když jsem tisku to, všichni z nich 181 00:10:41,000 --> 00:10:43,210 ukážeme dvojité řetězce. 182 00:10:43,210 --> 00:10:45,880 A pokud chcete také zahrnout jedno- nebo řetězec 183 00:10:45,880 --> 00:10:50,070 ve své postavy, pak můžete buď střídají struny. 184 00:10:50,070 --> 00:10:53,540 >> Tak marvin je pro druhý prvek, to je 185 00:10:53,540 --> 00:10:56,380 tě show-- Jen mají dvojité řetězce 186 00:10:56,380 --> 00:10:59,050 a pak jeden řetězec Tak tohle je střídavý. 187 00:10:59,050 --> 00:11:04,040 V opačném případě, pokud chcete použít double operátor řetězec ve dvoulůžkovém řetězci 188 00:11:04,040 --> 00:11:07,090 když jste ji prohlásí, pak stačí použít operátor uniknout. 189 00:11:07,090 --> 00:11:10,600 Takže si udělat zpětné lomítko dvojité řetězec. 190 00:11:10,600 --> 00:11:13,330 >> A konečně jsme také mají logické vektorů. 191 00:11:13,330 --> 00:11:15,890 Tak logical-- tak TRUE a FALSE, a oni jsou 192 00:11:15,890 --> 00:11:18,880 Bude všechna písmena. 193 00:11:18,880 --> 00:11:22,370 A pak ještě jednou, já jsem zřetězení je a pak jejich přiřazení bools. 194 00:11:22,370 --> 00:11:24,590 Takže bools se chystá ukázat ty TRUE, FALSE, a TRUE. 195 00:11:24,590 --> 00:11:28,280 196 00:11:28,280 --> 00:11:31,620 >> Takže tady je vectorized indexování. 197 00:11:31,620 --> 00:11:34,870 Takže na začátku jsem beru na function-- 198 00:11:34,870 --> 00:11:39,230 tomu se říká sequence-- Sekvence od 2 do 12. 199 00:11:39,230 --> 00:11:42,490 A já beru sekvenci o 2. 200 00:11:42,490 --> 00:11:46,660 Takže to bude dělat 2, 4, 6, 8, 10 a 12. 201 00:11:46,660 --> 00:11:50,080 A pak, já jsem indexování získat třetí prvek. 202 00:11:50,080 --> 00:11:55,770 >> Takže jedna věc je mít na paměti, je že R indexy od 1. 203 00:11:55,770 --> 00:12:00,550 Takže odstupech 3 se chystá dát ty třetí element. 204 00:12:00,550 --> 00:12:04,580 To je trochu odlišný od jiných jazyků, kde se začíná od nuly. 205 00:12:04,580 --> 00:12:09,780 Takže v C nebo C ++, například, že jste dostane čtvrtý prvek. 206 00:12:09,780 --> 00:12:13,280 >> A tady je vals 3-5. 207 00:12:13,280 --> 00:12:16,030 Takže jedna věc, která je opravdu cool je, že vás 208 00:12:16,030 --> 00:12:20,410 může vytvářet dočasné proměnné uvnitř a pak stačí použít je na čase. 209 00:12:20,410 --> 00:12:21,960 Takže zde je 3 až 5. 210 00:12:21,960 --> 00:12:25,070 Takže jsem generování vektor 3, 4, a 5 a poté 211 00:12:25,070 --> 00:12:29,700 Jsem indexování dostat třetinu, Čtvrtý a pátý prvky. 212 00:12:29,700 --> 00:12:32,280 >> Takže podobně, můžete abstract to prostě dělat 213 00:12:32,280 --> 00:12:35,280 nějaký druh vektoru že vám dává indexování. 214 00:12:35,280 --> 00:12:40,050 Takže tady je Vals a pak První, třetí a šestý prvky. 215 00:12:40,050 --> 00:12:42,800 A pak, pokud chcete dělat doplněk, 216 00:12:42,800 --> 00:12:45,210 takže stačí udělat minus poté a že bude 217 00:12:45,210 --> 00:12:48,600 vám všechno, co není první, třetí, nebo šestý prvek. 218 00:12:48,600 --> 00:12:51,590 Takže to bude 4, 8, a 10. 219 00:12:51,590 --> 00:12:54,380 >> A pokud chcete získat ještě pokročilejší, 220 00:12:54,380 --> 00:12:57,610 můžete zřetězit logických vektorů. 221 00:12:57,610 --> 00:13:05,210 Takže tento index se chystá dát vám tento Boolean vektor délky 6. 222 00:13:05,210 --> 00:13:07,280 Takže rep TRUE čárka 3. 223 00:13:07,280 --> 00:13:09,680 To se bude opakovat TRUE třikrát. 224 00:13:09,680 --> 00:13:12,900 Tak to vám dá vektor TRUE, TRUE, TRUE. 225 00:13:12,900 --> 00:13:17,470 >> rep FALSE 4-- to bude tak, aby vám vektor FALSE, FALSE, FALSE, FALSE. 226 00:13:17,470 --> 00:13:21,280 A pak c bude zřetězit tyto dvě Booleans dohromady. 227 00:13:21,280 --> 00:13:24,090 Takže budete dostat tři TRUEs a pak čtyři FALSEs. 228 00:13:24,090 --> 00:13:28,460 >> Takže, když se index Vals, že jste dostane TRUE, TRUE, TRUE. 229 00:13:28,460 --> 00:13:31,420 Takže to bude říkat ano, Chci ty tři prvky. 230 00:13:31,420 --> 00:13:33,520 A pak FALSE, FALSE, FALSE, FALSE se děje 231 00:13:33,520 --> 00:13:37,140 říci ne, nechci tyto prvky takže to nebude je vrátit. 232 00:13:37,140 --> 00:13:41,490 >> A myslím, že je to vlastně překlep zde protože to říká repeat TRUE 3 233 00:13:41,490 --> 00:13:47,990 a opakovat FALSE 4, a technicky, vás mít pouze šest prvků tak opakovat FALSE, 234 00:13:47,990 --> 00:13:50,470 to by mělo být opakovat FALSE 3. 235 00:13:50,470 --> 00:13:55,260 Myslím si, že R je také dost, jako inteligentní že pokud jste právě určit 4 tady, a pak 236 00:13:55,260 --> 00:13:56,630 nebude ani chyba ven. 237 00:13:56,630 --> 00:13:58,480 To bude jen vám tuto hodnotu. 238 00:13:58,480 --> 00:14:00,970 Tak to si prostě ignorovat skutečnost, že Čtvrtá FALSE. 239 00:14:00,970 --> 00:14:05,310 240 00:14:05,310 --> 00:14:09,270 >> Takže tady je vectorized úkol. 241 00:14:09,270 --> 00:14:15,480 Takže set.seed-- to jen nastaví osivo pro pseudonáhodných čísel. 242 00:14:15,480 --> 00:14:20,110 Takže jsem nastavit semeno do 42, což znamená, že když jsem vytvářet 243 00:14:20,110 --> 00:14:22,950 Tři náhodný normální hodnoty, a pak, pokud vás 244 00:14:22,950 --> 00:14:27,400 spustit set.seed na vlastní pěst počítač používá stejnou hodnotu 42, 245 00:14:27,400 --> 00:14:30,990 pak můžete také získat Stejné tři náhodné normály. 246 00:14:30,990 --> 00:14:33,411 >> Tak tohle je fakt dobrý reprodukovatelnosti. 247 00:14:33,411 --> 00:14:35,910 Obvykle, když děláte nějaký druh vědecké analýzy, 248 00:14:35,910 --> 00:14:37,230 budete chtít nastavit semeno. 249 00:14:37,230 --> 00:14:41,270 Tak jiní vědci mohou jen reprodukovat přesně stejný kód, který jste 250 00:14:41,270 --> 00:14:44,790 dáno tím, že budou mít přesný Stejné náhodné veličiny that-- nebo náhodné 251 00:14:44,790 --> 00:14:47,270 hodnoty, které jste si vzal ven také. 252 00:14:47,270 --> 00:14:49,870 253 00:14:49,870 --> 00:14:53,910 >> A tak vectorized přiřazení Zde se ukazuje Vals 1-2. 254 00:14:53,910 --> 00:14:59,290 Tak to trvá první dva prvky Vals a pak přiřadí 0. 255 00:14:59,290 --> 00:15:03,940 A pak se můžete také jen dělat Podobná věc se s Boolean. 256 00:15:03,940 --> 00:15:09,340 >> Takže vals není rovno 0-- to bude vám vektorový FALSE, FALSE, TRUE 257 00:15:09,340 --> 00:15:10,350 v tomto případě. 258 00:15:10,350 --> 00:15:13,770 A pak, že to bude říkat jakýkoli z těch indexů to byla pravda, 259 00:15:13,770 --> 00:15:15,270 pak to bude přiřadit, že pro 5. 260 00:15:15,270 --> 00:15:18,790 Tak to trvá třetí element tady a pak ji přiřadí 5. 261 00:15:18,790 --> 00:15:22,300 >> A to je opravdu pěkný ve srovnání s low-level jazyky 262 00:15:22,300 --> 00:15:25,560 kde budete muset použít na smyčky dělat všechny tyto věci vectorized 263 00:15:25,560 --> 00:15:30,281 protože je to jen velmi intuitivní a to je jeden one-liner. 264 00:15:30,281 --> 00:15:32,030 A co je skvělé vectorized notace 265 00:15:32,030 --> 00:15:37,020 je to, že v oblasti výzkumu, to jsou jakési zabudovaný tak, že jsou téměř stejně rychle 266 00:15:37,020 --> 00:15:42,490 jak dělá v jazyce nízké úrovně as protichůdný k tomu, že pro vedení v R 267 00:15:42,490 --> 00:15:46,317 a pak musel to udělat dynamický indexování sám. 268 00:15:46,317 --> 00:15:48,900 A že to bude pomalejší, než dělat tento druh vectorized věci 269 00:15:48,900 --> 00:15:55,950 kde to může dělat to paralelně, kde to dělá to v podstatě závitů. 270 00:15:55,950 --> 00:15:58,650 >> Tak tady je vektorových operací. 271 00:15:58,650 --> 00:16:04,920 Takže jsem generování hodnoty 1-3, přiřazení, že pro vec1, 3 až 5, vec2, 272 00:16:04,920 --> 00:16:05,950 sečíst je. 273 00:16:05,950 --> 00:16:11,490 Dodává jim komponent moudrý tak to je 1 plus 3, 2 plus 4, a tak dále. 274 00:16:11,490 --> 00:16:13,330 >> vec1 časy vec2. 275 00:16:13,330 --> 00:16:16,110 To násobí dvě hodnoty komponenty moudrý. 276 00:16:16,110 --> 00:16:21,830 Takže je to 1 krát 3, 2 krát 4, a pak 3 krát 5. 277 00:16:21,830 --> 00:16:28,250 >> A pak, podobně můžete dělat comparisons-- logické srovnání. 278 00:16:28,250 --> 00:16:33,640 Takže je to FALSE FALSE TRUE v tomto případ, protože 1 není vyšší než 3, 279 00:16:33,640 --> 00:16:35,920 2 není větší než 4. 280 00:16:35,920 --> 00:16:41,160 To je, myslím, že další překlep, 3 rozhodně není větší než 5. 281 00:16:41,160 --> 00:16:41,660 Jo. 282 00:16:41,660 --> 00:16:45,770 A tak si můžete jen udělat vše Tyto jednoduché operace 283 00:16:45,770 --> 00:16:48,350 protože jejich zděděné od samotných tříd. 284 00:16:48,350 --> 00:16:51,110 285 00:16:51,110 --> 00:16:52,580 >> Takže to byl jen vektor. 286 00:16:52,580 --> 00:16:56,530 A to je tak nějak nejzásadnější R objekt, protože daný vektor, 287 00:16:56,530 --> 00:16:59,170 si můžete postavit pokročilejší objekty. 288 00:16:59,170 --> 00:17:00,560 >> Tak tady je matice. 289 00:17:00,560 --> 00:17:05,030 To je v podstatě abstrakce o tom, co matice je sama o sobě. 290 00:17:05,030 --> 00:17:10,099 Takže v tomto případě, je to tři různé vektory, kde každý z nich je sloupec, 291 00:17:10,099 --> 00:17:12,710 nebo si můžete uvažovat protože každý z nich je řada. 292 00:17:12,710 --> 00:17:18,250 >> Takže jsem uložení matice od 1 do 9 a pak já s uvedením 3 řádky. 293 00:17:18,250 --> 00:17:23,364 Takže 1-9 vám vektor 1, 2, 3, 4, 5, 6, a až do 9. 294 00:17:23,364 --> 00:17:29,250 >> Jedna věc je mít na paměti, že R ukládá hodnoty ve formátu sloupci-major. 295 00:17:29,250 --> 00:17:34,160 Takže jinými slovy, když vidíte 1 9, že to bude ukládat them-- 296 00:17:34,160 --> 00:17:36,370 to bude 1, 2, 3. místo v prvním sloupci, 297 00:17:36,370 --> 00:17:38,510 a pak to udělám 4, 5, 6 ve druhém sloupci, 298 00:17:38,510 --> 00:17:41,440 a pak 7, 8, 9 ve třetím sloupci. 299 00:17:41,440 --> 00:17:45,570 >> A zde jsou některé další běžné funkce, které můžete použít. 300 00:17:45,570 --> 00:17:49,650 Takže dim mat, to vám dá rozměry matrice. 301 00:17:49,650 --> 00:17:52,620 Bude to vrátíte vektor dimenze. 302 00:17:52,620 --> 00:17:55,580 Takže v tomto případě, protože Naše matice je 3 o 3, 303 00:17:55,580 --> 00:18:01,900 to bude vám numerický vektor, který je 3 3. 304 00:18:01,900 --> 00:18:05,270 >> A tady se právě ukazuje násobení matic. 305 00:18:05,270 --> 00:18:11,970 Takže většinou, pokud jste právě dělat asterisk-- tak mat hvězdička mat-- 306 00:18:11,970 --> 00:18:15,380 to bude komponent, moudrý provoz 307 00:18:15,380 --> 00:18:17,300 nebo to, co se nazývá produkt Hadamard. 308 00:18:17,300 --> 00:18:21,310 Takže to bude dělat každý element komponent-moudrý. 309 00:18:21,310 --> 00:18:23,610 Nicméně, pokud chcete matice multiplication-- 310 00:18:23,610 --> 00:18:29,380 tak vynásobením první časy řádek První sloupec druhé tabulky se 311 00:18:29,380 --> 00:18:34,510 a tak on--, měli byste použít toto procento operace. 312 00:18:34,510 --> 00:18:38,110 >> A t mat je jen Provoz na přemístit. 313 00:18:38,110 --> 00:18:42,590 Takže říkám vzít přemístit do matice, násobit ji matrici 314 00:18:42,590 --> 00:18:43,090 sám. 315 00:18:43,090 --> 00:18:45,006 A pak, že to bude vrátit se k vám další 3 316 00:18:45,006 --> 00:18:50,700 o 3 Následující tabulka znázorňuje produkt byste chtěli. 317 00:18:50,700 --> 00:18:53,750 >> A tak, aby byla matice. 318 00:18:53,750 --> 00:18:56,020 Zde je to, co se nazývá datový rámec. 319 00:18:56,020 --> 00:19:00,780 Rám údaje si můžete myslet as matice, ale každý sloupec sám 320 00:19:00,780 --> 00:19:02,990 bude jiného typu. 321 00:19:02,990 --> 00:19:07,320 >> Takže to, co je opravdu v pohodě o datech Rámy je, že v analýze dat samotné, 322 00:19:07,320 --> 00:19:11,260 budete mít všechno heterogenní data a všechny tyto skutečnosti 323 00:19:11,260 --> 00:19:15,640 chaotický věcí, kde každý ze sloupců samy o sobě mohou být různých typů. 324 00:19:15,640 --> 00:19:21,460 Tak tady říkám vytvořit Údaje rám, dělat celých čísel od 1 do 3, 325 00:19:21,460 --> 00:19:24,750 a pak mají také charakter vektor. 326 00:19:24,750 --> 00:19:28,470 Takže mohu index přes Každý z těchto sloupců 327 00:19:28,470 --> 00:19:30,930 a pak budu si sami hodnoty. 328 00:19:30,930 --> 00:19:34,370 A můžete si také udělat nějakou o provozu na datových rámců. 329 00:19:34,370 --> 00:19:38,040 A většina z doby, kdy jste dělá analýzu dat, nebo nějakou 330 00:19:38,040 --> 00:19:42,042 předběžného zpracování, budete práce s těmito datovými strukturami 331 00:19:42,042 --> 00:19:44,250 kde každý sloupec se děje být jiného typu. 332 00:19:44,250 --> 00:19:47,880 333 00:19:47,880 --> 00:19:52,970 >> A konečně, takže tyto jsou v podstatě jen čtyři základní objekty v R. Seznam 334 00:19:52,970 --> 00:19:55,820 bude jen sbírat jakýkoli jiné objekty, které chcete. 335 00:19:55,820 --> 00:20:00,130 Tak to bude ukládat to do jednoho proměnné, které lze snadno otevřít. 336 00:20:00,130 --> 00:20:02,370 >> Tak tady, beru seznam. 337 00:20:02,370 --> 00:20:04,460 Říkám, že věci se rovná 3. 338 00:20:04,460 --> 00:20:08,060 Takže budu mít jeden prvek seznam, a to se nazývá věci, 339 00:20:08,060 --> 00:20:10,570 a to bude mít hodnotu 3. 340 00:20:10,570 --> 00:20:13,140 >> Já si také vytvořit matici. 341 00:20:13,140 --> 00:20:17,970 Tak tohle je 1-4 a na konci řádku se rovná 2, takže 2 o 2 matice. 342 00:20:17,970 --> 00:20:20,270 Také v seznamu a je to jen mat. 343 00:20:20,270 --> 00:20:24,690 moreStuff, řetězec znaků, a dokonce i další seznam sám o sobě. 344 00:20:24,690 --> 00:20:27,710 >> Tak to je seznam, který je 5 a medvěda. 345 00:20:27,710 --> 00:20:30,990 Tak to má hodnotu 5 a to Má charakter řetězec medvěda 346 00:20:30,990 --> 00:20:32,710 a je to seznam v seznamu. 347 00:20:32,710 --> 00:20:35,965 Takže můžete mít tyto rekurzivní věcí, kde 348 00:20:35,965 --> 00:20:38,230 Máte another-- A typu v rámci typu. 349 00:20:38,230 --> 00:20:41,420 Takže podobně, můžete mít matici uvnitř jiné matrice, a tak dále. 350 00:20:41,420 --> 00:20:44,264 A seznam je jen dobrý způsob, jak shromažďování a agregaci 351 00:20:44,264 --> 00:20:45,430 Všechny tyto různé objekty. 352 00:20:45,430 --> 00:20:50,210 353 00:20:50,210 --> 00:20:57,150 >> A konečně, je zde jen pomoci v případě to bylo jen pryč přes velmi rychle. 354 00:20:57,150 --> 00:21:01,350 Takže kdykoli jste zmatený o jakési funkce, 355 00:21:01,350 --> 00:21:03,510 můžete dělat pomoc této funkce. 356 00:21:03,510 --> 00:21:07,120 Takže si můžete udělat help matice nebo otazník matice. 357 00:21:07,120 --> 00:21:11,430 A pomoc a otazník jsou jen zkratka pro stejnou věc 358 00:21:11,430 --> 00:21:13,040 takže jsou aliasy. 359 00:21:13,040 --> 00:21:16,820 >> LM je funkce, která Jen dělá lineární model. 360 00:21:16,820 --> 00:21:20,340 Ale pokud jste právě nemáte tušení, jak to práce, stačí udělat pomoc lm 361 00:21:20,340 --> 00:21:24,610 a že ti dám trochu druh dokumentace, která 362 00:21:24,610 --> 00:21:27,960 Vypadá trochu jako man stránky v Unixu, kde 363 00:21:27,960 --> 00:21:34,210 máte krátký popis toho, co ano, i to, co je její argumentace, 364 00:21:34,210 --> 00:21:38,850 to, co se vrátí, a jen tipy na to, jak jejich použití, a některé příklady stejně. 365 00:21:38,850 --> 00:21:41,680 366 00:21:41,680 --> 00:21:52,890 >> Tak nech mě jít dopředu a přehlídka některé demo použití R. OK. 367 00:21:52,890 --> 00:21:55,470 Tak jsem šel na velmi rychle jen údaje 368 00:21:55,470 --> 00:21:59,440 struktury a nějaká op-- některé operace. 369 00:21:59,440 --> 00:22:02,960 Zde je některé funkce. 370 00:22:02,960 --> 00:22:06,750 >> Tak tady jsem prostě jít k definování funkce. 371 00:22:06,750 --> 00:22:09,970 Takže jsem také používají Operátor přiřazení tady, 372 00:22:09,970 --> 00:22:12,610 a pak říkám deklarovat jako funkce. 373 00:22:12,610 --> 00:22:14,140 A to má hodnotu x. 374 00:22:14,140 --> 00:22:18,210 Tak to je nějaká hodnota, kterou chcete a budu se vrátit x sebe. 375 00:22:18,210 --> 00:22:20,840 Tak tohle je funkce identity. 376 00:22:20,840 --> 00:22:23,670 >> A co je v pohodě o tom ve srovnání s jinými jazyky 377 00:22:23,670 --> 00:22:26,330 a další nízkoúrovňové jazyky, je to, že x 378 00:22:26,330 --> 00:22:29,350 může být jakéhokoliv typu samotného a to vrátím tento typ. 379 00:22:29,350 --> 00:22:35,251 Takže si můžete imagine-- tak nechat mě stačí spustit tak rychle. 380 00:22:35,251 --> 00:22:35,750 Promiňte. 381 00:22:35,750 --> 00:22:40,300 >> Takže jedna věc, kterou bych měl zmínit je to, že tento editor jsem pomocí 382 00:22:40,300 --> 00:22:41,380 se nazývá rstudio. 383 00:22:41,380 --> 00:22:44,389 To je to, co se nazývá IDE. 384 00:22:44,389 --> 00:22:46,180 A ještě jedna věc, která je opravdu pěkné o tom 385 00:22:46,180 --> 00:22:51,500 je to, že obsahuje velké množství věci, které chcete dělat do výzkumu by samo o sobě 386 00:22:51,500 --> 00:22:53,180 Jen velmi intuitivně. 387 00:22:53,180 --> 00:22:55,550 >> Takže tady je interpret konzole. 388 00:22:55,550 --> 00:23:02,160 Takže podobně, můžete si to konzole raw jen tím, že dělá kapitálu R. 389 00:23:02,160 --> 00:23:05,630 A to je přesně to, totéž jako konzole. 390 00:23:05,630 --> 00:23:12,210 Tak jsem si jen to id funkce x, x, x. 391 00:23:12,210 --> 00:23:16,130 A then-- a pak to bude v pořádku sám. 392 00:23:16,130 --> 00:23:19,200 393 00:23:19,200 --> 00:23:21,740 >> Takže rstudio je skvělý proto, že má konzolu. 394 00:23:21,740 --> 00:23:25,360 Má také dokumenty chcete běžet dál. 395 00:23:25,360 --> 00:23:28,629 A pak to má nějaké proměnné které můžete vidět v prostředí. 396 00:23:28,629 --> 00:23:30,420 A pak, pokud máte k tomu pozemky, a pak vás 397 00:23:30,420 --> 00:23:33,730 stačí vidět zde, na rozdíl od řízení všech těchto různých oken 398 00:23:33,730 --> 00:23:35,940 samy od sebe. 399 00:23:35,940 --> 00:23:40,530 >> Vlastně jsem osobně používám Vim, ale já pocit, že rstudio je vynikající právě 400 00:23:40,530 --> 00:23:44,640 pro získání dobrý nápad jak používat R. Obvykle 401 00:23:44,640 --> 00:23:47,040 když se snažíte naučit se nějaký nový úkol, 402 00:23:47,040 --> 00:23:49,590 nechcete řešit příliš mnoho věcí najednou. 403 00:23:49,590 --> 00:23:53,120 Takže R je jen very-- rstudio je velmi dobrý způsob, jak učení R 404 00:23:53,120 --> 00:23:56,760 aniž by museli vypořádat s Všechny tyto další věci. 405 00:23:56,760 --> 00:23:58,600 >> Tak tady Běžím id ahoj. 406 00:23:58,600 --> 00:24:00,090 Vrátí ahoj. 407 00:24:00,090 --> 00:24:01,740 id 123. 408 00:24:01,740 --> 00:24:04,610 Zde je vektor celých čísel. 409 00:24:04,610 --> 00:24:08,620 Tak podobně, protože můžete přijmout jakékoli nějaké hodnoty, 410 00:24:08,620 --> 00:24:16,060 můžete udělat vrací id x tak, že se vrací 1234 a 5. 411 00:24:16,060 --> 00:24:22,210 >> A dovolte mi, abych jen ukázat, že To je skutečně celé číslo. 412 00:24:22,210 --> 00:24:28,800 A podobně, pokud nechcete třídy id x, to bude celé číslo. 413 00:24:28,800 --> 00:24:34,170 A pak, můžete také porovnat dva a je to pravda. 414 00:24:34,170 --> 00:24:38,350 Takže jsem kontrolovat, jestli id ​​x rovná se rovná x a oznámení 415 00:24:38,350 --> 00:24:39,760 že to vám dává dva TRUEs. 416 00:24:39,760 --> 00:24:44,280 Takže to neříká, jsou dva objekty identické, 417 00:24:44,280 --> 00:24:46,845 ale každý z údajů V rámci vektory identické. 418 00:24:46,845 --> 00:24:50,000 419 00:24:50,000 --> 00:24:52,090 >> Tady je bounded.compare. 420 00:24:52,090 --> 00:24:58,470 Tak to je o něco složitější v tom, že má-li to stav a jinde 421 00:24:58,470 --> 00:25:00,960 a pak to trvá dva argumenty najednou. 422 00:25:00,960 --> 00:25:02,640 Takže x je z jakéhokoliv typu. 423 00:25:02,640 --> 00:25:06,280 A já říkám Druhý argument je. 424 00:25:06,280 --> 00:25:08,380 To může být cokoliv stejně. 425 00:25:08,380 --> 00:25:12,490 Ale ve výchozím nastavení, že to bude trvat 5 Pokud nezadáte nic. 426 00:25:12,490 --> 00:25:16,730 >> Tak tady budu říkat pokud x je větší než. 427 00:25:16,730 --> 00:25:19,220 Takže když jsem se neuvádějí, je říká, že pokud x je větší než 5, 428 00:25:19,220 --> 00:25:20,470 pak budu vracet TRUE. 429 00:25:20,470 --> 00:25:23,230 jinak, budu se vrátit FALSE. 430 00:25:23,230 --> 00:25:24,870 Tak nech mě jít napřed a definovat to. 431 00:25:24,870 --> 00:25:30,600 432 00:25:30,600 --> 00:25:34,550 >> A teď budu spustit bounded.compare 3. 433 00:25:34,550 --> 00:25:39,150 Tak to říká, že je 3 méně than-- je 3 větší než 5. 434 00:25:39,150 --> 00:25:41,830 Ne, to není tak FALSE. 435 00:25:41,830 --> 00:25:46,550 >> A bounded.compare 3 a jdu porovnat jej pomocí rovná 2. 436 00:25:46,550 --> 00:25:50,700 Takže teď říkám ano, teď už chci být něco jiného. 437 00:25:50,700 --> 00:25:52,750 Takže jsem chtěl říct, měli byste být 2. 438 00:25:52,750 --> 00:25:56,640 >> Můžu buď dělat tento druh notace nebo Říkám rovná 2. 439 00:25:56,640 --> 00:25:58,720 To je čitelnější v tom, že když jste 440 00:25:58,720 --> 00:26:01,450 při pohledu na tyto skutečnosti složité funkce, které 441 00:26:01,450 --> 00:26:08,110 aby více arguments-- a to mohou být desítky oftentimes-- jen říkám 442 00:26:08,110 --> 00:26:11,140 rovná 2, která je srozumitelná pro vám tak, že později v budoucnu 443 00:26:11,140 --> 00:26:13,020 budete vědět, co děláte. 444 00:26:13,020 --> 00:26:17,120 >> Takže v tomto případě, já jsem Říká se nachází 3 větší než 2. 445 00:26:17,120 --> 00:26:18,270 Ano, to je. 446 00:26:18,270 --> 00:26:22,350 A stejně, já si jen odstranit to a říkají, je 3 větší než 2 447 00:26:22,350 --> 00:26:23,440 kde se rovná 2. 448 00:26:23,440 --> 00:26:26,230 A to je také pravda. 449 00:26:26,230 --> 00:26:26,730 Ano? 450 00:26:26,730 --> 00:26:29,670 >> Diváků: Jste provádění řádek po řádku? 451 00:26:29,670 --> 00:26:30,670 >> DUSTIN TRAN: Ano, jsem. 452 00:26:30,670 --> 00:26:33,900 Takže to, co dělám tady je přičemž tento text document-- 453 00:26:33,900 --> 00:26:39,825 a co je skvělé o rstudio je to, že Mohu jen spustit short-- zkratky pro. 454 00:26:39,825 --> 00:26:41,820 Takže dělám Control-Enter. 455 00:26:41,820 --> 00:26:44,850 >> A pak, beru řádek v textovém dokumentu 456 00:26:44,850 --> 00:26:46,710 a potom uvedení v konzole. 457 00:26:46,710 --> 00:26:50,800 Tak tady říkám, bounded.compare a já dělám Control-X. 458 00:26:50,800 --> 00:26:52,540 Tak jsem si prostě běžet i zde. 459 00:26:52,540 --> 00:26:54,920 A pak, že bude trvat linka a pak ji sem. 460 00:26:54,920 --> 00:26:57,900 A pak podobně, můžu to spustit zde. 461 00:26:57,900 --> 00:27:04,630 A pak to bude jen držet vymezení linky do konzole takhle. 462 00:27:04,630 --> 00:27:10,690 >> A pokud jste si také povšimnout kudrnaté rovnátka jsou tam stejně jako v syntaxi C. 463 00:27:10,690 --> 00:27:13,910 x-- pokud pokud podmínka je také bude používat závorky a poté 464 00:27:13,910 --> 00:27:15,350 můžete použít jinde. 465 00:27:15,350 --> 00:27:17,496 Další z nich je jiný, pokud. 466 00:27:17,496 --> 00:27:21,440 Takže to bude x rovná rovná, například. 467 00:27:21,440 --> 00:27:24,190 468 00:27:24,190 --> 00:27:26,350 A pak budu vrátit něco tady. 469 00:27:26,350 --> 00:27:29,490 >> Všimněte si, že existují dva různé věci, které zde děje. 470 00:27:29,490 --> 00:27:34,360 Jedním z nich je, že tu jsem s uvedením vrátí hodnotu TRUE. 471 00:27:34,360 --> 00:27:35,950 Tady Jen říkám x. 472 00:27:35,950 --> 00:27:39,970 Takže R bude obvykle ve výchozím nastavení užít poslední arguments-- 473 00:27:39,970 --> 00:27:43,510 nebo se poslední řádek kódu, a to bude to, co je to vrátil. 474 00:27:43,510 --> 00:27:46,920 Tak tady je to stejné věc, jako dělá zpáteční x. 475 00:27:46,920 --> 00:27:49,450 476 00:27:49,450 --> 00:27:50,540 >> A jen proto, aby vám ukázat. 477 00:27:50,540 --> 00:27:54,000 478 00:27:54,000 --> 00:27:57,052 A pak, bude to fungovat stejně jako to. 479 00:27:57,052 --> 00:27:58,260 Dovolte mi tedy pokračovat s tím. 480 00:27:58,260 --> 00:28:00,630 >> Takže pokud jiný. 481 00:28:00,630 --> 00:28:04,060 A opravdu, můžu se vrátit něco, co bych chtěl. 482 00:28:04,060 --> 00:28:06,680 Tak jsem to ani na návratové Booleans po celou dobu, 483 00:28:06,680 --> 00:28:08,410 Mohu jen vrátit něco jiného. 484 00:28:08,410 --> 00:28:10,670 Tak jsem si udělat zpáteční medvěda. 485 00:28:10,670 --> 00:28:12,989 >> Takže pokud x rovná rovná, to bude návrat medvěda. 486 00:28:12,989 --> 00:28:14,530 V opačném případě to bude vracet TRUE. 487 00:28:14,530 --> 00:28:19,310 Já si také udělat vektor nebo opravdu cokoliv. 488 00:28:19,310 --> 00:28:22,210 >> A obvykle staticky zadávané jazyky, 489 00:28:22,210 --> 00:28:23,840 budete muset zadat typ zde. 490 00:28:23,840 --> 00:28:25,750 A všimněte si, že to může být jen něco. 491 00:28:25,750 --> 00:28:32,400 A R je dost inteligentní, aby to bude jen to a to bude fungovat dobře. 492 00:28:32,400 --> 00:28:33,620 >> Takže mě to definovat. 493 00:28:33,620 --> 00:28:39,460 494 00:28:39,460 --> 00:28:41,230 Unexpected-- oh líto. 495 00:28:41,230 --> 00:28:44,336 Mělo by to být složená závorka zde. 496 00:28:44,336 --> 00:28:44,836 OK. 497 00:28:44,836 --> 00:28:45,336 Super. 498 00:28:45,336 --> 00:28:52,580 499 00:28:52,580 --> 00:28:54,530 Dobrá. 500 00:28:54,530 --> 00:28:58,250 Takže teď pojďme porovnat 3 a rovná 3. 501 00:28:58,250 --> 00:29:01,860 Tak to by mělo return-- yeah-- hodnotu medvěda. 502 00:29:01,860 --> 00:29:06,740 >> Takže teď obecnější věc je jako co o jiných datových struktur. 503 00:29:06,740 --> 00:29:09,110 Takže budete muset tuto funkci. 504 00:29:09,110 --> 00:29:15,360 To bude fungovat na jakémkoliv druhu hodnoty, jako je 3 nebo jakékoliv číselné, 505 00:29:15,360 --> 00:29:17,500 Jinými slovy, double. 506 00:29:17,500 --> 00:29:19,330 >> Ale co o něčem takovém vektoru. 507 00:29:19,330 --> 00:29:27,750 Takže to, co se stane, když do--, takže jsem bude přiřadit Val za, řekněme, 4-6. 508 00:29:27,750 --> 00:29:31,640 Takže když jsem se vrátit to, to je vektor z 4, 5, 6. 509 00:29:31,640 --> 00:29:34,935 >> Nyní se podívejme, co se stane když to udělám bounded.compare val. 510 00:29:34,935 --> 00:29:37,680 511 00:29:37,680 --> 00:29:42,450 Takže to bude dát 15 1251. 512 00:29:42,450 --> 00:29:46,440 Takže jinými slovy, je to říká když se podíváte na tuto podmínku 513 00:29:46,440 --> 00:29:50,040 tak to říká, že x je menší než nebo tak něco. 514 00:29:50,040 --> 00:29:51,880 Tak tohle je trochu matoucí, protože teď 515 00:29:51,880 --> 00:29:53,379 prostě nevím, co se děje. 516 00:29:53,379 --> 00:29:58,690 Takže si myslím, jednu věc, která je opravdu dobrý jen snaží ladit 517 00:29:58,690 --> 00:30:04,600 je, že můžete prostě val, je větší než, a uvidíme, co se děje tam. 518 00:30:04,600 --> 00:30:09,720 >> Takže val-- je standardně 5 tak, ať to jen do Val větší než 5. 519 00:30:09,720 --> 00:30:14,280 Tak to je vektor FALSE FALSE TRUE. 520 00:30:14,280 --> 00:30:17,206 Takže teď, když se díváte na to, bude to říci, zda, 521 00:30:17,206 --> 00:30:20,080 a pak, že to bude vám to je vektor false TRUE. 522 00:30:20,080 --> 00:30:23,450 >> Takže když to projít do R, R nemá ani ponětí, co děláte. 523 00:30:23,450 --> 00:30:26,650 Vzhledem k tomu, že očekává, že jeden jediný hodnota, která je logická, a teď 524 00:30:26,650 --> 00:30:29,420 dáváte jí vektor Boolean. 525 00:30:29,420 --> 00:30:31,970 Takže ve výchozím nastavení, R je prostě říkat, co to sakra, 526 00:30:31,970 --> 00:30:35,440 Budu předpokládat, že jste bude trvat první prvek zde. 527 00:30:35,440 --> 00:30:38,320 Takže budu say-- jdu předpokládat, že to je FALSE. 528 00:30:38,320 --> 00:30:40,890 Takže to bude říkat ne, to není v pořádku. 529 00:30:40,890 --> 00:30:45,246 >> Stejně tak, že to bude být val rovná rovná. 530 00:30:45,246 --> 00:30:47,244 Ne, je mi líto 5. 531 00:30:47,244 --> 00:30:48,910 A je to také bude falešný stejně. 532 00:30:48,910 --> 00:30:52,410 Takže to bude říkat ne, To není pravda, stejně tak je to 533 00:30:52,410 --> 00:30:53,680 chystá se vrátit tento poslední. 534 00:30:53,680 --> 00:30:56,420 535 00:30:56,420 --> 00:31:01,360 >> Tak tohle je buď dobrá věc, nebo špatná věc, v závislosti na tom, jak jej zobrazit. 536 00:31:01,360 --> 00:31:05,104 Vzhledem k tomu, když jste vytváření těchto funkcí, 537 00:31:05,104 --> 00:31:06,770 nemáte skutečně vědět, co se děje. 538 00:31:06,770 --> 00:31:10,210 Takže občas byste chtěli nějakou chybu, nebo možná jen chcete varování. 539 00:31:10,210 --> 00:31:12,160 V tomto případě, R nedělá. 540 00:31:12,160 --> 00:31:14,300 Takže je to opravdu jen na vám na základě off o tom, co 541 00:31:14,300 --> 00:31:17,310 si myslíte, že jazyk by měl dělat v tomto případě 542 00:31:17,310 --> 00:31:22,920 Máte-li projít do vektoru Boolean když děláte v případě stavu. 543 00:31:22,920 --> 00:31:31,733 >> Řekněme, že jste měli původní jedna, jestliže jiný vrátí TRUE, a vy jste 544 00:31:31,733 --> 00:31:34,190 chystá se vrátit FALSE. 545 00:31:34,190 --> 00:31:39,300 Takže jeden způsob abstrahovat je to, že jsem 546 00:31:39,300 --> 00:31:41,530 Dokonce ani nemusíte podmíněného věc. 547 00:31:41,530 --> 00:31:47,220 Další věc, kterou můžu udělat, je jen vrácení samotné hodnoty. 548 00:31:47,220 --> 00:31:53,240 Takže pokud si všimnete, pokud máte do Val je vyšší než 5, 549 00:31:53,240 --> 00:31:56,350 to bude návrat vector FALSE FALSE TRUE. 550 00:31:56,350 --> 00:31:58,850 >> Možná, že to je to, co Chcete pro bounded.compare. 551 00:31:58,850 --> 00:32:02,940 Chcete-li vrátit vektor Boolean kde se porovnává každou z hodnot 552 00:32:02,940 --> 00:32:04,190 pro sebe. 553 00:32:04,190 --> 00:32:11,165 Takže si můžete prostě bounded.compare funkce x, se rovná 5. 554 00:32:11,165 --> 00:32:13,322 555 00:32:13,322 --> 00:32:15,363 A pak místo provádění , pokud jiný stav, 556 00:32:15,363 --> 00:32:21,430 Já jsem prostě jít k návratu x je větší než 5. 557 00:32:21,430 --> 00:32:23,620 Takže pokud je to pravda, pak to bude vracet TRUE. 558 00:32:23,620 --> 00:32:26,830 A pak, pokud to není, je to chystá se vrátit FALSE. 559 00:32:26,830 --> 00:32:30,880 >> A to bude pracovat pro některé z těchto struktur. 560 00:32:30,880 --> 00:32:41,450 Tak jsem si bounded.compare c 1 6 nebo 9 a pak budu říkat rovná 6, 561 00:32:41,450 --> 00:32:42,799 například. 562 00:32:42,799 --> 00:32:44,840 A pak, že to bude vám ten správný Boolean 563 00:32:44,840 --> 00:32:48,240 vektor, který jste navrhování. 564 00:32:48,240 --> 00:32:50,660 >> To jsou jen funkce a to mi teď se prostě 565 00:32:50,660 --> 00:32:54,980 ukázat vám některé interaktivní vizualizace. 566 00:32:54,980 --> 00:32:59,700 Já si nemyslím, že ve skutečnosti se Wi-Fi zde tak ať mi prostě jít dopředu 567 00:32:59,700 --> 00:33:01,970 a přeskočit tohle myslím. 568 00:33:01,970 --> 00:33:05,260 >> Ale jedna věc, která je v pohodě však je, že pokud jste právě 569 00:33:05,260 --> 00:33:09,600 chcete vyzkoušet spoustu různé příkazy dat, 570 00:33:09,600 --> 00:33:13,320 je zde spoustu různých datových sad které jsou již předinstalovaný na R. 571 00:33:13,320 --> 00:33:15,770 Takže jeden z nich je volal iris datové sady. 572 00:33:15,770 --> 00:33:18,910 To je jeden z nejvíce známý ty v strojového učení. 573 00:33:18,910 --> 00:33:23,350 Budete obvykle jen udělat nějakou testovací případy, zda je váš kód běží. 574 00:33:23,350 --> 00:33:27,520 Tak ať to jen zkontrolovat, co duhovka je. 575 00:33:27,520 --> 00:33:33,130 >> Takže to, co se děje být datový rámec. 576 00:33:33,130 --> 00:33:36,000 A je to docela dlouho, protože Jen jsem vytisknout clonu. 577 00:33:36,000 --> 00:33:38,810 Je to tisk na celou věc. 578 00:33:38,810 --> 00:33:42,830 Tak to má všechny tyto různé názvy. 579 00:33:42,830 --> 00:33:45,505 Takže duhovka je kolekce různých květin. 580 00:33:45,505 --> 00:33:48,830 V tomto případě je to říká ty druhy to, 581 00:33:48,830 --> 00:33:54,760 Všechny tyto různé šířky a Délky kališní lístek a plátku. 582 00:33:54,760 --> 00:33:58,880 >> A tak normálně, pokud Chcete-li tisknout clonu, 583 00:33:58,880 --> 00:34:03,680 Například, nechcete ho mít to všechno, protože to může převzít 584 00:34:03,680 --> 00:34:05,190 Celá konzole. 585 00:34:05,190 --> 00:34:09,280 Takže jedna věc, která je opravdu pěkná je funkce hlavy. 586 00:34:09,280 --> 00:34:12,929 Takže pokud jste právě dělat hlavu iris, bude vám 587 00:34:12,929 --> 00:34:17,389 Prvních pět řádků, nebo šest myslím. 588 00:34:17,389 --> 00:34:19,909 A pak také ti, stačí zadat zde. 589 00:34:19,909 --> 00:34:22,914 Takže 20-- to bude dávat si prvních 20 řádků. 590 00:34:22,914 --> 00:34:24,830 A já jsem vlastně tak trochu překvapen, že tato 591 00:34:24,830 --> 00:34:28,770 dal mi šest, takže nech mě jít napřed a zkontrolujte, zda iris-- nebo hlavy, je mi líto. 592 00:34:28,770 --> 00:34:31,699 593 00:34:31,699 --> 00:34:34,960 A tady to bude dávat vy dokumentace 594 00:34:34,960 --> 00:34:37,960 z toho, co je hodnota hlava dělá. 595 00:34:37,960 --> 00:34:40,839 Tak to vrátí první nebo poslední objektu. 596 00:34:40,839 --> 00:34:42,630 A pak budu podívejte se na výchozí hodnoty. 597 00:34:42,630 --> 00:34:47,340 A pak říká, že výchozí Metoda head x a n se rovná 6L. 598 00:34:47,340 --> 00:34:50,620 Tak to vrátí prvních šest prvků. 599 00:34:50,620 --> 00:34:55,050 A podobně, pokud si všimnete, tady jsem Nemusel specifikovat n = 6. 600 00:34:55,050 --> 00:34:56,840 Ve výchozím nastavení se používá šest, řekl bych. 601 00:34:56,840 --> 00:35:00,130 A pak, když chci zadat určitý hodnoty, pak jsem si názor, že stejně. 602 00:35:00,130 --> 00:35:02,970 603 00:35:02,970 --> 00:35:10,592 >> Takže to je asi jednoduché příkazy a tady je ještě jeden, který je jen-- dobře, 604 00:35:10,592 --> 00:35:12,550 I can-- je to vlastně trochu složitější, 605 00:35:12,550 --> 00:35:17,130 ale to bude jen vzít třídu každého sloupce duhovky datové sady. 606 00:35:17,130 --> 00:35:20,910 Takže to bude to, co každý z nich ukáže sloupce jsou, pokud jde o jejich typu. 607 00:35:20,910 --> 00:35:23,665 Takže kališní lístek délka je číselné, kališní lístek šířka je číselný. 608 00:35:23,665 --> 00:35:26,540 Všechny tyto hodnoty jsou pouze číselné protože si můžete říct, z těchto údajů 609 00:35:26,540 --> 00:35:29,440 struktury se jedná o všichni budeme numerické. 610 00:35:29,440 --> 00:35:34,310 >> A sloupec druhů bude faktorem. 611 00:35:34,310 --> 00:35:37,270 Takže za normálních okolností, by si myslíte, že to je jako řetězec znaků. 612 00:35:37,270 --> 00:35:48,830 Ale pokud si prostě irisSpecies, a pak budu dělat hlavu 5, 613 00:35:48,830 --> 00:35:51,820 a to bude pro tisk out prvních pěti hodnot. 614 00:35:51,820 --> 00:35:54,150 >> A pak upozornění Tato úroveň. 615 00:35:54,150 --> 00:35:58,870 Tak to je saying-- je to způsob, jak R: mít kategorické proměnné. 616 00:35:58,870 --> 00:36:03,765 Takže místo toho jen mající řetězce znaků, 617 00:36:03,765 --> 00:36:06,740 to má úrovně se stanoví zejména který tyto věci jsou. 618 00:36:06,740 --> 00:36:12,450 >> Řekněme, že irisSpecies 1. 619 00:36:12,450 --> 00:36:17,690 Takže to, co chcete dělat, tady je, že jsem podmnožin k tomuto druhu sloupce. 620 00:36:17,690 --> 00:36:21,480 Tak to trvá Druh sloupec a poté 621 00:36:21,480 --> 00:36:23,820 indexuje získat první prvek. 622 00:36:23,820 --> 00:36:27,140 Tak to by vám měl dát setosa. 623 00:36:27,140 --> 00:36:28,710 A to vám tady také dává úrovně. 624 00:36:28,710 --> 00:36:32,812 >> Takže si můžete také porovnat to znak setosa 625 00:36:32,812 --> 00:36:34,645 a to nebude být pravda, protože jeden 626 00:36:34,645 --> 00:36:37,940 je jiného typu, než druhý. 627 00:36:37,940 --> 00:36:40,590 Nebo Myslím, že je to pravda, protože R je inteligentnější než to. 628 00:36:40,590 --> 00:36:45,420 A to vypadá na to, a pak se říká, možná to je to, co chcete. 629 00:36:45,420 --> 00:36:51,860 Takže to bude říkat charakter string setosa je stejný, jako je tento. 630 00:36:51,860 --> 00:37:01,290 A pak podobně, můžete také jen chytit ty jako tak dále. 631 00:37:01,290 --> 00:37:05,580 >> Takže to je jen nějaký druh rychlé příkazy datové sady. 632 00:37:05,580 --> 00:37:08,030 Tak tady je to nějaký průzkum dat. 633 00:37:08,030 --> 00:37:11,360 Tak to je trochu více podílí se na analýze dat. 634 00:37:11,360 --> 00:37:18,340 A to je převzat z některých bootcamp do výzkumu v Berkeley. 635 00:37:18,340 --> 00:37:20,790 >> Tak knihovna cizí. 636 00:37:20,790 --> 00:37:24,880 Takže jdu se načte knihovna, která se nazývá cizí. 637 00:37:24,880 --> 00:37:32,460 Tak to bude, aby mi read.dta tak předpokládat, že mám tento soubor dat. 638 00:37:32,460 --> 00:37:39,000 Tento je uložen v aktuální pracovní adresář můj konzole. 639 00:37:39,000 --> 00:37:42,190 Takže pojďme se podívat, co právě pracovní adresář. 640 00:37:42,190 --> 00:37:44,620 >> Tak tady je moje pracovní adresář. 641 00:37:44,620 --> 00:37:50,040 A čtení dat DOT, tento věc, říká tento soubor 642 00:37:50,040 --> 00:37:54,650 je umístěn ve složce dat Tento aktuální pracovní adresář. 643 00:37:54,650 --> 00:38:00,520 A read.dta to není výchozí příkaz. 644 00:38:00,520 --> 00:38:02,760 Myslím, že načtení jsem to v již. 645 00:38:02,760 --> 00:38:04,750 IEI předpokládal jsem nahrál to v již. 646 00:38:04,750 --> 00:38:08,115 >> Ale stejně tak read.dta nebude být výchozí příkaz. 647 00:38:08,115 --> 00:38:11,550 A to je důvod, proč budete mít načíst v této knihovně package-- 648 00:38:11,550 --> 00:38:14,500 Tento balíček nazývaný cizí. 649 00:38:14,500 --> 00:38:16,690 A v případě, že nemáte balíček, myslím, že 650 00:38:16,690 --> 00:38:19,180 zahraniční je jedním z vestavěných ty. 651 00:38:19,180 --> 00:38:31,150 V opačném případě můžete také dělat install.packages 652 00:38:31,150 --> 00:38:33,180 a to nainstalovat balíček. 653 00:38:33,180 --> 00:38:36,878 A to vám dá R. Uh, no. 654 00:38:36,878 --> 00:38:39,830 655 00:38:39,830 --> 00:38:43,140 A pak jsem jen tak přestat to proto, že už si to. 656 00:38:43,140 --> 00:38:46,920 >> Ale to, co je opravdu hezké o R je to, že správu balíků 657 00:38:46,920 --> 00:38:48,510 Systém je velmi elegantní. 658 00:38:48,510 --> 00:38:52,470 Vzhledem k tomu, že se bude ukládat vše opravdu pěkně pro vás. 659 00:38:52,470 --> 00:38:59,780 Takže v tomto případě, že to bude ukládat se v Věřím, že tato knihovna tady. 660 00:38:59,780 --> 00:39:02,390 >> Takže kdykoli budete chtít, aby instalovat nové balíčky, 661 00:39:02,390 --> 00:39:04,980 je to stejně jednoduché jako dělá install.packages 662 00:39:04,980 --> 00:39:07,500 a R bude řídit všechny balíčky pro vás. 663 00:39:07,500 --> 00:39:12,900 Takže si nemusíte dělat něco Python, kde máte externí balíčku 664 00:39:12,900 --> 00:39:15,330 manažeři jako papír Anaconda, kde jste 665 00:39:15,330 --> 00:39:18,310 doing-- instalaci balíčky mimo Python 666 00:39:18,310 --> 00:39:20,940 a pak se je pokusíte spustit sami. 667 00:39:20,940 --> 00:39:22,210 Tak tohle je opravdu příjemný způsob, jak. 668 00:39:22,210 --> 00:39:25,590 >> A install.packages vyžaduje připojení k internetu. 669 00:39:25,590 --> 00:39:31,950 Trvá to ze serveru a úložiště, které 670 00:39:31,950 --> 00:39:33,960 sbírá všechny balíky se nazývá CRAN. 671 00:39:33,960 --> 00:39:40,690 A můžete určit, jaký typ zrcadla Chcete-li stáhnout balíčky z. 672 00:39:40,690 --> 00:39:43,420 >> Tak tady beru tento soubor dat. 673 00:39:43,420 --> 00:39:46,240 Já jsem to četl v tuto funkci používat. 674 00:39:46,240 --> 00:39:49,360 Tak nech mě jít dopředu a udělat to. 675 00:39:49,360 --> 00:39:52,900 >> Takže předpokládejme, že máte tento soubor dat 676 00:39:52,900 --> 00:39:55,550 a máte naprosto ponětí, co to je. 677 00:39:55,550 --> 00:39:58,560 A to vlastně přijde poměrně často v průmyslu 678 00:39:58,560 --> 00:40:00,910 kde stačí mít tyto tuny a tuny chaotický věcí 679 00:40:00,910 --> 00:40:02,890 a jsou neuvěřitelně unlabeled. 680 00:40:02,890 --> 00:40:06,380 Tak tady to mám datový soubor, a já nevím, 681 00:40:06,380 --> 00:40:08,400 co to je tak, že jsem prostě ukazuje na to podívat. 682 00:40:08,400 --> 00:40:10,620 >> Takže budu dělat po hlavě. 683 00:40:10,620 --> 00:40:14,190 Tak jsem zkontrolovat prvních šest sloupy, co to je datová sada. 684 00:40:14,190 --> 00:40:21,730 Tak to je stav, pres04, a poté Všechny tyto různé druh sloupců. 685 00:40:21,730 --> 00:40:25,612 A co je zajímavé tady, myslím, že jste to vy 686 00:40:25,612 --> 00:40:27,945 by se předpokládat, že to vypadá jako nějaký druh voleb. 687 00:40:27,945 --> 00:40:30,482 688 00:40:30,482 --> 00:40:32,190 A myslím, že právě od při pohledu na souboru 689 00:40:32,190 --> 00:40:41,070 jméno to je nějaký druh kolekce údajů o kandidáty nebo voličů 690 00:40:41,070 --> 00:40:44,920 Kdo hlasoval pro konkrétní prezidenty nebo kandidáti prezident 691 00:40:44,920 --> 00:40:46,550 pro volby 2004. 692 00:40:46,550 --> 00:40:52,920 >> Takže tady je hodnoty 1, 2 tak jeden způsob ukládání 693 00:40:52,920 --> 00:40:56,540 uchazeči prezident jsou jejich jména. 694 00:40:56,540 --> 00:40:59,780 V tomto případě to vypadá, že jsou to jen celočíselné hodnoty. 695 00:40:59,780 --> 00:41:04,030 Takže 2004, to byl Bush proti Kerry věřím. 696 00:41:04,030 --> 00:41:09,010 A teď, řekněme, že prostě nevím zda 1 odpovídá Bush nebo 2, 697 00:41:09,010 --> 00:41:11,703 odpovídá Kerry nebo a tak dále a tak dále, že jo? 698 00:41:11,703 --> 00:41:15,860 >> A to je, jen pro mě, poměrně častým problémem. 699 00:41:15,860 --> 00:41:18,230 Takže to, co můžete udělat v tomto případě? 700 00:41:18,230 --> 00:41:20,000 Takže pojďme zkontrolovat všechny tyto další věci. 701 00:41:20,000 --> 00:41:22,790 >> stát, já jsem za předpokladu, že tato pochází z různých států. 702 00:41:22,790 --> 00:41:25,100 partyid, příjem. 703 00:41:25,100 --> 00:41:27,710 Pojďme se podívat na partyid. 704 00:41:27,710 --> 00:41:32,800 Takže možná jedna věc, kterou můžete udělat, je podívejte se na každé z pozorování 705 00:41:32,800 --> 00:41:36,250 které mají partyid republikánských nebo demokrat, nebo tak něco. 706 00:41:36,250 --> 00:41:38,170 Tak pojďme se jen podívat na to, co je partyid. 707 00:41:38,170 --> 00:41:41,946 >> Takže budu brát dat, a pak jdu 708 00:41:41,946 --> 00:41:47,960 to udělat znak dolaru subjekt, který jsem dělal dříve 709 00:41:47,960 --> 00:41:50,770 a to bude podmnožiny do tohoto sloupce. 710 00:41:50,770 --> 00:41:57,760 A pak budu na hlavu to v 20, jen aby viděl, jak to vypadá. 711 00:41:57,760 --> 00:42:00,170 >> Tak to je jen banda agentur. 712 00:42:00,170 --> 00:42:02,800 Takže jinými slovy, máte Chybí údaje o tyto lidi. 713 00:42:02,800 --> 00:42:08,100 Ale také všimnout dat partyid je faktor 714 00:42:08,100 --> 00:42:10,030 tak to vám dává různé kategorie. 715 00:42:10,030 --> 00:42:14,170 Takže jinými slovy, partyid může trvat Demokrat, republikán, Independent, 716 00:42:14,170 --> 00:42:16,640 nebo něco jiného. 717 00:42:16,640 --> 00:42:23,940 >> Tak pojďme do toho a pojďme zjistit, které z nich je-- oh, OK. 718 00:42:23,940 --> 00:42:28,480 Takže jdu do podmnožiny k partyid a poté 719 00:42:28,480 --> 00:42:32,780 podívejte se na ty, které jsou Demokrat, například. 720 00:42:32,780 --> 00:42:37,150 Tohle vám Boolean, obrovský Boolean o TRUEs a FALSEs. 721 00:42:37,150 --> 00:42:41,630 >> A teď, řekněme, že chci na podmnožiny na tyto lidi. 722 00:42:41,630 --> 00:42:47,260 Takže to bude trvat můj DAT a podmnožina se podle toho, co pozorování 723 00:42:47,260 --> 00:42:48,910 mají partyid roven rovná demokrat. 724 00:42:48,910 --> 00:42:52,830 725 00:42:52,830 --> 00:42:55,180 A to je poměrně dlouhá, neboť tam je tak mnoho z nich. 726 00:42:55,180 --> 00:42:59,060 Takže teď, budu na hlavu to v 20. 727 00:42:59,060 --> 00:43:05,690 728 00:43:05,690 --> 00:43:11,270 >> A jak zjistíte, rovná se rovná Je zajímavé, že jsi 729 00:43:11,270 --> 00:43:13,250 already-- jste také, včetně NAS. 730 00:43:13,250 --> 00:43:19,010 Takže v tomto případě se stále nemůže dostat jakékoli informace, protože teď máte NAS 731 00:43:19,010 --> 00:43:22,650 a vy jen chcete zjistit, které z pozorování odpovídají Democrat 732 00:43:22,650 --> 00:43:24,670 a ne ty chybějící hodnoty sami. 733 00:43:24,670 --> 00:43:27,680 Tak jak se vám zbavit se těchto agentur? 734 00:43:27,680 --> 00:43:36,410 >> Tak tady jsem jen pomocí zvýąení na mé kurzoru a pak říká pohybující se kolem. 735 00:43:36,410 --> 00:43:39,778 A pak tady já jsem prostě jít říkat is.na datpartyid. 736 00:43:39,778 --> 00:43:48,970 737 00:43:48,970 --> 00:43:52,720 Tak to i a bude trvat dvě různé logické vektorů 738 00:43:52,720 --> 00:43:57,160 a říkají, že to bude TRUE a FALSE např. 739 00:43:57,160 --> 00:43:59,190 Takže to bude dělat tuto komponentu-moudrý. 740 00:43:59,190 --> 00:44:02,910 Tak tady říkám zavádění datový rámec, podmnožiny 741 00:44:02,910 --> 00:44:10,170 na ty, které odpovídají demokrat, a odstranit některé z nich, které nejsou NA. 742 00:44:10,170 --> 00:44:13,540 >> Tak tohle by měla will-- dát něco. 743 00:44:13,540 --> 00:44:16,540 744 00:44:16,540 --> 00:44:17,600 Podívejme se is.na. 745 00:44:17,600 --> 00:44:24,670 746 00:44:24,670 --> 00:44:27,690 Zkusme is.na datpartyid. 747 00:44:27,690 --> 00:44:36,290 748 00:44:36,290 --> 00:44:45,290 A to by mělo dát you-- sorry-- jen logický vektor. 749 00:44:45,290 --> 00:44:49,260 A pak, protože je to tak dlouho, Chystám se podmnožiny do 20 ° C. 750 00:44:49,260 --> 00:44:49,760 OK. 751 00:44:49,760 --> 00:44:51,570 Tak by to mělo fungovat. 752 00:44:51,570 --> 00:44:54,700 >> A tohle bude také TRUEs. 753 00:44:54,700 --> 00:45:01,830 Aha, takže moje chyba je, že jsem se nezlobte použití C ++ a R zaměnitelně tak Dělám 754 00:45:01,830 --> 00:45:03,590 tato chyba po celou dobu. 755 00:45:03,590 --> 00:45:05,807 A operátor ve skutečnosti ten, který chcete. 756 00:45:05,807 --> 00:45:08,140 Nechcete používat dva ampersandy, jen jeden člověk. 757 00:45:08,140 --> 00:45:14,970 758 00:45:14,970 --> 00:45:17,010 OK. 759 00:45:17,010 --> 00:45:18,140 >> Tak pojďme se podívat. 760 00:45:18,140 --> 00:45:20,930 761 00:45:20,930 --> 00:45:23,920 Tak jsme podmnožina se partyid kde jsou demokrat 762 00:45:23,920 --> 00:45:25,300 a nejsou to chybějící hodnoty. 763 00:45:25,300 --> 00:45:27,690 A teď se pojďme podívat na ty, které oni volili. 764 00:45:27,690 --> 00:45:31,530 Takže to vypadá, že většina z nich hlasovalo pro 1. 765 00:45:31,530 --> 00:45:36,090 Takže budu pokračovat a říkají, že je Kerry. 766 00:45:36,090 --> 00:45:39,507 >> A podobně, můžete také jít do Republican 767 00:45:39,507 --> 00:45:41,090 a doufejme, že to by vám měl dát 2. 768 00:45:41,090 --> 00:45:49,730 769 00:45:49,730 --> 00:45:51,770 Je to jen banda různých sloupců. 770 00:45:51,770 --> 00:45:53,070 A skutečně, to je 2. 771 00:45:53,070 --> 00:45:55,750 Takže partyid všechny republikán, většina z nich hlasují pro 2 osoby. 772 00:45:55,750 --> 00:45:58,390 >> Tak vypadá to, že, jen při pohledu na to, 773 00:45:58,390 --> 00:46:00,600 Republikánská bude very-- nebo partyid 774 00:46:00,600 --> 00:46:02,790 bude velmi významným faktorem při určování 775 00:46:02,790 --> 00:46:05,420 který kandidát jsou bude hlasovat pro. 776 00:46:05,420 --> 00:46:07,120 A je to samozřejmě platí obecně. 777 00:46:07,120 --> 00:46:10,139 A to odpovídá vašim intuice, samozřejmě. 778 00:46:10,139 --> 00:46:11,930 Takže to vypadá, jako bych málo času, takže 779 00:46:11,930 --> 00:46:17,040 dovolte mi, abych měla pokračovat a ukázat několik rychlých snímků. 780 00:46:17,040 --> 00:46:21,120 Tak tady je něco, co je trochu více komplikované s vizualizací. 781 00:46:21,120 --> 00:46:26,450 Takže v tomto případě se jedná o velmi Jednoduchá analýza jen kontrolovat, co 782 00:46:26,450 --> 00:46:28,500 prezident '04 je. 783 00:46:28,500 --> 00:46:33,920 >> Takže v tomto případě je, řekněme, že chtěl na tuto otázku odpovědět. 784 00:46:33,920 --> 00:46:38,540 Takže předpokládám, že jsme chtěli znát hlasování chování v 2004 prezident voleb 785 00:46:38,540 --> 00:46:41,170 a jak se to liší podle rasy. 786 00:46:41,170 --> 00:46:44,380 Takže nejen že chcete zobrazit chování hlasování, 787 00:46:44,380 --> 00:46:47,860 ale chcete podmnožinu každého závod a trochu shrnout, že. 788 00:46:47,860 --> 00:46:50,770 A můžete jen říct o této složité značení 789 00:46:50,770 --> 00:46:52,580 že je to druh stále mlhavé. 790 00:46:52,580 --> 00:46:56,390 >> Takže jeden z více pokročilý výzkum balíčky, které také druh nedávný 791 00:46:56,390 --> 00:47:00,070 se nazývá dplyr. 792 00:47:00,070 --> 00:47:03,060 Tak to je to jediné správné tady. 793 00:47:03,060 --> 00:47:08,080 A ggg-- ggplot2 je jen pěkná způsob, jak dělat lepší vizualizace 794 00:47:08,080 --> 00:47:09,400 než vestavěné v jednom. 795 00:47:09,400 --> 00:47:11,108 >> Takže jdu nahrát tyto dvě knihovny. 796 00:47:11,108 --> 00:47:13,200 797 00:47:13,200 --> 00:47:16,950 A pak, já jdu vpřed a spuštění tohoto příkazu. 798 00:47:16,950 --> 00:47:19,050 Stačí si jen léčit to jako černá skříňka. 799 00:47:19,050 --> 00:47:23,460 >> Co se to děje, je, že tato potrubí Provozovatel je kolem v tomto argumentu 800 00:47:23,460 --> 00:47:24,110 na zde. 801 00:47:24,110 --> 00:47:28,070 Takže říkám Skupinu dat závod a pak prezidentem 04. 802 00:47:28,070 --> 00:47:31,530 A pak to všechno ostatní příkazy filtrování a poté shrnující 803 00:47:31,530 --> 00:47:34,081 kde dělám počet a pak jsem ho vykreslování zde. 804 00:47:34,081 --> 00:47:39,980 805 00:47:39,980 --> 00:47:42,500 OK v pohodě. 806 00:47:42,500 --> 00:47:44,620 Tak pojďme do toho a vidět, jak to vypadá. 807 00:47:44,620 --> 00:47:52,280 808 00:47:52,280 --> 00:47:57,290 >> Takže to, co se tu děje, je, že jsem se jen vynesou každý ze závodů a pak 809 00:47:57,290 --> 00:47:59,670 ty, které oni volili. 810 00:47:59,670 --> 00:48:03,492 A tito dva různé hodnoty odpovídají 2 a 1. 811 00:48:03,492 --> 00:48:05,325 Chcete-li, aby se více Elegantní, můžete také 812 00:48:05,325 --> 00:48:11,770 stačí zadat, že 2 je Kerry-- nebo 2 je Bush, a pak 1 Kerry. 813 00:48:11,770 --> 00:48:13,700 A také můžete mít že v legendě. 814 00:48:13,700 --> 00:48:17,410 >> A také můžete rozdělit tyto sloupcové grafy. 815 00:48:17,410 --> 00:48:19,480 Vzhledem k tomu, jedna věc je že, pokud si všimnete, 816 00:48:19,480 --> 00:48:24,560 to není velmi snadno identifikovat který z těchto dvou hodnot je větší. 817 00:48:24,560 --> 00:48:27,920 Takže jedna věc, kterou byste chtěli udělat, je tento modrá oblast 818 00:48:27,920 --> 00:48:31,855 a jen přesunout ji, takže zde Můžete porovnat tyto dva vedle sebe. 819 00:48:31,855 --> 00:48:34,480 A myslím, že je to něco, co jsem nemají čas udělat právě teď, 820 00:48:34,480 --> 00:48:36,660 ale to je také velmi snadné. 821 00:48:36,660 --> 00:48:40,310 Můžete se jen dívat na manuálové stránky ggplot. 822 00:48:40,310 --> 00:48:47,170 Takže si můžete prostě ggplot jako to a přečtěte si do této manuálové stránce. 823 00:48:47,170 --> 00:48:51,920 >> Tak mi dovolte jen rychle ukázat nějaké zajímavé věci. 824 00:48:51,920 --> 00:48:57,610 Pojďme dál a jít to-- jen aplikace strojového učení. 825 00:48:57,610 --> 00:49:02,450 Řekněme, že máme tyto tři balíčky takže budu nahrát je do. 826 00:49:02,450 --> 00:49:05,500 827 00:49:05,500 --> 00:49:09,170 Tak to prostě vytiskne se na některé informace poté, co jsem vložen věci. 828 00:49:09,170 --> 00:49:15,220 Takže já říkám read.csv, Tento datový soubor, a teď 829 00:49:15,220 --> 00:49:18,940 Chystám se jít dopředu a podívat se a vidět, co je uvnitř tohoto souboru údajů. 830 00:49:18,940 --> 00:49:22,080 >> Takže prvních 20 pozorování. 831 00:49:22,080 --> 00:49:27,190 Tak jsem prostě x1, x2, a Y. Tak to Zdá se, jako banda těchto hodnot 832 00:49:27,190 --> 00:49:31,640 jsou od asi 20 až 80 nebo tak. 833 00:49:31,640 --> 00:49:37,700 A pak podobně pro X2 a poté Tento Y se zdá být štítky 0 a 1. 834 00:49:37,700 --> 00:49:49,500 >> Chcete-li ověřit, mohu prostě shrnutí dat X1. 835 00:49:49,500 --> 00:49:51,660 A pak podobně pro Všechny tyto další sloupce. 836 00:49:51,660 --> 00:49:55,300 Takže shrnutí je rychlý způsob, jak jen ukáže vám rychlé hodnoty. 837 00:49:55,300 --> 00:49:56,330 Oh, promiň. 838 00:49:56,330 --> 00:49:58,440 Ten by měl být Y. 839 00:49:58,440 --> 00:50:03,420 >> Takže v tomto případě dává kvantily, mediány, maxes stejně. 840 00:50:03,420 --> 00:50:07,130 V tomto případě, dataY, můžete vidět že je to jen bude 0 a 1. 841 00:50:07,130 --> 00:50:10,100 Také střední říká 0.6, prostě znamená, že ji 842 00:50:10,100 --> 00:50:13,380 Zdá se, jako bych mít více než 1s 0s. 843 00:50:13,380 --> 00:50:16,160 >> Tak nech mě jít dopředu a přehlídka vám, jak to vypadá. 844 00:50:16,160 --> 00:50:17,470 Takže jsem prostě jít na plot to. 845 00:50:17,470 --> 00:50:22,852 846 00:50:22,852 --> 00:50:24,636 Podívejme se, jak odstranit to. 847 00:50:24,636 --> 00:50:30,492 848 00:50:30,492 --> 00:50:31,468 Oh OK. 849 00:50:31,468 --> 00:50:35,840 850 00:50:35,840 --> 00:50:36,340 OK. 851 00:50:36,340 --> 00:50:37,590 >> Tak tohle je to, co to vypadá. 852 00:50:37,590 --> 00:50:46,310 Takže to vypadá, že žluté I uvedené as 0, a pak červenou jsem určen jako 1s. 853 00:50:46,310 --> 00:50:52,190 Tak tady to vypadá štítek body a to 854 00:50:52,190 --> 00:50:56,410 Zdá se, jako bys chtěl nějaký druh clusterů na toto téma. 855 00:50:56,410 --> 00:51:01,020 >> A dovolte mi, abych prostě jít dopředu a přehlídka jste některé z těchto vestavěných funkcí. 856 00:51:01,020 --> 00:51:03,580 Takže tady je lm. 857 00:51:03,580 --> 00:51:06,060 Tak to se jen snaží aby se vešly do linky to. 858 00:51:06,060 --> 00:51:08,640 Takže to, co je nejlepší způsob, jak že jsem se vejde linie, jako 859 00:51:08,640 --> 00:51:14,020 že bude nejlépe oddělí Tento druh clusterů. 860 00:51:14,020 --> 00:51:21,790 A v ideálním případě, stačí vidět že jsem spustit všechny tyto příkazy 861 00:51:21,790 --> 00:51:25,450 a pak, já jdu vpřed a přidejte řádek. 862 00:51:25,450 --> 00:51:28,970 >> Takže se to zdá jako nejlepší odhad. 863 00:51:28,970 --> 00:51:34,150 Je to brát nejlepší ten, který minimalizuje chyba ve snaze, aby se vešly tento řádek. 864 00:51:34,150 --> 00:51:40,000 Je zřejmé, že tento druh vypadá dobrý, ale není to nejlepší. 865 00:51:40,000 --> 00:51:43,130 A lineární modely, v Obecně platí, že se bude 866 00:51:43,130 --> 00:51:46,811 opravdu skvělé pro teorii a tak nějak stavebních základů stroje 867 00:51:46,811 --> 00:51:47,310 učení. 868 00:51:47,310 --> 00:51:50,330 Ale v praxi, budete Chcete udělat něco obecnějšího. 869 00:51:50,330 --> 00:51:54,280 >> Takže si můžete jen zkusit spustit něco jako neuronové sítě. 870 00:51:54,280 --> 00:51:57,110 Tyto věci jsou čím dál častější. 871 00:51:57,110 --> 00:52:00,530 A prostě fungují fantasticky pro velké soubory dat. 872 00:52:00,530 --> 00:52:07,080 Takže v tomto případě, my jen have-- Pojďme see-- máme nrow. 873 00:52:07,080 --> 00:52:09,010 Takže nrow je jen říkám, počet řádků. 874 00:52:09,010 --> 00:52:11,790 Takže v tomto případě, jsem mají 100 pozorování. 875 00:52:11,790 --> 00:52:15,010 >> Tak nech mě jít dopředu a jak neuronové sítě. 876 00:52:15,010 --> 00:52:18,620 Tak tohle je opravdu pěkný proto, že jsem si jen říct nnet 877 00:52:18,620 --> 00:52:21,767 a pak jsem regresi Y. Takže Y je to, že sloupec. 878 00:52:21,767 --> 00:52:23,850 A pak se to regresi na další dvě proměnné. 879 00:52:23,850 --> 00:52:27,360 Tak tohle je kratší notace pro X1 a X2. 880 00:52:27,360 --> 00:52:29,741 >> Tak pojďme do toho a spustit to. 881 00:52:29,741 --> 00:52:30,240 Oh, promiň. 882 00:52:30,240 --> 00:52:32,260 Musím běžet celou tuhle věc. 883 00:52:32,260 --> 00:52:37,500 A to je právě tiskne notace na tom, jak rychle, nebo ne rychle se 884 00:52:37,500 --> 00:52:38,460 sblížil. 885 00:52:38,460 --> 00:52:41,420 Takže to vypadá, že se sbíhají. 886 00:52:41,420 --> 00:52:44,970 Tak nech mě jít dopředu a tisk out, jak to vypadá. 887 00:52:44,970 --> 00:52:51,260 >> Můžete tady je obrázek, a tady je obrys ukazuje, jak dobře zapadá. 888 00:52:51,260 --> 00:52:56,380 A to je jen-- můžete vidět to, že je to velmi, velmi pěkné. 889 00:52:56,380 --> 00:52:59,400 Mohlo by to být i overfitting, ale můžete si také 890 00:52:59,400 --> 00:53:03,390 za toto s ostatními techniky, jako je cross-validace. 891 00:53:03,390 --> 00:53:06,180 A tito jsou také postaveny v R. 892 00:53:06,180 --> 00:53:09,170 >> A dovolte mi, abych vám ukázat podporovat Vector Machine. 893 00:53:09,170 --> 00:53:12,470 To je další opravdu obyčejný technika v strojového učení. 894 00:53:12,470 --> 00:53:18,550 To je velmi podobný lineární modely, ale používá, co se nazývá metoda jádro. 895 00:53:18,550 --> 00:53:22,790 A podívejme se, jak dobře, že dělá. 896 00:53:22,790 --> 00:53:26,430 Takže toto je velmi podobný tomu, jak dobře neuronová síť provádí, 897 00:53:26,430 --> 00:53:27,900 ale je to mnohem hladší. 898 00:53:27,900 --> 00:53:35,740 A je to založeno mimo z what-- jak SVMs práce. 899 00:53:35,740 --> 00:53:40,250 >> Tak to je jen velmi rychlý přehled některých 900 00:53:40,250 --> 00:53:43,822 z vestavěných funkcí, které můžete udělat a také některé z průzkumu dat. 901 00:53:43,822 --> 00:53:45,905 Takže mě prostě jít dopředu a vrátit se do snímků. 902 00:53:45,905 --> 00:53:50,290 903 00:53:50,290 --> 00:53:53,670 >> Tak zřejmé, že toto je ne velmi komplexní. 904 00:53:53,670 --> 00:53:57,140 A to je opravdu jen ukázka ukáže vám, co můžete opravdu v R. 905 00:53:57,140 --> 00:53:59,100 Takže pokud byste stejně jako se dozvědět více, zde 906 00:53:59,100 --> 00:54:01,210 jsou banda různých zdrojů. 907 00:54:01,210 --> 00:54:06,890 >> Takže pokud jste rádi učebnice nebo jste jen rád čtení věci on-line, 908 00:54:06,890 --> 00:54:09,670 pak je to fantastický jeden by Hadley Wickham, 909 00:54:09,670 --> 00:54:13,010 který také vytvořil všechny tyto opravdu cool balíčky. 910 00:54:13,010 --> 00:54:17,420 Pokud jste rádi videa, pak Berkeley má úžasné bootcamp 911 00:54:17,420 --> 00:54:21,060 to je several-- je to trochu dlouhé. 912 00:54:21,060 --> 00:54:24,210 A to vás naučí téměř všechno, co jste chtěli vědět o R. 913 00:54:24,210 --> 00:54:27,770 >> A podobně je tu Codeacademy a všechny tyto jiný druh 914 00:54:27,770 --> 00:54:29,414 na interaktivní webové stránky. 915 00:54:29,414 --> 00:54:31,580 Oni jsou také stále common-- běžnější. 916 00:54:31,580 --> 00:54:33,749 Tak to je velmi podobný Codeacademy. 917 00:54:33,749 --> 00:54:35,790 A konečně, pokud jste právě Chcete společenství, a pomoci, 918 00:54:35,790 --> 00:54:38,800 to jsou banda věci, které můžete jít. 919 00:54:38,800 --> 00:54:40,880 Je zřejmé, že stále používat e-mailové konference, právě 920 00:54:40,880 --> 00:54:44,860 jako téměř každý druhý programovací jazyk komunity. 921 00:54:44,860 --> 00:54:47,880 A #rstats, to je naše komunita Twitter. 922 00:54:47,880 --> 00:54:49,580 To je vlastně docela běžné. 923 00:54:49,580 --> 00:54:50,850 A pak uživatel! 924 00:54:50,850 --> 00:54:52,340 Je jen naše konference. 925 00:54:52,340 --> 00:54:55,390 >> A pak, samozřejmě, můžete použít všechny tyto jiné Q & A věci, 926 00:54:55,390 --> 00:54:57,680 jako přetečení zásobníku, Google, a pak GitHub. 927 00:54:57,680 --> 00:55:00,490 Protože většina z těchto balíčků a mnoho komunity 928 00:55:00,490 --> 00:55:03,420 bude soustředěn kolem rozvojových kód, protože je to open source. 929 00:55:03,420 --> 00:55:05,856 A to je jen opravdu hezky na GitHub. 930 00:55:05,856 --> 00:55:08,730 A konečně, můžete se mě, jestli kontaktovat stačí nějaké rychlé otázky. 931 00:55:08,730 --> 00:55:13,530 Takže si mě najít na Twitteru zde, moje webové stránky, a to jen můj e-mail. 932 00:55:13,530 --> 00:55:17,840 Tak doufejme, že to something-- jen krátký teaser 933 00:55:17,840 --> 00:55:20,900 čeho R je opravdu schopen dělat. 934 00:55:20,900 --> 00:55:23,990 A doufejme, že jste právě podívejte se na tyto tři odkazy 935 00:55:23,990 --> 00:55:25,760 a uvidíte, co můžete udělat víc. 936 00:55:25,760 --> 00:55:28,130 A já myslím, že je to jen o tom. 937 00:55:28,130 --> 00:55:28,630 Díky. 938 00:55:28,630 --> 00:55:30,780 >> [APPLAUSE] 939 00:55:30,780 --> 00:55:31,968