1 00:00:00,000 --> 00:00:00,750 2 00:00:00,750 --> 00:00:09,800 >> [REPRODUCCIÓ DE MÚSICA] 3 00:00:09,800 --> 00:00:13,014 4 00:00:13,014 --> 00:00:13,680 DUSTIN TRAN: Hola. 5 00:00:13,680 --> 00:00:14,980 Dustin del meu nom. 6 00:00:14,980 --> 00:00:18,419 Així que vaig a presentaré Anàlisi de dades en R. 7 00:00:18,419 --> 00:00:19,710 Només una mica sobre mi. 8 00:00:19,710 --> 00:00:24,320 Actualment sóc un estudiant graduat en les Ciències de l'Enginyeria i Aplicades. 9 00:00:24,320 --> 00:00:28,330 Jo estudi una intersecció de aprenentatge automàtic i estadístiques 10 00:00:28,330 --> 00:00:31,375 Així, l'anàlisi de dades en R és realment fonamental per al 11 00:00:31,375 --> 00:00:33,790 Ho faig cada dia. 12 00:00:33,790 --> 00:00:35,710 >> I R és especialment bo per a l'anàlisi de dades 13 00:00:35,710 --> 00:00:39,310 perquè és molt bo per a la creació de prototips. 14 00:00:39,310 --> 00:00:43,590 I en general, quan estàs fent alguna mena d'anàlisi de dades, molts dels problemes 15 00:00:43,590 --> 00:00:44,920 van a cognitiva. 16 00:00:44,920 --> 00:00:48,700 I pel que només volen tenir la molt bona llenguatge que 17 00:00:48,700 --> 00:00:53,770 és només bo per fer funcions incorporades, en oposició 18 00:00:53,770 --> 00:00:57,430 a haver de bregar amb les coses de baix nivell. 19 00:00:57,430 --> 00:01:01,040 Així que en el principi, jo només vaig per introduir el que és R, per què 20 00:01:01,040 --> 00:01:04,540 que voleu utilitzar, i després anar per sobre en alguna demostració, 21 00:01:04,540 --> 00:01:07,060 i només ha d'anar d'allà. 22 00:01:07,060 --> 00:01:08,150 >> Llavors, què és R? 23 00:01:08,150 --> 00:01:11,180 R és només un llenguatge desenvolupat per al càlcul estadístic 24 00:01:11,180 --> 00:01:12,450 i la visualització. 25 00:01:12,450 --> 00:01:16,000 El que això significa és que és un llenguatge molt excel·lent 26 00:01:16,000 --> 00:01:22,400 per a qualsevol tipus de cosa que s'ocupa de incertesa o la visualització de dades. 27 00:01:22,400 --> 00:01:24,850 Així que tens tots aquests distribucions de probabilitat. 28 00:01:24,850 --> 00:01:27,140 No seran funcions incorporades. 29 00:01:27,140 --> 00:01:31,650 També tindràs excel·lent conspirar paquets. 30 00:01:31,650 --> 00:01:34,110 >> Python és un altre que competeixen idioma per a dades. 31 00:01:34,110 --> 00:01:40,020 I una cosa que em sembla que R és molt millor és la visualització. 32 00:01:40,020 --> 00:01:45,200 Així que el que vostè veurà a la demo com així és només un llenguatge molt intuïtiu 33 00:01:45,200 --> 00:01:48,050 que només funciona extremadament bé. 34 00:01:48,050 --> 00:01:53,140 També és lliure i de codi obert, com és un altre bon llenguatge suposo. 35 00:01:53,140 --> 00:01:55,440 >> I aquí, un munt de poc paraules clau llançat en vostè. 36 00:01:55,440 --> 00:02:00,450 És dinàmic, és a dir, si té una tipus específic assignat a un objecte 37 00:02:00,450 --> 00:02:02,025 del que només canviarà sobre la marxa. 38 00:02:02,025 --> 00:02:05,670 És mandrós, així que és intel·ligent sobre com ho fa càlculs. 39 00:02:05,670 --> 00:02:12,250 Funcionals, el que realment pot funcionar amb seu fora de funcions, per anything-- 40 00:02:12,250 --> 00:02:16,910 qualsevol tipus de manipulació que ets fent, es basa fora funcions. 41 00:02:16,910 --> 00:02:20,162 >> Així operadors binaris, per exemple, són funcions intrínsecament just. 42 00:02:20,162 --> 00:02:21,870 I tot el que que vas a fer és 43 00:02:21,870 --> 00:02:24,690 va a executar fora de si mateix funcions. 44 00:02:24,690 --> 00:02:27,140 I llavors orientat a objectes també. 45 00:02:27,140 --> 00:02:30,930 >> Així que aquí és una parcel·la XKCD. 46 00:02:30,930 --> 00:02:34,350 No només perquè em sento com XKCD és fonamental per a qualsevol tipus 47 00:02:34,350 --> 00:02:37,770 de presentació, sinó perquè Sento que això realment 48 00:02:37,770 --> 00:02:42,160 martells al punt que una gran part del moment en què vostè està fent algun tipus de dades 49 00:02:42,160 --> 00:02:46,570 anàlisi, el problema no és tant la rapidesa amb que s'executa, 50 00:02:46,570 --> 00:02:49,850 però quant de temps es va a el portarà a programar la tasca. 51 00:02:49,850 --> 00:02:54,112 Així que aquí és només analitzar si estratègia a o b és més eficient. 52 00:02:54,112 --> 00:02:55,820 Això serà cosa que ets 53 00:02:55,820 --> 00:02:58,290 va a tractar molt amb en tipus de llenguatges de baix nivell 54 00:02:58,290 --> 00:03:03,440 on vostè està tractant amb faltes seg, assignació de memòria, inicialitzacions, 55 00:03:03,440 --> 00:03:05,270 fins i tot fent les funcions incorporades. 56 00:03:05,270 --> 00:03:09,920 I això és manejat molt, molt elegant en R. 57 00:03:09,920 --> 00:03:12,839 >> Així que per martellejar aquesta punt, el major coll d'ampolla 58 00:03:12,839 --> 00:03:13,880 serà cognitiu. 59 00:03:13,880 --> 00:03:17,341 Així, l'anàlisi de dades és un problema molt difícil. 60 00:03:17,341 --> 00:03:19,340 Ja sigui que vostè està fent aprenentatge automàtic o ets 61 00:03:19,340 --> 00:03:22,550 fent només una mena de exploració de dades bàsiques, 62 00:03:22,550 --> 00:03:25,290 no vol tenir a prendre un document 63 00:03:25,290 --> 00:03:27,440 i després compilar cosa cada vegada que 64 00:03:27,440 --> 00:03:31,010 vol veure el que una columna s'assembla, el particular, les entrades en una matriu 65 00:03:31,010 --> 00:03:32,195 sembla. 66 00:03:32,195 --> 00:03:34,320 Així que només vull tenir alguna de les interfícies realment agradable 67 00:03:34,320 --> 00:03:37,740 pot executar una funció simple que els índexs al 68 00:03:37,740 --> 00:03:41,870 desitja i només executa des d'allà. 69 00:03:41,870 --> 00:03:44,190 I necessites domini llenguatges específics per a això. 70 00:03:44,190 --> 00:03:51,750 I R realment l'ajudarà a definir el problema i resoldre'l d'aquesta manera. 71 00:03:51,750 --> 00:03:58,690 >> Així que aquí és una mostra de programació trama popularitat del R com s'ha anat amb el temps. 72 00:03:58,690 --> 00:04:04,060 Així com vostè pot veure, com 2013 o de manera que només volat enormement. 73 00:04:04,060 --> 00:04:09,570 I això ha estat només per això gran tendència en la indústria de la tecnologia 74 00:04:09,570 --> 00:04:10,590 dades sobre grans. 75 00:04:10,590 --> 00:04:13,010 A més, no només la tecnologia indústria, però en realitat 76 00:04:13,010 --> 00:04:16,490 qualsevol que- indústria perquè moltes de les indústries 77 00:04:16,490 --> 00:04:20,589 són una espècie de fonamental tractant de resoldre aquests problemes. 78 00:04:20,589 --> 00:04:24,590 I en general, es pot tenir una mica de bona forma de mesurar aquests problemes 79 00:04:24,590 --> 00:04:29,720 o fins i tot la definició d'ells o resoldre'ls utilitzant les dades. 80 00:04:29,720 --> 00:04:35,430 Així que crec que en aquest moment R és l'11 més popular llenguatge de TIOBE 81 00:04:35,430 --> 00:04:38,200 i ha estat creixent des de llavors. 82 00:04:38,200 --> 00:04:40,740 83 00:04:40,740 --> 00:04:43,080 >> Així que aquí està una mica més característiques de R. Té 84 00:04:43,080 --> 00:04:46,900 un enorme nombre de paquets i per totes aquestes coses diferents. 85 00:04:46,900 --> 00:04:52,470 Així que cada vegada que tingui un cert problema, la majoria 86 00:04:52,470 --> 00:04:55,060 el temps de R tindrà aquesta funció per a vostè. 87 00:04:55,060 --> 00:04:58,520 Així que si vostè vol construir una espècie de màquina 88 00:04:58,520 --> 00:05:02,770 algorisme d'aprenentatge anomenat Random Forest o arbres de decisió, 89 00:05:02,770 --> 00:05:07,530 o fins i tot tractant de prendre la mitjana de una funció o qualsevol d'aquestes coses, 90 00:05:07,530 --> 00:05:10,000 R haurà de. 91 00:05:10,000 --> 00:05:14,190 >> I si ho fas t'importa optimització, una cosa que és comú 92 00:05:14,190 --> 00:05:17,430 és que després que estiguis prototips acabat algun tipus de llenguatge d'alt nivell, 93 00:05:17,430 --> 00:05:19,810 vostè haurà de tirar en-- Vostè acaba de port que més del 94 00:05:19,810 --> 00:05:21,550 a un llenguatge de baix nivell. 95 00:05:21,550 --> 00:05:26,090 El millor de R és que una vegada que estàs fet de prototips, pot executar C ++, 96 00:05:26,090 --> 00:05:29,510 o Fortran, o qualsevol d'aquests els de nivell inferior directament en R. 97 00:05:29,510 --> 00:05:32,320 Així que aquesta és una realitat característica fresca sobre R, 98 00:05:32,320 --> 00:05:35,930 si realment es preocupen per el punt d'optimització. 99 00:05:35,930 --> 00:05:39,490 >> I també és molt bo per visualitzacions web. 100 00:05:39,490 --> 00:05:43,530 Així D3.js, per exemple, és Suposo altre seminari 101 00:05:43,530 --> 00:05:45,130 que presentem avui. 102 00:05:45,130 --> 00:05:48,510 I això és realment impressionant per fent visualitzacions interactives. 103 00:05:48,510 --> 00:05:54,460 I D3.js suposa que té algun tipus de dades que es pintaran 104 00:05:54,460 --> 00:05:58,080 i R és una gran manera de ser capaç de fer l'anàlisi de les dades abans d'exportar- 105 00:05:58,080 --> 00:06:04,220 a D3.js o simplement córrer Comandaments D3.js en si mateix R, 106 00:06:04,220 --> 00:06:08,240 així com tots aquests altres biblioteques també. 107 00:06:08,240 --> 00:06:13,041 >> Així que això va ser només la introducció de el que és R i per les que podria usar-lo. 108 00:06:13,041 --> 00:06:14,790 Així que espero, tinc vostè convençut d'alguna cosa 109 00:06:14,790 --> 00:06:18,460 sobre tractant de veure el que se sent. 110 00:06:18,460 --> 00:06:23,930 Així que vaig a seguir endavant i passar per alguns fonaments sobre els objectes R 111 00:06:23,930 --> 00:06:26,150 i el que realment es pot fer. 112 00:06:26,150 --> 00:06:29,690 >> Així que aquí és només una munt d'opcions matemàtiques. 113 00:06:29,690 --> 00:06:35,000 Així que dius you're-- vol construir mateix idioma i el que desitja 114 00:06:35,000 --> 00:06:38,080 tenir un munt de diferents eines. 115 00:06:38,080 --> 00:06:42,520 Qualsevol tipus d'operació que vostè pensa que li volem és més o menys estarà en R. 116 00:06:42,520 --> 00:06:44,150 >> Així que aquí és 2 més 2. 117 00:06:44,150 --> 00:06:46,090 Aquí és 2 cops pi. 118 00:06:46,090 --> 00:06:51,870 R té un munt de constants integrades que utilitzarà sovint com pi, i. 119 00:06:51,870 --> 00:06:56,230 >> I llavors, aquí és 7 més runif, per runif d'1. 120 00:06:56,230 --> 00:07:02,450 Aquesta és una funció que és genera 1 aleatòria uniforme de 0 a 1. 121 00:07:02,450 --> 00:07:04,400 I després hi ha 3 a la potència de 4. 122 00:07:04,400 --> 00:07:06,430 Hi ha arrels quadrades. 123 00:07:06,430 --> 00:07:07,270 >> Hi ha registre. 124 00:07:07,270 --> 00:07:14,500 Així que ingressi farà de base exponencial per si mateix. 125 00:07:14,500 --> 00:07:18,337 I després, si s'especifica un lloc, a continuació, vostè pot fer el base que desitgi. 126 00:07:18,337 --> 00:07:19,920 I llavors aquí hi ha alguns altres comandaments. 127 00:07:19,920 --> 00:07:22,180 Així que tens 23 mod 2. 128 00:07:22,180 --> 00:07:24,910 Llavors vostè té la resta. 129 00:07:24,910 --> 00:07:27,110 Llavors vostè té científica notació si també 130 00:07:27,110 --> 00:07:34,060 voler fer més just i les coses més complicades. 131 00:07:34,060 --> 00:07:37,320 >> Així que aquí està l'assignació. 132 00:07:37,320 --> 00:07:40,830 Assignacions tan típics en R es realitza amb una fletxa 133 00:07:40,830 --> 00:07:43,440 pel que és menys i després el guió. 134 00:07:43,440 --> 00:07:47,250 Així que aquí estic assignant 3 al val variable. 135 00:07:47,250 --> 00:07:50,160 >> I després estic imprimint val i després imprimeix 03:00. 136 00:07:50,160 --> 00:07:53,920 Per defecte en R intèrpret, que imprimirà les coses per a vostè 137 00:07:53,920 --> 00:07:57,280 pel que no ha d'especificar imprimir un val qualsevol moment que desitgi imprimir alguna cosa. 138 00:07:57,280 --> 00:08:00,200 Vostè només pot fer val i llavors va a fer això per vostè. 139 00:08:00,200 --> 00:08:04,380 >> A més, es pot usar és igual tècnicament com un operador d'assignació. 140 00:08:04,380 --> 00:08:07,190 Hi ha subtileses lleugeres entre l'ús de la fletxa 141 00:08:07,190 --> 00:08:10,730 operador i els iguals operador de les assignacions. 142 00:08:10,730 --> 00:08:15,470 Majorment per convenció, tothom s'acaba d'utilitzar l'operador fletxa. 143 00:08:15,470 --> 00:08:21,850 >> I aquí, estic assignant aquest notació obliqua diu 1 de còlon juny. 144 00:08:21,850 --> 00:08:26,010 Això genera un vector d'1 a 6. 145 00:08:26,010 --> 00:08:29,350 I això realment agradable perquè llavors que acaba d'assignar el vector de val 146 00:08:29,350 --> 00:08:34,270 i que funciona per si mateix. 147 00:08:34,270 --> 00:08:37,799 >> Així que això ja està passant d'un single-- una dada molt intuïtiu 148 00:08:37,799 --> 00:08:41,070 estructura de només un doble de algun tipus de tipus en un vector 149 00:08:41,070 --> 00:08:45,670 i que recollirà tots els valors escalars per a vostè. 150 00:08:45,670 --> 00:08:50,770 Així que després de passar d'escalar, que tenir objectes R i aquest és un vector. 151 00:08:50,770 --> 00:08:55,610 Un vector és qualsevol tipus de col·lecció del mateix tipus. 152 00:08:55,610 --> 00:08:58,150 Així que aquí hi ha un munt de vectors. 153 00:08:58,150 --> 00:08:59,800 >> Així que això és numèric. 154 00:08:59,800 --> 00:09:02,440 Numèric és manera de dir el doble de R. 155 00:09:02,440 --> 00:09:07,390 I així, per defecte, qualsevol nombre serà un doble. 156 00:09:07,390 --> 00:09:13,150 >> Així que si vostè té c de 1.1, 3, 5.7 negatiu, el c és una funció. 157 00:09:13,150 --> 00:09:16,760 Aquest concatena els tres nombres en un vector. 158 00:09:16,760 --> 00:09:19,619 I això va ser: el que si nota 3 per si mateix, 159 00:09:19,619 --> 00:09:21,910 que normalment s'assumeix que això és com un sencer, 160 00:09:21,910 --> 00:09:25,050 sinó perquè tots els vectors són del mateix tipus, 161 00:09:25,050 --> 00:09:28,660 Aquest és un vector de dobles o numèric en aquest cas. 162 00:09:28,660 --> 00:09:34,920 >> RNorm és una funció que genera variables-- normal estàndard 163 00:09:34,920 --> 00:09:36,700 o valors normals estàndard. 164 00:09:36,700 --> 00:09:38,360 I estic especificant dos d'ells. 165 00:09:38,360 --> 00:09:43,840 Així que estic fent RNorm 2, l'assignació que per desenvolupadors, i després estic imprimint desenvolupadors. 166 00:09:43,840 --> 00:09:47,350 Així que aquests són només dos valors normals aleatòries. 167 00:09:47,350 --> 00:09:50,060 >> I després intercepcions si ho fa vostè es preocupa per nombres enters. 168 00:09:50,060 --> 00:09:54,650 Així que això és només sobre la memòria assignació i estalvi de mida de la memòria. 169 00:09:54,650 --> 00:10:01,460 Així que hauria d'afegir els seus números de la capital L. 170 00:10:01,460 --> 00:10:04,170 >> En general, aquest és Notació històric de R 171 00:10:04,170 --> 00:10:06,940 per una cosa anomenada sencer llarg. 172 00:10:06,940 --> 00:10:09,880 Així que la majoria de les vegades, se li ser tractar amb dobles. 173 00:10:09,880 --> 00:10:15,180 I si alguna vegada ho farà més tard en optimitzar el codi, 174 00:10:15,180 --> 00:10:18,110 vostè pot afegir aquests L's després o durant ella 175 00:10:18,110 --> 00:10:22,280 si ets com premonitòria del que que vas a fer aquestes variables. 176 00:10:22,280 --> 00:10:25,340 177 00:10:25,340 --> 00:10:26,890 >> Així que aquí és un vector de caràcters. 178 00:10:26,890 --> 00:10:31,440 Així que, de nou, estic concatenant tres cordes aquesta vegada. 179 00:10:31,440 --> 00:10:36,230 Observeu que les cadenes dobles i cordes soltes són els mateixos en R. 180 00:10:36,230 --> 00:10:41,000 Així que tinc arturo i de marvin etc. quan estic imprimir-lo, tots ells 181 00:10:41,000 --> 00:10:43,210 mostraran cordes dobles. 182 00:10:43,210 --> 00:10:45,880 I si també voleu incloure la cadena doble o individual 183 00:10:45,880 --> 00:10:50,070 en els seus personatges, llavors es pot o bé alternar les seves cordes. 184 00:10:50,070 --> 00:10:53,540 >> Així marvin de la segon element, és a dir 185 00:10:53,540 --> 00:10:56,380 va a show-- vostè només hi ha cordes dobles 186 00:10:56,380 --> 00:10:59,050 i després una sola cadena pel que aquest és altern. 187 00:10:59,050 --> 00:11:04,040 Altrament, si voleu utilitzar un doble operador de cadena en una doble cadena 188 00:11:04,040 --> 00:11:07,090 quan vostè està declarant que, a continuació, només ha d'utilitzar l'operador d'escapament. 189 00:11:07,090 --> 00:11:10,600 Així ho fa la doble cadena de barra invertida. 190 00:11:10,600 --> 00:11:13,330 >> I, finalment, també tenir vectors lògics. 191 00:11:13,330 --> 00:11:15,890 Així logical-- tan TRUE i la falsedat, i són 192 00:11:15,890 --> 00:11:18,880 serà majúscules. 193 00:11:18,880 --> 00:11:22,370 I llavors, un cop més, estic concatenant i després ells assignant a Bools. 194 00:11:22,370 --> 00:11:24,590 Així Bools mostrarà vostè TRUE, FALSE i TRUE. 195 00:11:24,590 --> 00:11:28,280 196 00:11:28,280 --> 00:11:31,620 >> Així que aquí està la indexació vectoritzat. 197 00:11:31,620 --> 00:11:34,870 Així que, en principi, jo Estic prenent un function-- 198 00:11:34,870 --> 00:11:39,230 això es diu un sequence-- seqüència de 2 a 12. 199 00:11:39,230 --> 00:11:42,490 I jo estic prenent una seqüència per 2. 200 00:11:42,490 --> 00:11:46,660 Així que va a fer 2, 4, 6, 8, 10 i 12. 201 00:11:46,660 --> 00:11:50,080 I després, estic d'indexació per obtenir el tercer element. 202 00:11:50,080 --> 00:11:55,770 >> Així que una cosa a tenir en compte és que els índexs de R a partir de l'1. 203 00:11:55,770 --> 00:12:00,550 Així vals març donarà que el tercer element. 204 00:12:00,550 --> 00:12:04,580 Aquesta és una espècie de diferent d'altres idiomes en què s'inicia des de zero. 205 00:12:04,580 --> 00:12:09,780 Així que en C o C ++, per exemple, vostè és aconseguirà el quart element. 206 00:12:09,780 --> 00:12:13,280 >> I aquí hi ha el vals de 3 a 5. 207 00:12:13,280 --> 00:12:16,030 Així que una cosa que és realment genial és que vostè 208 00:12:16,030 --> 00:12:20,410 pot generar variables temporals dins i després només ha d'utilitzar sobre la marxa. 209 00:12:20,410 --> 00:12:21,960 Així que aquí és de 3 a 5. 210 00:12:21,960 --> 00:12:25,070 Així que estic generant un vector 3, 4, i 5 i després 211 00:12:25,070 --> 00:12:29,700 Estic indexació d'aconseguir el tercer, quart, i el cinquè element. 212 00:12:29,700 --> 00:12:32,280 >> Així mateix, pot abstracta que això només ho fan 213 00:12:32,280 --> 00:12:35,280 qualsevol tipus d'un vector que et dóna la indexació. 214 00:12:35,280 --> 00:12:40,050 Així que aquí està el vals i després el primer, tercer i sisè elements. 215 00:12:40,050 --> 00:12:42,800 I després, si vols fer un complement, 216 00:12:42,800 --> 00:12:45,210 pel que acaba de fer el signe menys després i que va a 217 00:12:45,210 --> 00:12:48,600 et donarà tot el que no és el primera, tercera, sisena o element. 218 00:12:48,600 --> 00:12:51,590 Així que aquest serà 4, 8, i 10. 219 00:12:51,590 --> 00:12:54,380 >> I si vostè vol aconseguir encara més avançada, 220 00:12:54,380 --> 00:12:57,610 pot concatenar vectors de Boole. 221 00:12:57,610 --> 00:13:05,210 Així que aquest índex es va a donar aquest vector booleà de longitud 6. 222 00:13:05,210 --> 00:13:07,280 Així representant TRUE coma març. 223 00:13:07,280 --> 00:13:09,680 Això es repetirà VERITABLES tres vegades. 224 00:13:09,680 --> 00:13:12,900 Així que això et donarà TRUE, TRUE, TRUE vector. 225 00:13:12,900 --> 00:13:17,470 >> rep FALS 4-- això es va a donar un vector de FALS, FALS, FALS, FALS. 226 00:13:17,470 --> 00:13:21,280 I llavors c va a concatenar aquests dos booleans junts. 227 00:13:21,280 --> 00:13:24,090 Així que vas a aconseguir tres Veritables i després quatre falses. 228 00:13:24,090 --> 00:13:28,460 >> Així que quan vostè vals índex, ets va a obtenir el TRUE TRUE, TRUE ,. 229 00:13:28,460 --> 00:13:31,420 Així que dirà que sí, Vull que aquests tres elements. 230 00:13:31,420 --> 00:13:33,520 I després FALS, FALS, FALS, FALS va 231 00:13:33,520 --> 00:13:37,140 dir que no, no vull aquests elements pel que no va a tornar-los. 232 00:13:37,140 --> 00:13:41,490 >> I suposo que en realitat hi ha un error tipogràfic aquí perquè això ja és dir repetició TRUE 3 233 00:13:41,490 --> 00:13:47,990 i repetir FALS 4, i tècnicament, que només tenen sis elements per repeteixen FALSE, 234 00:13:47,990 --> 00:13:50,470 que hauria de ser repetida FALS 3. 235 00:13:50,470 --> 00:13:55,260 Crec que R es prou intel·ligent com que si només especifica 4 aquí, llavors 236 00:13:55,260 --> 00:13:56,630 que ni tan sols l'error fora. 237 00:13:56,630 --> 00:13:58,480 S'acaba de donar-li aquest valor. 238 00:13:58,480 --> 00:14:00,970 Així que només vaig a ignorar aquest quart FALS. 239 00:14:00,970 --> 00:14:05,310 240 00:14:05,310 --> 00:14:09,270 >> Així que aquí està l'assignació vectoritzat. 241 00:14:09,270 --> 00:14:15,480 Així set.seed-- això només estableix el llavor per nombres pseudoaleatoris. 242 00:14:15,480 --> 00:14:20,110 Així que estic establint que la llavor 42, el que significa que si gènere 243 00:14:20,110 --> 00:14:22,950 3 aleatòria normal valors i, a continuació, si 244 00:14:22,950 --> 00:14:27,400 run set.seed pel seu compte equip amb el mateix valor de 42, 245 00:14:27,400 --> 00:14:30,990 llavors vostè també aconsegueix el mateixos tres normals aleatòries. 246 00:14:30,990 --> 00:14:33,411 >> Així que això és realment bo per a la reproductibilitat. 247 00:14:33,411 --> 00:14:35,910 En general, quan estàs fent alguna cosa de tipus d'anàlisi científica, 248 00:14:35,910 --> 00:14:37,230 que es vol establir la llavor. 249 00:14:37,230 --> 00:14:41,270 D'aquesta manera altres científics poden simplement reproduir exactament el mateix codi que has 250 00:14:41,270 --> 00:14:44,790 fet perquè tindran l'exacta mateixes variables aleatòries que-- o l'atzar 251 00:14:44,790 --> 00:14:47,270 valors que ha pres cap a fora també. 252 00:14:47,270 --> 00:14:49,870 253 00:14:49,870 --> 00:14:53,910 >> I així, l'assignació vectorizada aquí està mostrant el vals 1-2. 254 00:14:53,910 --> 00:14:59,290 Per tant, pren els dos primers elements de vals i després els assigna a 0. 255 00:14:59,290 --> 00:15:03,940 I després, també pot simplement fer el una cosa similar amb els Booleans. 256 00:15:03,940 --> 00:15:09,340 >> Així vals no és igual a 0-- aquesta voluntat donar-li un FALS vector, FALSE, TRUE 257 00:15:09,340 --> 00:15:10,350 en aquest cas. 258 00:15:10,350 --> 00:15:13,770 I després, que va a dir res dels índexs que fos cert, 259 00:15:13,770 --> 00:15:15,270 llavors va a assignar aquesta a 5. 260 00:15:15,270 --> 00:15:18,790 Per tant, pren el tercer element aquí i després ho assigna a 5. 261 00:15:18,790 --> 00:15:22,300 >> I això és realment agradable en comparació amb els llenguatges de baix nivell 262 00:15:22,300 --> 00:15:25,560 on has de fer servir els bucles fer totes aquestes coses vectorizada 263 00:15:25,560 --> 00:15:30,281 perquè només és molt intuïtiu i és un sol d'una sola línia. 264 00:15:30,281 --> 00:15:32,030 I el que és bo de notació vectorizada 265 00:15:32,030 --> 00:15:37,020 és que en R, aquests són una mena de incorporat perquè estiguin gairebé tan ràpid 266 00:15:37,020 --> 00:15:42,490 com fer en un llenguatge de baix nivell que en comptes de fer un bucle en R 267 00:15:42,490 --> 00:15:46,317 i després haver de fer la pròpia indexació dinàmica. 268 00:15:46,317 --> 00:15:48,900 I que serà més lent que fer aquest tipus de coses vectorizada 269 00:15:48,900 --> 00:15:55,950 on pot fer-ho en paral·lel, on ho està fent en el roscat bàsicament. 270 00:15:55,950 --> 00:15:58,650 >> Així que aquí està vectoritzat operacions. 271 00:15:58,650 --> 00:16:04,920 Així que estic generant un valor d'1 a 3, l'assignació que a vec1, 3 a 5, vec2, 272 00:16:04,920 --> 00:16:05,950 sumant. 273 00:16:05,950 --> 00:16:11,490 Les afegeix components sabia el es 1 més 3, 2 més 4, i així successivament. 274 00:16:11,490 --> 00:16:13,330 >> vec1 vegades vec2. 275 00:16:13,330 --> 00:16:16,110 Això multiplica els dos valors dels components savi. 276 00:16:16,110 --> 00:16:21,830 Així que és 1 Temps 3, 2 vegades 4, i després 3 vegades maig. 277 00:16:21,830 --> 00:16:28,250 >> I després, de manera similar es pot també fer comparisons-- comparacions lògiques. 278 00:16:28,250 --> 00:16:33,640 Així que és FALS VERTADER FALS en aquest cas perquè 1 no és més gran que 3, 279 00:16:33,640 --> 00:16:35,920 2 no és major que 4. 280 00:16:35,920 --> 00:16:41,160 Això és, suposo, un altre error tipogràfic, 3 definitivament no és superior a 5. 281 00:16:41,160 --> 00:16:41,660 Sí. 282 00:16:41,660 --> 00:16:45,770 I el que només pot fer tot aquestes operacions simples 283 00:16:45,770 --> 00:16:48,350 perquè la seva heretat dels propis classes. 284 00:16:48,350 --> 00:16:51,110 285 00:16:51,110 --> 00:16:52,580 >> Així que això va ser només el vector. 286 00:16:52,580 --> 00:16:56,530 I això és una espècie de la més fonamental R objecte perquè donat un vector, 287 00:16:56,530 --> 00:16:59,170 vostè pot construir objectes més avançats. 288 00:16:59,170 --> 00:17:00,560 >> Així que aquí està una matriu. 289 00:17:00,560 --> 00:17:05,030 Aquesta és essencialment l'abstracció del que és en si mateixa una matriu. 290 00:17:05,030 --> 00:17:10,099 Així que en aquest cas, és tres diferents vectors, on cada un és una columna, 291 00:17:10,099 --> 00:17:12,710 o es pot considerar que ja que cada un és una fila. 292 00:17:12,710 --> 00:17:18,250 >> Així que estic emmagatzemar una matriu d'1 a 9 i després estic especificant 3 files. 293 00:17:18,250 --> 00:17:23,364 Així 1-9 li donarà un vector 1, 2, 3, 4, 5, 6, i tot el camí a 9. 294 00:17:23,364 --> 00:17:29,250 >> Una cosa a tenir en compte és que Botigues R valors en format de columna principal. 295 00:17:29,250 --> 00:17:34,160 Així, en altres paraules, quan veus 1 a 9, que va a emmagatzemar ells-- 296 00:17:34,160 --> 00:17:36,370 que serà 1, 2, 3 a la primera columna, 297 00:17:36,370 --> 00:17:38,510 i després que farà 4, 5, 6 a la segona columna, 298 00:17:38,510 --> 00:17:41,440 i després 7, 8, 9 a la tercera columna. 299 00:17:41,440 --> 00:17:45,570 >> I aquí estan alguns altres funcions comuns que es poden utilitzar. 300 00:17:45,570 --> 00:17:49,650 Així tènue estora, això li donarà les dimensions de la matriu. 301 00:17:49,650 --> 00:17:52,620 Se't tornarà un vector de la dimensió. 302 00:17:52,620 --> 00:17:55,580 Així, en aquest cas, perquè la nostra matriu és de 3 per 3, 303 00:17:55,580 --> 00:18:01,900 que va a donar-li una vector numèric que hi ha 3 mar. 304 00:18:01,900 --> 00:18:05,270 >> I aquí s'acaba mostrant la multiplicació de matrius. 305 00:18:05,270 --> 00:18:11,970 Així que en general, si només fem asterisk-- tan estora asterisc mat-- 306 00:18:11,970 --> 00:18:15,380 això serà operació de component sàvia 307 00:18:15,380 --> 00:18:17,300 o el que es diu el producte de Hadamard. 308 00:18:17,300 --> 00:18:21,310 Així que va a fer cadascun element component es refereix. 309 00:18:21,310 --> 00:18:23,610 No obstant això, si vols multiplication-- matriu 310 00:18:23,610 --> 00:18:29,380 de manera que la multiplicació dels primers temps de fila primera columna de la segona matriu de 311 00:18:29,380 --> 00:18:34,510 i així en-- usaries aquesta operació per cent. 312 00:18:34,510 --> 00:18:38,110 >> I t de estora és només una operació de transposició. 313 00:18:38,110 --> 00:18:42,590 Així que estic dient prendre la transposada a la matriu, es multiplica per la matriu 314 00:18:42,590 --> 00:18:43,090 si mateix. 315 00:18:43,090 --> 00:18:45,006 I després es va a tornarà a vosaltres una altra 3 316 00:18:45,006 --> 00:18:50,700 per 3, que mostra la matriu el producte que t'agradaria. 317 00:18:50,700 --> 00:18:53,750 >> I pel que va ser la matriu. 318 00:18:53,750 --> 00:18:56,020 Això és el que s'anomena una trama de dades. 319 00:18:56,020 --> 00:19:00,780 Una trama de dades que es pugui imaginar com una matriu, però cada pròpia columna 320 00:19:00,780 --> 00:19:02,990 serà d'un tipus diferent. 321 00:19:02,990 --> 00:19:07,320 >> Llavors, què és realment bo de dades marcs és que en l'anàlisi de dades en si, 322 00:19:07,320 --> 00:19:11,260 tindràs tot això dades heterogènies i tot això realment 323 00:19:11,260 --> 00:19:15,640 coses brutes en què cadascuna de les columnes per si mateixos poden ser de diferents tipus. 324 00:19:15,640 --> 00:19:21,460 Així que aquí estic dient a crear un trama de dades, fer sencers d'1 a 3, 325 00:19:21,460 --> 00:19:24,750 i després també tenir un vector de caràcters. 326 00:19:24,750 --> 00:19:28,470 Així que pot indexar a través cadascuna d'aquestes columnes 327 00:19:28,470 --> 00:19:30,930 i després vaig a aconseguir els propis valors. 328 00:19:30,930 --> 00:19:34,370 I també es pot fer algun tipus d'operacions en trames de dades. 329 00:19:34,370 --> 00:19:38,040 I la majoria de les vegades quan estàs fer anàlisis de dades o algun tipus 330 00:19:38,040 --> 00:19:42,042 de processament previ, podràs treballar amb aquestes estructures de dades 331 00:19:42,042 --> 00:19:44,250 on cada columna es va a ser d'un tipus diferent. 332 00:19:44,250 --> 00:19:47,880 333 00:19:47,880 --> 00:19:52,970 >> Finalment, pel que aquests són essencialment només els quatre objectes essencials en Llista R. 334 00:19:52,970 --> 00:19:55,820 s'acaba de recollir qualsevol altres objectes que et volen. 335 00:19:55,820 --> 00:20:00,130 Per tant, emmagatzemarà aquesta en un variable que es pot accedir fàcilment. 336 00:20:00,130 --> 00:20:02,370 >> Així que aquí, estic prenent una llista. 337 00:20:02,370 --> 00:20:04,460 Estic dient coses és igual a 3. 338 00:20:04,460 --> 00:20:08,060 Així que vaig a tenir un element en la llista, i això es diu matèria, 339 00:20:08,060 --> 00:20:10,570 i que tindrà el valor 3. 340 00:20:10,570 --> 00:20:13,140 >> També puc crear una matriu. 341 00:20:13,140 --> 00:20:17,970 Així que aquest és 1 a 4 i la fila final és igual a 2, per la que un 2 per 2 matriu. 342 00:20:17,970 --> 00:20:20,270 També a la llista i es diu estora. 343 00:20:20,270 --> 00:20:24,690 moreStuff, una cadena de caràcters, i fins i tot una altra llista en si mateix. 344 00:20:24,690 --> 00:20:27,710 >> Així que aquesta és una llista que és 5 i l'ós. 345 00:20:27,710 --> 00:20:30,990 Per tant, té el valor 5 i té l'ós cadena de caràcters 346 00:20:30,990 --> 00:20:32,710 i és una llista dins d'una llista. 347 00:20:32,710 --> 00:20:35,965 Així que vostè pot tenir aquests coses recursius on 348 00:20:35,965 --> 00:20:38,230 vostè té una another-- escrigui dins del tipus. 349 00:20:38,230 --> 00:20:41,420 Similarment, es pot tenir una matriu dins d'una altra matriu i així successivament. 350 00:20:41,420 --> 00:20:44,264 I la llista és només una bona manera de recopilar i afegir 351 00:20:44,264 --> 00:20:45,430 tots aquests diferents objectes. 352 00:20:45,430 --> 00:20:50,210 353 00:20:50,210 --> 00:20:57,150 >> I, finalment, aquí s'acaba d'ajudar en cas això només s'havia anat molt ràpidament. 354 00:20:57,150 --> 00:21:01,350 Així que cada vegada que vostè està confós sobre algun tipus de funció, 355 00:21:01,350 --> 00:21:03,510 vostè pot fer ajuda d'aquesta funció. 356 00:21:03,510 --> 00:21:07,120 Així que vostè pot fer matriu ajuda o una matriu de signe d'interrogació. 357 00:21:07,120 --> 00:21:11,430 I ajuda i el signe d'interrogació són només l'abreviatura de la mateixa cosa 358 00:21:11,430 --> 00:21:13,040 pel que són els àlies. 359 00:21:13,040 --> 00:21:16,820 >> lm és una funció que només ho fa un model lineal. 360 00:21:16,820 --> 00:21:20,340 Però si només tens idea del que obres, simplement pots fer ajuda de lm 361 00:21:20,340 --> 00:21:24,610 i que li donaré alguns tipus de documentació que 362 00:21:24,610 --> 00:21:27,960 es veu com una mena de pàgina de manual en Unix, on 363 00:21:27,960 --> 00:21:34,210 vostè té una breu descripció del que ho fa, també ho són els seus arguments, 364 00:21:34,210 --> 00:21:38,850 el que torna, ja només consells sobre com per usar-lo, i alguns exemples també. 365 00:21:38,850 --> 00:21:41,680 366 00:21:41,680 --> 00:21:52,890 >> Així que m'ho dius a mi anar endavant i espectacle alguns de demostració de l'ús de R. D'acord. 367 00:21:52,890 --> 00:21:55,470 Així que vaig ser molt ràpidament només les dades 368 00:21:55,470 --> 00:21:59,440 estructures i algun tipus de la op-- algunes de les operacions. 369 00:21:59,440 --> 00:22:02,960 Heus aquí algunes funcions. 370 00:22:02,960 --> 00:22:06,750 >> Així que aquí només vaig per definir una funció. 371 00:22:06,750 --> 00:22:09,970 Així que jo també estic fent servir operador d'assignació aquí, 372 00:22:09,970 --> 00:22:12,610 i després que estic dient La declararem com una funció. 373 00:22:12,610 --> 00:22:14,140 I pren el valor x. 374 00:22:14,140 --> 00:22:18,210 Així que això és qualsevol valor que vulgueu i vaig a tornar x si mateix. 375 00:22:18,210 --> 00:22:20,840 Així que aquesta és la funció identitat. 376 00:22:20,840 --> 00:22:23,670 >> I el que és bo d'això en comparació amb altres idiomes 377 00:22:23,670 --> 00:22:26,330 i una altra de baix nivell idiomes és que x 378 00:22:26,330 --> 00:22:29,350 pot ser de qualsevol tipus en si i que va a tornar aquest tipus. 379 00:22:29,350 --> 00:22:35,251 Així que vostè pot imagine-- així que anem m'acaba de córrer així de ràpid. 380 00:22:35,251 --> 00:22:35,750 Ho sento. 381 00:22:35,750 --> 00:22:40,300 >> Així que una cosa he de dir també és que aquest editor que estic fent servir 382 00:22:40,300 --> 00:22:41,380 es diu rstudio. 383 00:22:41,380 --> 00:22:44,389 Això és el que s'anomena un IDE. 384 00:22:44,389 --> 00:22:46,180 I una cosa que és realment bo d'això 385 00:22:46,180 --> 00:22:51,500 és que incorpora una gran quantitat de la coses que volen fer a R per si mateix 386 00:22:51,500 --> 00:22:53,180 només molt intuïtiva. 387 00:22:53,180 --> 00:22:55,550 >> Així que aquí és una consola d'intèrpret. 388 00:22:55,550 --> 00:23:02,160 Així mateix, també es pot obtenir aquesta consola prima només per fer un R. de capital 389 00:23:02,160 --> 00:23:05,630 I això és exactament el el mateix que la consola. 390 00:23:05,630 --> 00:23:12,210 Així que només puc fer Identificació funció x, x, x. 391 00:23:12,210 --> 00:23:16,130 I llavors-- i després que estarà bé en si. 392 00:23:16,130 --> 00:23:19,200 393 00:23:19,200 --> 00:23:21,740 >> Així rstudio és gran perquè té la consola. 394 00:23:21,740 --> 00:23:25,360 També té els documents desitja executar en. 395 00:23:25,360 --> 00:23:28,629 I llavors té algunes variables que es pot veure en els ambients. 396 00:23:28,629 --> 00:23:30,420 I llavors, si vostè té fer parcel·les, llavors vostè 397 00:23:30,420 --> 00:23:33,730 només pot veure-ho aquí, en lloc de la gestió de tots aquests diferents finestres 398 00:23:33,730 --> 00:23:35,940 per si mateixos. 399 00:23:35,940 --> 00:23:40,530 >> En realitat, jo personalment ús Vim, però jo sentir-se com rstudio és excel·lent just 400 00:23:40,530 --> 00:23:44,640 per aconseguir una bona idea de com utilitzar R. En general, 401 00:23:44,640 --> 00:23:47,040 quan vostè està tractant de aprendre una tasca nova, 402 00:23:47,040 --> 00:23:49,590 vostè no desitja utilitzar massa coses alhora. 403 00:23:49,590 --> 00:23:53,120 Així que R és només un rstudio very-- és una molt bona manera d'aprendre R 404 00:23:53,120 --> 00:23:56,760 sense haver de lidiar amb totes aquestes altres coses. 405 00:23:56,760 --> 00:23:58,600 >> Així que aquí estic d'aneu corrent hola. 406 00:23:58,600 --> 00:24:00,090 Retorna hola. 407 00:24:00,090 --> 00:24:01,740 Identificació del 123. 408 00:24:01,740 --> 00:24:04,610 Aquí és un vector d'enters. 409 00:24:04,610 --> 00:24:08,620 Així que de la mateixa manera, perquè es pot prendre cap algun tipus de valor, 410 00:24:08,620 --> 00:24:16,060 vostè pot fer tornar Identificació x de manera que retorna 1,234 i 5. 411 00:24:16,060 --> 00:24:22,210 >> I permetin-me que mostren que això és de fet un nombre sencer. 412 00:24:22,210 --> 00:24:28,800 I de la mateixa manera, si ho fa la classe Identificació del x, que serà un nombre enter. 413 00:24:28,800 --> 00:24:34,170 I després, també pot comparar els dos i és veritat. 414 00:24:34,170 --> 00:24:38,350 Així que estic comprovant si Identificació de x és igual és igual a x i notificació 415 00:24:38,350 --> 00:24:39,760 que et dóna dues Veritables. 416 00:24:39,760 --> 00:24:44,280 Així que això no està dient són els dos objectes idèntics, 417 00:24:44,280 --> 00:24:46,845 però són cadascuna de les entrades dins els vectors idèntics. 418 00:24:46,845 --> 00:24:50,000 419 00:24:50,000 --> 00:24:52,090 >> Aquí és bounded.compare. 420 00:24:52,090 --> 00:24:58,470 Així que això és una mica més complicat en què té una si la condició i altres 421 00:24:58,470 --> 00:25:00,960 i després només cal un arguments alhora. 422 00:25:00,960 --> 00:25:02,640 Així que x és de qualsevol tipus. 423 00:25:02,640 --> 00:25:06,280 I jo estic dient això segon argument és un. 424 00:25:06,280 --> 00:25:08,380 Això pot ser qualsevol cosa així. 425 00:25:08,380 --> 00:25:12,490 Però per defecte, que prendrà 5 si no s'especifica res. 426 00:25:12,490 --> 00:25:16,730 >> Així que aquí vaig a dir si x és més gran que a. 427 00:25:16,730 --> 00:25:19,220 Així que si no específic 1, que diu que si x és més gran que 5, 428 00:25:19,220 --> 00:25:20,470 llavors vaig a tornar TRUE. 429 00:25:20,470 --> 00:25:23,230 una altra cosa, vaig a tornar FALSE. 430 00:25:23,230 --> 00:25:24,870 Així que m'ho dius a mi anar endavant i defineixo això. 431 00:25:24,870 --> 00:25:30,600 432 00:25:30,600 --> 00:25:34,550 >> I ara vaig a executar bounded.compare 3. 433 00:25:34,550 --> 00:25:39,150 Així que el que diu és 3 menys no sigui: 3 és major que 5. 434 00:25:39,150 --> 00:25:41,830 No, no és tan FALS. 435 00:25:41,830 --> 00:25:46,550 >> I bounded.compare 3 i vaig per comparar usant a és igual a 2. 436 00:25:46,550 --> 00:25:50,700 Així que ara estic dient que sí, ara em volen un ésser altra cosa. 437 00:25:50,700 --> 00:25:52,750 Així que vaig a dir una, ha de ser 2. 438 00:25:52,750 --> 00:25:56,640 >> Puc o fer aquest tipus de notació o em diuen que a és igual a 2. 439 00:25:56,640 --> 00:25:58,720 Aquesta és una més llegible que quan estàs 440 00:25:58,720 --> 00:26:01,450 mirant aquests realment funcions complicades que 441 00:26:01,450 --> 00:26:08,110 prendre arguments-- múltiple i aquest pot haver dotzenes oftentimes-- dient 442 00:26:08,110 --> 00:26:11,140 A és igual a 2, és més fàcil de llegir per vostè perquè més endavant en el futur 443 00:26:11,140 --> 00:26:13,020 vostè sabrà el que estàs fent. 444 00:26:13,020 --> 00:26:17,120 >> Així que en aquest cas, estic dit és 3 superior a 2. 445 00:26:17,120 --> 00:26:18,270 Sí que ho és. 446 00:26:18,270 --> 00:26:22,350 I de la mateixa manera, jo només puc treure això i dir, és més gran que 3 2 447 00:26:22,350 --> 00:26:23,440 on a és igual a 2. 448 00:26:23,440 --> 00:26:26,230 I això també és cert. 449 00:26:26,230 --> 00:26:26,730 Sí? 450 00:26:26,730 --> 00:26:29,670 >> AUDIÈNCIA: És vostè executar línia per línia? 451 00:26:29,670 --> 00:26:30,670 >> DUSTIN TRAN: Sí, ho sóc. 452 00:26:30,670 --> 00:26:33,900 Així que el que estic fent aquí és tenint aquest text document-- 453 00:26:33,900 --> 00:26:39,825 i el bo de rstudio és que Jo només puc córrer una short-- una tecla d'accés directe. 454 00:26:39,825 --> 00:26:41,820 Així que estic fent Control-Enter. 455 00:26:41,820 --> 00:26:44,850 >> I llavors, m'estic prenent el línia en el document de text 456 00:26:44,850 --> 00:26:46,710 i després posar a la consola. 457 00:26:46,710 --> 00:26:50,800 Així que aquí estic dient, bounded.compare i estic fent Control-X. 458 00:26:50,800 --> 00:26:52,540 Així que només puc fer funcionar aquí també. 459 00:26:52,540 --> 00:26:54,920 I després que prendrà la línia i després el va posar aquí. 460 00:26:54,920 --> 00:26:57,900 I a continuació, de manera similar, que pugui fer funcionar aquí. 461 00:26:57,900 --> 00:27:04,630 I llavors, només mantenir la definició les línies a la consola com això. 462 00:27:04,630 --> 00:27:10,690 >> I si també nota l'arrissat claus són allà com en sintaxi C. 463 00:27:10,690 --> 00:27:13,910 x-- si la si la condició és també utilitzarà parèntesi i després 464 00:27:13,910 --> 00:27:15,350 pot utilitzar més. 465 00:27:15,350 --> 00:27:17,496 Una altra és una altra cosa si. 466 00:27:17,496 --> 00:27:21,440 Així que això serà x és igual a és igual a, per exemple. 467 00:27:21,440 --> 00:27:24,190 468 00:27:24,190 --> 00:27:26,350 I després vaig a tornar alguna cosa aquí. 469 00:27:26,350 --> 00:27:29,490 >> Observeu que hi ha dos diferents coses aquí que està passant. 470 00:27:29,490 --> 00:27:34,360 Una és que aquí estic especificant tornar el valor TRUE. 471 00:27:34,360 --> 00:27:35,950 Aquí només estic dient x. 472 00:27:35,950 --> 00:27:39,970 Així R farà normalment per defecte prendre l'últim arguments-- 473 00:27:39,970 --> 00:27:43,510 o prendre l'última línia del codi, i això serà el que es retorna. 474 00:27:43,510 --> 00:27:46,920 Així que aquí es tracta de la mateixa cosa com prémer retorn x. 475 00:27:46,920 --> 00:27:49,450 476 00:27:49,450 --> 00:27:50,540 >> I només per mostrar. 477 00:27:50,540 --> 00:27:54,000 478 00:27:54,000 --> 00:27:57,052 I després, va a treballar com si res. 479 00:27:57,052 --> 00:27:58,260 Així que permetin-me seguir amb això. 480 00:27:58,260 --> 00:28:00,630 >> Així la resta si. 481 00:28:00,630 --> 00:28:04,060 I de veritat, puc tornar qualsevol cosa que m'agradaria. 482 00:28:04,060 --> 00:28:06,680 Així que no tenen ni tan sols per retorn booleans tot el temps, 483 00:28:06,680 --> 00:28:08,410 Puc torna una altra cosa. 484 00:28:08,410 --> 00:28:10,670 Així que jo puc fer l'ós de retorn. 485 00:28:10,670 --> 00:28:12,989 >> Així que si x és igual a és igual a, que tornarà ós. 486 00:28:12,989 --> 00:28:14,530 En cas contrari, va a tornar TRUE. 487 00:28:14,530 --> 00:28:19,310 També puc fer un vector o realment res. 488 00:28:19,310 --> 00:28:22,210 >> I normalment en forma estàtica idiomes mecanografiades, 489 00:28:22,210 --> 00:28:23,840 caldria especificar un tipus aquí. 490 00:28:23,840 --> 00:28:25,750 I noti que només pot ser qualsevol cosa. 491 00:28:25,750 --> 00:28:32,400 I R és prou intel·ligent que s'acaba de fer això i no tindran cap problema. 492 00:28:32,400 --> 00:28:33,620 >> Així que permetin-me definir això. 493 00:28:33,620 --> 00:28:39,460 494 00:28:39,460 --> 00:28:41,230 Unexpected-- oh ho sento. 495 00:28:41,230 --> 00:28:44,336 Ha de ser una clau aquí. 496 00:28:44,336 --> 00:28:44,836 D'acord. 497 00:28:44,836 --> 00:28:45,336 Fresc. 498 00:28:45,336 --> 00:28:52,580 499 00:28:52,580 --> 00:28:54,530 Bé. 500 00:28:54,530 --> 00:28:58,250 Així que ara anem a comparar 3 i a és igual a 3. 501 00:28:58,250 --> 00:29:01,860 Així que hauria return-- yeah-- l'ós valor. 502 00:29:01,860 --> 00:29:06,740 >> Així que ara una cosa més general és com Què hi ha d'altres estructures de dades. 503 00:29:06,740 --> 00:29:09,110 Pel que té aquesta funció. 504 00:29:09,110 --> 00:29:15,360 Això va a treballar en qualsevol tipus de valor com 3 o qualsevol numèric, 505 00:29:15,360 --> 00:29:17,500 en altres paraules, doble. 506 00:29:17,500 --> 00:29:19,330 >> Però què passa amb una mena vector. 507 00:29:19,330 --> 00:29:27,750 Llavors, què passa si vostè fer-- així que estic va a assignar val a, per exemple, de 4 a 6. 508 00:29:27,750 --> 00:29:31,640 Així que si torno això, això és un vector de 4, 5, 6. 509 00:29:31,640 --> 00:29:34,935 >> Ara anem a veure què passa si ho faig bounded.compare val. 510 00:29:34,935 --> 00:29:37,680 511 00:29:37,680 --> 00:29:42,450 Així que això donarà 15 1251. 512 00:29:42,450 --> 00:29:46,440 Així, en altres paraules, que està dient si ens fixem en aquesta condició 513 00:29:46,440 --> 00:29:50,040 pel que diu x és menor que una o alguna cosa així. 514 00:29:50,040 --> 00:29:51,880 Així que aquest és lleugerament confús perquè ara 515 00:29:51,880 --> 00:29:53,379 vostè simplement no sap el que està passant. 516 00:29:53,379 --> 00:29:58,690 Així que suposo que una cosa que és veritat bé sobre tractant de depuració 517 00:29:58,690 --> 00:30:04,600 és que vostè només pot fer val és més gran que una i veure què passa allà. 518 00:30:04,600 --> 00:30:09,720 >> Així val-- a és per defecte 5, així anem a Do Val superior a 5. 519 00:30:09,720 --> 00:30:14,280 Així que aquest és un FALS FALS vector TRUE. 520 00:30:14,280 --> 00:30:17,206 Així que ara, quan vostè està buscant en això, que dirà si, 521 00:30:17,206 --> 00:30:20,080 i llavors va a donar-li aquest és un vector de FALS VERITABLE FALS. 522 00:30:20,080 --> 00:30:23,450 >> Així que quan passi això en R, R no té idea del que estàs fent. 523 00:30:23,450 --> 00:30:26,650 A causa que s'espera una sola valor, que és un valor booleà, i ara 524 00:30:26,650 --> 00:30:29,420 vostè està donant un vector de booleans. 525 00:30:29,420 --> 00:30:31,970 Així que per defecte, R és només dirà què diables, 526 00:30:31,970 --> 00:30:35,440 Vaig a suposar que vostè és Va a prendre el primer element aquí. 527 00:30:35,440 --> 00:30:38,320 Així que vaig a dir-- vaig assumir que això és fals. 528 00:30:38,320 --> 00:30:40,890 Així que dirà no, això no és correcte. 529 00:30:40,890 --> 00:30:45,246 >> De la mateixa manera, es va a val és igual a ser igual a a. 530 00:30:45,246 --> 00:30:47,244 No, ho sento maig. 531 00:30:47,244 --> 00:30:48,910 I també serà falsa també. 532 00:30:48,910 --> 00:30:52,410 Així que dirà que no, No és veritat, així pel que és 533 00:30:52,410 --> 00:30:53,680 tornarà aquest últim. 534 00:30:53,680 --> 00:30:56,420 535 00:30:56,420 --> 00:31:01,360 >> Així que això és ja sigui bo o dolent cosa, depenent de com s'ho miri. 536 00:31:01,360 --> 00:31:05,104 Perquè quan estàs la creació d'aquestes funcions, 537 00:31:05,104 --> 00:31:06,770 que en realitat no sap el que està passant. 538 00:31:06,770 --> 00:31:10,210 Així que de vegades t'agradaria un error, o potser el que desitja és una advertència. 539 00:31:10,210 --> 00:31:12,160 En aquest cas, R no fa això. 540 00:31:12,160 --> 00:31:14,300 Així que és realment fins en base fora del 541 00:31:14,300 --> 00:31:17,310 Creus que l'idioma de fer en aquest cas 542 00:31:17,310 --> 00:31:22,920 si es passa en un vector de booleans quan estàs fent un if condició. 543 00:31:22,920 --> 00:31:31,733 >> Així que anem a dir que vostè tenia l'original un amb if else return TRUE i ja està 544 00:31:31,733 --> 00:31:34,190 va a tornar FALSE. 545 00:31:34,190 --> 00:31:39,300 Així que una manera d'abstreure això és per dir que 546 00:31:39,300 --> 00:31:41,530 ni tan sols necessiten aquesta cosa condicional. 547 00:31:41,530 --> 00:31:47,220 Una altra cosa que puc fer és només la devolució dels mateixos valors. 548 00:31:47,220 --> 00:31:53,240 Així que si et fixes, si Do Val és més gran que 5, 549 00:31:53,240 --> 00:31:56,350 això va a tornar un vector FALS VERDADER FALS. 550 00:31:56,350 --> 00:31:58,850 >> Potser això és el que desitjar per bounded.compare. 551 00:31:58,850 --> 00:32:02,940 Tu vols tornar un vector de booleans on es compara cada un dels valors 552 00:32:02,940 --> 00:32:04,190 a si mateixos. 553 00:32:04,190 --> 00:32:11,165 Així que només puc fer bounded.compare funció de x, a és igual a 5. 554 00:32:11,165 --> 00:32:13,322 555 00:32:13,322 --> 00:32:15,363 I a continuació, en lloc de fer aquesta condició més si, 556 00:32:15,363 --> 00:32:21,430 Jo només vaig a tornar x és major que 5. 557 00:32:21,430 --> 00:32:23,620 Així que si és cert, llavors que va a tornar TRUE. 558 00:32:23,620 --> 00:32:26,830 I després, si no ho és, és va a tornar FALSE. 559 00:32:26,830 --> 00:32:30,880 >> I això funcionarà per qualsevol d'aquestes estructures. 560 00:32:30,880 --> 00:32:41,450 Així que puc bounded.compare c juny 1 o 9 i després em vaig a dir a és igual a 6, 561 00:32:41,450 --> 00:32:42,799 per exemple. 562 00:32:42,799 --> 00:32:44,840 I després es va a li donarà el dret de Boole 563 00:32:44,840 --> 00:32:48,240 vector que estàs dissenyant. 564 00:32:48,240 --> 00:32:50,660 >> Així que aquests són només funcions i ara permetin-me 565 00:32:50,660 --> 00:32:54,980 mostrar alguns elements visuals interactius. 566 00:32:54,980 --> 00:32:59,700 No crec que realment tinc Wi-Fi aquí així que m'acabo d'anar per davant 567 00:32:59,700 --> 00:33:01,970 i evita aquest suposo. 568 00:33:01,970 --> 00:33:05,260 >> Però una cosa que és genial però, és que si només 569 00:33:05,260 --> 00:33:09,600 que desitgi provar un munt de diferents comandaments de dades, 570 00:33:09,600 --> 00:33:13,320 hi ha un munt de diferents conjunts de dades que ja estan precarregats en R. 571 00:33:13,320 --> 00:33:15,770 Així que un d'ells és anomenat el conjunt de dades de l'iris. 572 00:33:15,770 --> 00:33:18,910 Aquest és un dels més ben coneguda els d'aprenentatge automàtic. 573 00:33:18,910 --> 00:33:23,350 En general, acaba de fer algun tipus de casos de prova per veure si el seu codi s'executa. 574 00:33:23,350 --> 00:33:27,520 Així que anem a comprovar el iris és. 575 00:33:27,520 --> 00:33:33,130 >> Així que aquesta cosa va ser una trama de dades. 576 00:33:33,130 --> 00:33:36,000 I que és una mica llarg perquè Acabo imprimir Sant Martí. 577 00:33:36,000 --> 00:33:38,810 Està imprimint tota la cosa. 578 00:33:38,810 --> 00:33:42,830 Així que té tots aquests noms diferents. 579 00:33:42,830 --> 00:33:45,505 Així iris és una col·lecció de flors diferents. 580 00:33:45,505 --> 00:33:48,830 En aquest cas, s'està dient que les espècies de la mateixa, 581 00:33:48,830 --> 00:33:54,760 tots aquests diferents amplades i longituds del sèpal i el pètal. 582 00:33:54,760 --> 00:33:58,880 >> I pel que normalment, si que voleu imprimir Sant Martí, 583 00:33:58,880 --> 00:34:03,680 per exemple, no vol haver de fer tot això perquè això pot fer-se càrrec de 584 00:34:03,680 --> 00:34:05,190 tota la consola. 585 00:34:05,190 --> 00:34:09,280 Així que una cosa que és realment agradable és la funció de cap. 586 00:34:09,280 --> 00:34:12,929 Així que si vostè acaba de fer el cap Sant Martí, això li donarà 587 00:34:12,929 --> 00:34:17,389 les primeres cinc files o sis suposo. 588 00:34:17,389 --> 00:34:19,909 I llavors bé, només pot especificar aquí. 589 00:34:19,909 --> 00:34:22,914 Així 20-- això li donarà que les primeres 20 files. 590 00:34:22,914 --> 00:34:24,830 I jo en realitat era una mena sorprès que aquest 591 00:34:24,830 --> 00:34:28,770 em va donar sis així que em vaig a continuació i comprovar iris-- o el cap, ho sento. 592 00:34:28,770 --> 00:34:31,699 593 00:34:31,699 --> 00:34:34,960 I aquí se li donarà que la documentació 594 00:34:34,960 --> 00:34:37,960 del que fa el cap de valor. 595 00:34:37,960 --> 00:34:40,839 Així que retorna el primer o l'última d'un objecte. 596 00:34:40,839 --> 00:34:42,630 I després vaig a mirar als valors predeterminats. 597 00:34:42,630 --> 00:34:47,340 I després diu el predeterminat mètode cap x i n és igual a 6 l. 598 00:34:47,340 --> 00:34:50,620 Així que això torna els primers sis elements. 599 00:34:50,620 --> 00:34:55,050 I de la mateixa manera, si vostè nota aquí, no ha d'especificar n és igual a 6. 600 00:34:55,050 --> 00:34:56,840 Per defecte s'utilitza 06:00, suposo. 601 00:34:56,840 --> 00:35:00,130 I llavors, si vull especificar un cert valor, llavors puc veure això també. 602 00:35:00,130 --> 00:35:02,970 603 00:35:02,970 --> 00:35:10,592 >> Així que això és alguns comandaments simples i aquí hi ha una altra que és sol-- bé, 604 00:35:10,592 --> 00:35:12,550 Jo can-- això és en realitat una mica més complex, 605 00:35:12,550 --> 00:35:17,130 però això acaba de prendre la classe de cada columna del conjunt de dades de l'iris. 606 00:35:17,130 --> 00:35:20,910 Així que això li mostrarà el que cada un d'ells columnes són en termes dels seus tipus. 607 00:35:20,910 --> 00:35:23,665 Així longitud sèpal és numèric, ample sèpal és numèric. 608 00:35:23,665 --> 00:35:26,540 Tots aquests valors són només numèric perquè es pot deduir d'aquestes dades 609 00:35:26,540 --> 00:35:29,440 estructurar aquests són tot va a numèric. 610 00:35:29,440 --> 00:35:34,310 >> I la columna de l'Espècie serà un factor. 611 00:35:34,310 --> 00:35:37,270 Així que normalment, es podria pensar que això és com una cadena de caràcters. 612 00:35:37,270 --> 00:35:48,830 Però si només fem irisSpecies, i després em vaig a fer el cap 5, 613 00:35:48,830 --> 00:35:51,820 i això va a imprimir els cinc primers valors. 614 00:35:51,820 --> 00:35:54,150 >> I a continuació, observi aquests nivells. 615 00:35:54,150 --> 00:35:58,870 Així que això és dient-- aquesta és la forma de R de tenir les variables categòriques. 616 00:35:58,870 --> 00:36:03,765 Així que en lloc de només amb cadenes de caràcters, 617 00:36:03,765 --> 00:36:06,740 té nivells especificant quina d'aquestes coses són. 618 00:36:06,740 --> 00:36:12,450 >> Així que diguem que irisSpecies 1. 619 00:36:12,450 --> 00:36:17,690 Així que el que vull fer aquí és que estic subconjunts d'aquesta columna Espècies. 620 00:36:17,690 --> 00:36:21,480 Així que això pren la La columna Espècies i després 621 00:36:21,480 --> 00:36:23,820 índexs per obtenir el primer element. 622 00:36:23,820 --> 00:36:27,140 Així que això ha de donar setosa. 623 00:36:27,140 --> 00:36:28,710 I també et dóna els nivells aquí. 624 00:36:28,710 --> 00:36:32,812 >> Així que vostè pot comparar també això a la setosa caràcter 625 00:36:32,812 --> 00:36:34,645 i això no va és cert perquè un 626 00:36:34,645 --> 00:36:37,940 és d'un tipus diferent que l'altre. 627 00:36:37,940 --> 00:36:40,590 O suposo que és veritat perquè R és més intel·ligent que això. 628 00:36:40,590 --> 00:36:45,420 I mira això i després diu, potser això és el que vols. 629 00:36:45,420 --> 00:36:51,860 Així que dirà el caràcter setosa cadena és la mateixa com aquest. 630 00:36:51,860 --> 00:37:01,290 I a continuació, de manera similar, es pot També acaba d'agafar aquests com així successivament. 631 00:37:01,290 --> 00:37:05,580 >> Així que això és només una espècie de ordres ràpides del conjunt de dades. 632 00:37:05,580 --> 00:37:08,030 Així que aquí està una mica d'exploració de dades. 633 00:37:08,030 --> 00:37:11,360 Així que això és una mica més involucrat amb l'anàlisi de dades. 634 00:37:11,360 --> 00:37:18,340 I això es pren d'alguns bootcamp en R a Berkeley. 635 00:37:18,340 --> 00:37:20,790 >> Així biblioteca estrangera. 636 00:37:20,790 --> 00:37:24,880 Així que vaig a carregar en un biblioteca que es diu estrangera. 637 00:37:24,880 --> 00:37:32,460 Així que això em donarà read.dta així assumir que tinc aquest conjunt de dades. 638 00:37:32,460 --> 00:37:39,000 Aquest s'emmagatzema en el corrent directori de la meva consola de treball. 639 00:37:39,000 --> 00:37:42,190 Així que anem a veure què el directori de treball és. 640 00:37:42,190 --> 00:37:44,620 >> Així que aquí està la meva directori de treball. 641 00:37:44,620 --> 00:37:50,040 I llegir dades de punts, aquesta cosa, està dient aquest fitxer 642 00:37:50,040 --> 00:37:54,650 es troba a la carpeta de dades de aquest directori de treball actual. 643 00:37:54,650 --> 00:38:00,520 I això no és read.dta una ordre predeterminat. 644 00:38:00,520 --> 00:38:02,760 Suposo que m'ho vaig carregar a ja. 645 00:38:02,760 --> 00:38:04,750 IEI va assumir vaig carregar això ja. 646 00:38:04,750 --> 00:38:08,115 >> Però fins read.dta no va ser una ordre predeterminat. 647 00:38:08,115 --> 00:38:11,550 I és per això que vas a tenir carregar en aquesta biblioteca package-- 648 00:38:11,550 --> 00:38:14,500 aquest paquet de flama exterior. 649 00:38:14,500 --> 00:38:16,690 I si vostè no té el paquet, crec 650 00:38:16,690 --> 00:38:19,180 estranger és un dels més integrats. 651 00:38:19,180 --> 00:38:31,150 En cas contrari, també pot fer install.packages 652 00:38:31,150 --> 00:38:33,180 i això va a instal·lar el paquet. 653 00:38:33,180 --> 00:38:36,878 I això li donarà R. Uh, no. 654 00:38:36,878 --> 00:38:39,830 655 00:38:39,830 --> 00:38:43,140 I llavors jo només vaig a deixar de això perquè ja el tinc. 656 00:38:43,140 --> 00:38:46,920 >> Però el que és realment bo de R és que la gestió de paquets 657 00:38:46,920 --> 00:38:48,510 sistema és molt elegant. 658 00:38:48,510 --> 00:38:52,470 Perquè va a emmagatzemar tot molt bé per a vostè. 659 00:38:52,470 --> 00:38:59,780 Així que en aquest cas, es va a emmagatzemar a, crec, aquesta biblioteca aquí. 660 00:38:59,780 --> 00:39:02,390 >> Així que cada vegada que desitgi instal·lar nous paquets, 661 00:39:02,390 --> 00:39:04,980 és tan simple com fent install.packages 662 00:39:04,980 --> 00:39:07,500 i R gestionarà tot els paquets per vostè. 663 00:39:07,500 --> 00:39:12,900 Així que vostè no ha de fer alguna cosa en Python, on vostè té el paquet extern 664 00:39:12,900 --> 00:39:15,330 gerents com el paper Anaconda on estiguis 665 00:39:15,330 --> 00:39:18,310 doing-- instal·lar el paquets externs a Python 666 00:39:18,310 --> 00:39:20,940 i després intenta executar per si mateix. 667 00:39:20,940 --> 00:39:22,210 Així que aquesta és molt bona manera. 668 00:39:22,210 --> 00:39:25,590 >> I install.packages requereix Internet. 669 00:39:25,590 --> 00:39:31,950 Es necessita d'un servidor i el dipòsit que 670 00:39:31,950 --> 00:39:33,960 recull totes les paquets és CRAN. 671 00:39:33,960 --> 00:39:40,690 I vostè pot especificar quin tipus de mirall vol descarregar els paquets. 672 00:39:40,690 --> 00:39:43,420 >> Així que aquí estic prenent aquest conjunt de dades. 673 00:39:43,420 --> 00:39:46,240 Ho estic llegint en l'ús d'aquesta funció. 674 00:39:46,240 --> 00:39:49,360 Així que m'ho dius a mi anar endavant i fer això. 675 00:39:49,360 --> 00:39:52,900 >> Així que anem a suposar que vostè té aquest conjunt de dades 676 00:39:52,900 --> 00:39:55,550 i vostè no té absolutament ni idea del que és. 677 00:39:55,550 --> 00:39:58,560 I aquesta realitat sorgeix amb força freqüència en la indústria 678 00:39:58,560 --> 00:40:00,910 en el qual només té aquests tones i tones de coses desordenades 679 00:40:00,910 --> 00:40:02,890 i són increïblement sense etiqueta. 680 00:40:02,890 --> 00:40:06,380 Així que aquí tinc aquest conjunt de dades i no sé 681 00:40:06,380 --> 00:40:08,400 el que és, així que estic sol mostrant a comprovar-ho. 682 00:40:08,400 --> 00:40:10,620 >> Així que em vaig a fer el cap primer. 683 00:40:10,620 --> 00:40:14,190 Així que puc comprovar els primers sis columnes del que aquest conjunt de dades és. 684 00:40:14,190 --> 00:40:21,730 Així que aquest és l'estat, pres04, i després tots aquests diferents tipus de columnes. 685 00:40:21,730 --> 00:40:25,612 I el que és interessant aquí, suposo, és que vostè 686 00:40:25,612 --> 00:40:27,945 assumiria que això es veu com una mena d'elecció. 687 00:40:27,945 --> 00:40:30,482 688 00:40:30,482 --> 00:40:32,190 I suposo que només des veient l'arxiu 689 00:40:32,190 --> 00:40:41,070 nomenar això és una espècie de col·lecció de les dades sobre els candidats o electors 690 00:40:41,070 --> 00:40:44,920 que va votar pels presidents específics o candidats presidencials 691 00:40:44,920 --> 00:40:46,550 per a les eleccions de 2004. 692 00:40:46,550 --> 00:40:52,920 >> Així que aquí està els valors 1, 2 així que una forma d'emmagatzemar 693 00:40:52,920 --> 00:40:56,540 els candidats presidencials són els seus noms. 694 00:40:56,540 --> 00:40:59,780 En aquest cas, sembla que són valors només sencers. 695 00:40:59,780 --> 00:41:04,030 Així 2004, era Bush davant Kerry que jo crec. 696 00:41:04,030 --> 00:41:09,010 I ara, anem a dir que simplement no sap si 1 correspon a Bush o 2 697 00:41:09,010 --> 00:41:11,703 correspon a Kerry o i etc., etc., no? 698 00:41:11,703 --> 00:41:15,860 >> I això és, només per a mi, un problema bastant comú. 699 00:41:15,860 --> 00:41:18,230 Llavors, què es pot fer en aquest cas? 700 00:41:18,230 --> 00:41:20,000 Així que anem a veure totes aquestes altres coses. 701 00:41:20,000 --> 00:41:22,790 >> estat, estic assumint aquest prové de diferents estats. 702 00:41:22,790 --> 00:41:25,100 PartyID, ingressos. 703 00:41:25,100 --> 00:41:27,710 Vegem PartyID. 704 00:41:27,710 --> 00:41:32,800 Així que potser una cosa que pots fer és mirar a cadascuna de les observacions 705 00:41:32,800 --> 00:41:36,250 que tenen un PartyID del republicà o demòcrata o alguna cosa així. 706 00:41:36,250 --> 00:41:38,170 Així que anem a veure en què PartyID és. 707 00:41:38,170 --> 00:41:41,946 >> Així que em vaig a prendre dat i després em vaig 708 00:41:41,946 --> 00:41:47,960 Per a això el signe de dòlar operador que vaig fer anteriorment 709 00:41:47,960 --> 00:41:50,770 i això va a subconjunt a aquesta columna. 710 00:41:50,770 --> 00:41:57,760 I després em vaig a dirigir això en 20, només per veure com es veu. 711 00:41:57,760 --> 00:42:00,170 >> Així que això és només un munt d'AN. 712 00:42:00,170 --> 00:42:02,800 En altres paraules, vostè té falten dades sobre aquests nois. 713 00:42:02,800 --> 00:42:08,100 Però també s'observa aquest dat PartyID és un factor 714 00:42:08,100 --> 00:42:10,030 pel que aquest li dóna diferents categories. 715 00:42:10,030 --> 00:42:14,170 Així, en altres paraules, PartyID pot prendre Demòcrata, republicà, independent, 716 00:42:14,170 --> 00:42:16,640 o alguna cosa més. 717 00:42:16,640 --> 00:42:23,940 >> Així que seguirem endavant i que anem veure quin d'aquests és-- oh, OK. 718 00:42:23,940 --> 00:42:28,480 Així que vaig al subconjunt a PartyId i després 719 00:42:28,480 --> 00:42:32,780 miren quins són Demòcrata, per exemple. 720 00:42:32,780 --> 00:42:37,150 Això va a donar-li un booleà, una enorme booleà de trues i falses. 721 00:42:37,150 --> 00:42:41,630 >> I ara, anem a dir que vull al subconjunt d'aquests nois. 722 00:42:41,630 --> 00:42:47,260 Així que això va a portar el meu dat i subconjunt a qualsevol observacions 723 00:42:47,260 --> 00:42:48,910 tenen iguals PartyId iguals demòcrata. 724 00:42:48,910 --> 00:42:52,830 725 00:42:52,830 --> 00:42:55,180 I això és molt llarg perquè hi ha tants d'ells. 726 00:42:55,180 --> 00:42:59,060 Així que ara, em vaig a dirigir això en 20. 727 00:42:59,060 --> 00:43:05,690 728 00:43:05,690 --> 00:43:11,270 >> I com t'adones, és igual als iguals és interessant que ets 729 00:43:11,270 --> 00:43:13,250 ya-- vostè també està inclosa l'AN. 730 00:43:13,250 --> 00:43:19,010 Així que en aquest cas, encara no pot aconseguir qualsevol informació perquè ara tens AN 731 00:43:19,010 --> 00:43:22,650 i el que desitja és veure quin dels observació correspon al demòcrata 732 00:43:22,650 --> 00:43:24,670 i no falten aquests mateixos valors. 733 00:43:24,670 --> 00:43:27,680 Llavors, com desfer-se d'aquests AN? 734 00:43:27,680 --> 00:43:36,410 >> Així que aquí estic fent servir la clau en la meva cursor i llavors dient moure. 735 00:43:36,410 --> 00:43:39,778 I llavors aquí només vaig dir is.na datpartyid. 736 00:43:39,778 --> 00:43:48,970 737 00:43:48,970 --> 00:43:52,720 Així que això i ja tindrà dos vectors diferents booleanes 738 00:43:52,720 --> 00:43:57,160 i dir que serà VERITABLE i FALS per exemple. 739 00:43:57,160 --> 00:43:59,190 Així que va a fer aquest component es refereix. 740 00:43:59,190 --> 00:44:02,910 Així que aquí estic dient presa la trama de dades, subconjunt 741 00:44:02,910 --> 00:44:10,170 als que corresponen a Democrat, i eliminar qualsevol d'ells que no són NA. 742 00:44:10,170 --> 00:44:13,540 >> Així que això ha voluntat-- donar-li alguna cosa. 743 00:44:13,540 --> 00:44:16,540 744 00:44:16,540 --> 00:44:17,600 Vegem is.na. 745 00:44:17,600 --> 00:44:24,670 746 00:44:24,670 --> 00:44:27,690 Provem datpartyid is.na. 747 00:44:27,690 --> 00:44:36,290 748 00:44:36,290 --> 00:44:45,290 I això ha de donar usted-- sorry-- només un vector booleà. 749 00:44:45,290 --> 00:44:49,260 I després, perquè és molt llarg, Vaig a un subconjunt de 20. 750 00:44:49,260 --> 00:44:49,760 D'acord. 751 00:44:49,760 --> 00:44:51,570 Així que això hauria de funcionar. 752 00:44:51,570 --> 00:44:54,700 >> I aquest també serà Veritables. 753 00:44:54,700 --> 00:45:01,830 Ah, així que el meu error aquí és que jo-- jo utilitzen C ++ i R indistintament pel que fan 754 00:45:01,830 --> 00:45:03,590 aquest error tot el temps. 755 00:45:03,590 --> 00:45:05,807 L'operador i és en realitat el que vostè desitja. 756 00:45:05,807 --> 00:45:08,140 No vol utilitzar dues els símbols d'unió, només un de sol. 757 00:45:08,140 --> 00:45:14,970 758 00:45:14,970 --> 00:45:17,010 D'acord. 759 00:45:17,010 --> 00:45:18,140 >> Així que anem a veure. 760 00:45:18,140 --> 00:45:20,930 761 00:45:20,930 --> 00:45:23,920 Així que subestablecida a la PartyID on estan demòcrata 762 00:45:23,920 --> 00:45:25,300 i no hi ha els valors perduts. 763 00:45:25,300 --> 00:45:27,690 I ara anem a veure quines van votar. 764 00:45:27,690 --> 00:45:31,530 Així que sembla que la majoria d'ells van votar per 1. 765 00:45:31,530 --> 00:45:36,090 Així que vaig a seguir endavant i dir que és Kerry. 766 00:45:36,090 --> 00:45:39,507 >> I de la mateixa manera, es pot També anar a Republicà 767 00:45:39,507 --> 00:45:41,090 i és d'esperar, això ha de donar 2. 768 00:45:41,090 --> 00:45:49,730 769 00:45:49,730 --> 00:45:51,770 És només un munt de diferents columnes. 770 00:45:51,770 --> 00:45:53,070 I, en efecte, és 2. 771 00:45:53,070 --> 00:45:55,750 Així PartyId tot republicà, la majoria d'ells estan votant per 2. 772 00:45:55,750 --> 00:45:58,390 >> Així que sembla, només al veure això, 773 00:45:58,390 --> 00:46:00,600 Republicà serà 1 very-- o la PartyID 774 00:46:00,600 --> 00:46:02,790 serà una molt factor important en la determinació de 775 00:46:02,790 --> 00:46:05,420 quin dels candidats que estan anar a votar. 776 00:46:05,420 --> 00:46:07,120 I això és òbviament cert en general. 777 00:46:07,120 --> 00:46:10,139 I això coincideix amb el seu intuïció, és clar. 778 00:46:10,139 --> 00:46:11,930 Així que sembla que sóc acabant el temps ho 779 00:46:11,930 --> 00:46:17,040 m'ho dius a mi només hauria de seguir endavant i mostrar algunes imatges ràpides. 780 00:46:17,040 --> 00:46:21,120 Així que aquí hi ha alguna cosa que és lleugerament més complicada amb la visualització. 781 00:46:21,120 --> 00:46:26,450 Així doncs, en aquest cas, aquest és un molt simple anàlisi de simplement comprovar el 782 00:46:26,450 --> 00:46:28,500 el president del '04 és. 783 00:46:28,500 --> 00:46:33,920 >> Així que en aquest cas, diguem que vostè volgut respondre a aquesta pregunta. 784 00:46:33,920 --> 00:46:38,540 Així que suposem que volíem saber la votació comportament en les eleccions de president 2004 785 00:46:38,540 --> 00:46:41,170 i com això varia segons la raça. 786 00:46:41,170 --> 00:46:44,380 Així que no només és el que vols veure el comportament dels votants, 787 00:46:44,380 --> 00:46:47,860 però desitja subconjunt de cada raça i espècie de resum que. 788 00:46:47,860 --> 00:46:50,770 I només es pot dir per aquesta notació complexa 789 00:46:50,770 --> 00:46:52,580 que això és una espècie d'aconseguir nebulós. 790 00:46:52,580 --> 00:46:56,390 >> Així que un dels més avançats d'I paquets que també classe de recent 791 00:46:56,390 --> 00:47:00,070 es diu dplyr. 792 00:47:00,070 --> 00:47:03,060 Pel que és aquesta d'aquí. 793 00:47:03,060 --> 00:47:08,080 I ggplot2 ggg-- és només un bonic manera de fer les millors visualitzacions 794 00:47:08,080 --> 00:47:09,400 que l'incorporat. 795 00:47:09,400 --> 00:47:11,108 >> Així que vaig a carregar aquestes dues biblioteques. 796 00:47:11,108 --> 00:47:13,200 797 00:47:13,200 --> 00:47:16,950 I llavors, em vaig a anar endavant i executar aquesta comanda. 798 00:47:16,950 --> 00:47:19,050 Vostè només pot tractar això com un quadre negre. 799 00:47:19,050 --> 00:47:23,460 >> El que passa és que aquesta canonada operador està passant en aquest argument 800 00:47:23,460 --> 00:47:24,110 en aquí. 801 00:47:24,110 --> 00:47:28,070 Així que estic dient grup de dat la raça i el llavors president 04. 802 00:47:28,070 --> 00:47:31,530 I després, tots aquests altres ordres estan filtrant i després resumir 803 00:47:31,530 --> 00:47:34,081 on jo estic fent recompte i llavors estic traçant aquí. 804 00:47:34,081 --> 00:47:39,980 805 00:47:39,980 --> 00:47:42,500 Acceptar fresc. 806 00:47:42,500 --> 00:47:44,620 Així que seguirem endavant i veure l'aspecte que té. 807 00:47:44,620 --> 00:47:52,280 808 00:47:52,280 --> 00:47:57,290 >> Llavors, què està passant aquí és que jo només tracen cadascuna de les carreres i després 809 00:47:57,290 --> 00:47:59,670 quines van votar. 810 00:47:59,670 --> 00:48:03,492 I aquests dos diferents valors corresponen a 2 i 1. 811 00:48:03,492 --> 00:48:05,325 Si vols ser més elegant, també pot 812 00:48:05,325 --> 00:48:11,770 Només especifiqui que 2 és Kerry-- o 2 és Bush, i després 1 és Kerry. 813 00:48:11,770 --> 00:48:13,700 I també es pot tenir que en la seva llegenda. 814 00:48:13,700 --> 00:48:17,410 >> I també es pot dividir aquests gràfics de barres. 815 00:48:17,410 --> 00:48:19,480 Perquè una cosa és que, si et fixes, 816 00:48:19,480 --> 00:48:24,560 això no és molt fàcil d'identificar Quin d'aquests dos valors són més grans. 817 00:48:24,560 --> 00:48:27,920 Així que una cosa que t'agradaria fer és prendre aquest àrea blava 818 00:48:27,920 --> 00:48:31,855 i acaba de passar per aquí, així que Podem comparar aquests dos de costat a costat. 819 00:48:31,855 --> 00:48:34,480 I crec que això és una cosa que no tenen temps per fer-ho en aquest moment, 820 00:48:34,480 --> 00:48:36,660 però això és també molt fàcil de fer. 821 00:48:36,660 --> 00:48:40,310 Vostè pot simplement mirar les pàgines del manual d'ggplot. 822 00:48:40,310 --> 00:48:47,170 Així que només puc fer ggplot com això i llegir en aquesta pàgina de manual. 823 00:48:47,170 --> 00:48:51,920 >> Així que permetin-me ràpidament mostrar algunes coses interessants. 824 00:48:51,920 --> 00:48:57,610 Seguirem endavant i anar A-- només una aplicació d'aprenentatge automàtic. 825 00:48:57,610 --> 00:49:02,450 Així que anem a dir que tenim aquests tres paquets, així que vaig a carregar aquests a. 826 00:49:02,450 --> 00:49:05,500 827 00:49:05,500 --> 00:49:09,170 Així que això acaba d'imprimir una mica de informació després vaig carregar a la cosa. 828 00:49:09,170 --> 00:49:15,220 Així que jo estic dient això read.csv, aquest conjunt de dades, i ara 829 00:49:15,220 --> 00:49:18,940 Vaig a seguir endavant i mirar i veure el que hi ha dins d'aquest conjunt de dades. 830 00:49:18,940 --> 00:49:22,080 >> Així que les primeres 20 observacions. 831 00:49:22,080 --> 00:49:27,190 Així que només tinc X1, X2 i Y. Per tant, sembla com un munt d'aquests valors 832 00:49:27,190 --> 00:49:31,640 es van des potser 20 a 80 o així. 833 00:49:31,640 --> 00:49:37,700 I llavors de manera similar per X2 i després I aquest sembla ser etiquetes de 0 i 1. 834 00:49:37,700 --> 00:49:49,500 >> Per comprovar això, puc només ho fan les dades de resum X1. 835 00:49:49,500 --> 00:49:51,660 I llavors de manera similar per totes aquestes altres columnes. 836 00:49:51,660 --> 00:49:55,300 Així resum és una forma ràpida de el que mostra als valors ràpids. 837 00:49:55,300 --> 00:49:56,330 Oh, ho sento. 838 00:49:56,330 --> 00:49:58,440 Aquest ha de ser Y. 839 00:49:58,440 --> 00:50:03,420 >> Així que en aquest cas, fa la quantils, mitjanes, Maxes també. 840 00:50:03,420 --> 00:50:07,130 En aquest cas, dataY, es pot veure que només serà 0 i 1. 841 00:50:07,130 --> 00:50:10,100 També la mitjana està dient 0.6, només significa que es 842 00:50:10,100 --> 00:50:13,380 sembla que tinc més que 1s 0s. 843 00:50:13,380 --> 00:50:16,160 >> Així que m'ho dius a mi anar endavant i espectacle el que això sembla. 844 00:50:16,160 --> 00:50:17,470 Així que només vaig a graficar aquesta. 845 00:50:17,470 --> 00:50:22,852 846 00:50:22,852 --> 00:50:24,636 Anem a veure com esborrar això. 847 00:50:24,636 --> 00:50:30,492 848 00:50:30,492 --> 00:50:31,468 Oh D'acord. 849 00:50:31,468 --> 00:50:35,840 850 00:50:35,840 --> 00:50:36,340 D'acord. 851 00:50:36,340 --> 00:50:37,590 >> Així que això és el que sembla. 852 00:50:37,590 --> 00:50:46,310 Així que sembla que els grocs vaig especificar com 0, i després vermell vaig especificar com 1s. 853 00:50:46,310 --> 00:50:52,190 Així que aquí es veu com punts d'etiqueta i es 854 00:50:52,190 --> 00:50:56,410 sembla que només volia una mica de tipus d'agrupació en això. 855 00:50:56,410 --> 00:51:01,020 >> I permetin-me seguir endavant i espectacle que algunes d'aquestes funcions incorporades. 856 00:51:01,020 --> 00:51:03,580 Així que aquí està lm. 857 00:51:03,580 --> 00:51:06,060 Així que això és només tractar per ajustar una recta a això. 858 00:51:06,060 --> 00:51:08,640 Llavors, ¿quina és la millor manera que puc encaixar aquesta línia 859 00:51:08,640 --> 00:51:14,020 que serà millor separar aquest tipus d'agrupació. 860 00:51:14,020 --> 00:51:21,790 I l'ideal és que només pot veure que jo només corro tots aquests comandaments 861 00:51:21,790 --> 00:51:25,450 i després, vaig endavant i afegir la línia. 862 00:51:25,450 --> 00:51:28,970 >> Així que això sembla la millor conjectura. 863 00:51:28,970 --> 00:51:34,150 Es tracta de prendre la millor que minimitza l'error en tractar d'encaixar aquesta línia. 864 00:51:34,150 --> 00:51:40,000 Òbviament, això sembla una mica bo, però no és la millor. 865 00:51:40,000 --> 00:51:43,130 I els models lineals, en en general, seran 866 00:51:43,130 --> 00:51:46,811 realment gran per a la teoria i només una espècie dels fonaments bàsics de la màquina 867 00:51:46,811 --> 00:51:47,310 l'aprenentatge. 868 00:51:47,310 --> 00:51:50,330 Però en la pràctica, vostè va a voler fer alguna cosa més general. 869 00:51:50,330 --> 00:51:54,280 >> Pel que només pot intentar executar cosa que es diu una xarxa neural. 870 00:51:54,280 --> 00:51:57,110 Aquestes coses són cada vegada més comú. 871 00:51:57,110 --> 00:52:00,530 I simplement funcionen fantàsticament per a grans conjunts de dades. 872 00:52:00,530 --> 00:52:07,080 Així que en aquest cas, només tener-- anem a veure-- tenim nrow. 873 00:52:07,080 --> 00:52:09,010 Així nrow és només dir el nombre de files. 874 00:52:09,010 --> 00:52:11,790 Així que en aquest cas, té 100 observacions. 875 00:52:11,790 --> 00:52:15,010 >> Així que m'ho dius a mi anar endavant i fer una xarxa neural. 876 00:52:15,010 --> 00:52:18,620 Així que això és realment agradable perquè puc només dir NNET 877 00:52:18,620 --> 00:52:21,767 i després em regressió I. Així que el I és que la columna. 878 00:52:21,767 --> 00:52:23,850 I a continuació, en la regressió les altres dues variables. 879 00:52:23,850 --> 00:52:27,360 Així que aquest és més curt notació per X1 i X2. 880 00:52:27,360 --> 00:52:29,741 >> Així que seguirem endavant i executar aquest. 881 00:52:29,741 --> 00:52:30,240 Oh, ho sento. 882 00:52:30,240 --> 00:52:32,260 Necessito funcionar tot això. 883 00:52:32,260 --> 00:52:37,500 I això és només la impressió de notació per la rapidesa o no ràpidament 884 00:52:37,500 --> 00:52:38,460 convergit. 885 00:52:38,460 --> 00:52:41,420 Així que sembla que no convergeixen. 886 00:52:41,420 --> 00:52:44,970 Així que m'ho dius a mi anar endavant i d'impressió el que això sembla. 887 00:52:44,970 --> 00:52:51,260 >> Consulti aquí hi ha la imatge i aquí és un nivell que mostra el bé que encaixa. 888 00:52:51,260 --> 00:52:56,380 I això és sol-- es pot veure això que això és molt, molt agradable. 889 00:52:56,380 --> 00:52:59,400 Fins i tot podria ser sobreajust, però vostè pot també 890 00:52:59,400 --> 00:53:03,390 explicar això amb una altra tècniques com la validació creuada. 891 00:53:03,390 --> 00:53:06,180 I aquests també es construeixen en R. 892 00:53:06,180 --> 00:53:09,170 >> I permetin-me mostrar suport de màquines de vectors. 893 00:53:09,170 --> 00:53:12,470 Aquesta és una altra realitat comuna tècnica d'aprenentatge automàtic. 894 00:53:12,470 --> 00:53:18,550 És molt similar als models lineals, però utilitza el que s'anomena un mètode nucli. 895 00:53:18,550 --> 00:53:22,790 I anem a veure el bé que ho fa. 896 00:53:22,790 --> 00:53:26,430 Així que aquest és molt similar a com així una xarxa neuronal realitza, 897 00:53:26,430 --> 00:53:27,900 però és molt més suau. 898 00:53:27,900 --> 00:53:35,740 I això es basa apagat de què-- com el treball SVM. 899 00:53:35,740 --> 00:53:40,250 >> Així que això és només una molt visió ràpida general 900 00:53:40,250 --> 00:53:43,822 de les funcions incorporades que pot fer i també alguns de l'exploració de les dades. 901 00:53:43,822 --> 00:53:45,905 Així que permetin-me seguir endavant i tornar a les diapositives. 902 00:53:45,905 --> 00:53:50,290 903 00:53:50,290 --> 00:53:53,670 >> Així que, òbviament, això és no molt àmplia. 904 00:53:53,670 --> 00:53:57,140 I això és realment només un teaser que li mostra el que pot fer realment a R. 905 00:53:57,140 --> 00:53:59,100 Així que si vostè acaba de voler per aprendre més, aquí 906 00:53:59,100 --> 00:54:01,210 són un munt de diferents recursos. 907 00:54:01,210 --> 00:54:06,890 >> Així que si ets aficionat als llibres de text o ets simplement aficionat a llegir coses en línia, 908 00:54:06,890 --> 00:54:09,670 llavors aquest és un fantàstic un per Hadley Wickham, 909 00:54:09,670 --> 00:54:13,010 qui també va crear tots aquests paquets molt interessants. 910 00:54:13,010 --> 00:54:17,420 Si ets aficionat als vídeos, a continuació, Berkeley té una impressionant bootcamp 911 00:54:17,420 --> 00:54:21,060 això és several-- això és una mica llarg. 912 00:54:21,060 --> 00:54:24,210 I que li ensenyarà gairebé tot el que vostè vol saber sobre R. 913 00:54:24,210 --> 00:54:27,770 >> I de la mateixa manera, no hi ha Codeacademy i tot això una altra classe 914 00:54:27,770 --> 00:54:29,414 llocs web d'interactius. 915 00:54:29,414 --> 00:54:31,580 Ells també estan rebent common-- més i més comú. 916 00:54:31,580 --> 00:54:33,749 Així que aquest és molt similar a Codeacademy. 917 00:54:33,749 --> 00:54:35,790 I, finalment, si només vull Comunitat i ajudar, 918 00:54:35,790 --> 00:54:38,800 aquests són un munt de coses que vostè pot anar. 919 00:54:38,800 --> 00:54:40,880 Òbviament, encara utilitzar llistes de distribució, només 920 00:54:40,880 --> 00:54:44,860 com gairebé tots els altres comunitat llenguatge de programació. 921 00:54:44,860 --> 00:54:47,880 I #rstats, això és la nostra comunitat de Twitter. 922 00:54:47,880 --> 00:54:49,580 Això és en realitat bastant comú. 923 00:54:49,580 --> 00:54:50,850 I llavors l'usuari! 924 00:54:50,850 --> 00:54:52,340 És només la nostra conferència. 925 00:54:52,340 --> 00:54:55,390 >> I després, per descomptat, vostè pot utilitzar totes aquestes altres coses de preguntes i respostes, 926 00:54:55,390 --> 00:54:57,680 com desbordament de la pila, Google, i després GitHub. 927 00:54:57,680 --> 00:55:00,490 A causa de que la majoria d'aquests paquets i gran part de la comunitat 928 00:55:00,490 --> 00:55:03,420 se centrarà en el desenvolupament de codi perquè és de codi obert. 929 00:55:03,420 --> 00:55:05,856 I és realment agradable a GitHub. 930 00:55:05,856 --> 00:55:08,730 I, finalment, pot posar-se en contacte amb mi si només tens alguna pregunta ràpids. 931 00:55:08,730 --> 00:55:13,530 Així que vostè em pot trobar a Twitter aquí, meu lloc web, i només el meu correu electrònic. 932 00:55:13,530 --> 00:55:17,840 Així que espero, que era alguna cosa-- només un teaser curt 933 00:55:17,840 --> 00:55:20,900 del que R és realment capaç de fer. 934 00:55:20,900 --> 00:55:23,990 I és d'esperar, que acaba de fes un cop d'ull a aquests tres enllaços 935 00:55:23,990 --> 00:55:25,760 i veure el que pot fer més. 936 00:55:25,760 --> 00:55:28,130 I suposo que això és només sobre ell. 937 00:55:28,130 --> 00:55:28,630 Gràcies. 938 00:55:28,630 --> 00:55:30,780 >> [Aplaudiments] 939 00:55:30,780 --> 00:55:31,968