1 00:00:00,000 --> 00:00:00,750 2 00:00:00,750 --> 00:00:09,800 >> [Musikwiedergabe] 3 00:00:09,800 --> 00:00:13,014 4 00:00:13,014 --> 00:00:13,680 Dustin TRAN: Hallo. 5 00:00:13,680 --> 00:00:14,980 Mein Name ist Dustin. 6 00:00:14,980 --> 00:00:18,419 Also werde ich präsentieren Datenanalyse in R. 7 00:00:18,419 --> 00:00:19,710 Nur ein bisschen über mich selbst. 8 00:00:19,710 --> 00:00:24,320 Ich bin zurzeit ein Student in die Technik und angewandte Wissenschaften. 9 00:00:24,320 --> 00:00:28,330 I-Studie eine Schnittmenge maschinelles Lernen und Statistik 10 00:00:28,330 --> 00:00:31,375 so Datenanalyse in R wirklich von grundlegender Bedeutung für das, was 11 00:00:31,375 --> 00:00:33,790 Ich auf einer täglichen Basis. 12 00:00:33,790 --> 00:00:35,710 >> Und R ist besonders gut für die Datenanalyse 13 00:00:35,710 --> 00:00:39,310 denn es ist sehr gut für das Prototyping. 14 00:00:39,310 --> 00:00:43,590 Und in der Regel, wenn Sie tun, eine Art sind Datenanalyse, viele der Probleme 15 00:00:43,590 --> 00:00:44,920 auf kognitive gehen. 16 00:00:44,920 --> 00:00:48,700 Und so möchten Sie gerade haben einige wirklich gute Sprache, 17 00:00:48,700 --> 00:00:53,770 ist gerade gut zu tun eingebaute Funktionen, im Gegensatz 18 00:00:53,770 --> 00:00:57,430 zu haben, um mit niedrigen Dinge Ebene zu behandeln. 19 00:00:57,430 --> 00:01:01,040 Also am Anfang, ich bin gerade dabei vorstellen, was R, warum sollte 20 00:01:01,040 --> 00:01:04,540 Sie es verwenden möchten, und dann gehen Sie über in eine Demo, 21 00:01:04,540 --> 00:01:07,060 und gehen Sie einfach von dort. 22 00:01:07,060 --> 00:01:08,150 >> Also, was ist R? 23 00:01:08,150 --> 00:01:11,180 R ist nur eine Sprache entwickelt, für statistische Berechnungen 24 00:01:11,180 --> 00:01:12,450 und Visualisierung. 25 00:01:12,450 --> 00:01:16,000 Also, was bedeutet, dass es ist eine sehr sehr gute Sprach ist 26 00:01:16,000 --> 00:01:22,400 für jede Art von Dingen, das sich mit Unsicherheit oder Datenvisualisierung. 27 00:01:22,400 --> 00:01:24,850 So können Sie alles haben Wahrscheinlichkeitsverteilungen. 28 00:01:24,850 --> 00:01:27,140 Es gehen zu sein eingebaute Funktionen. 29 00:01:27,140 --> 00:01:31,650 Darüber hinaus haben Sie ausgezeichnete Plotten Pakete. 30 00:01:31,650 --> 00:01:34,110 >> Python ist eine andere konkurrierende Sprache-Daten. 31 00:01:34,110 --> 00:01:40,020 Und eine Sache, die ich finde, dass R ist viel besser ist die Visualisierung. 32 00:01:40,020 --> 00:01:45,200 Also, was Sie in der Demo, wie sehen auch nur eine sehr intuitive Sprache 33 00:01:45,200 --> 00:01:48,050 dass nur funktioniert sehr gut. 34 00:01:48,050 --> 00:01:53,140 Es ist auch kostenlos und Open Source, wie ist eine andere gute Sprache, denke ich. 35 00:01:53,140 --> 00:01:55,440 >> Und hier, ein Bündel von nur Keywords auf Sie geworfen. 36 00:01:55,440 --> 00:02:00,450 Es ist dynamisch, was bedeutet, wenn Sie eine spezifische Aktivität zu einem Objekt zugeordnet 37 00:02:00,450 --> 00:02:02,025 als es werde einfach ändern Sie im laufenden Betrieb. 38 00:02:02,025 --> 00:02:05,670 Es ist faul, so ist es klug zu wie es das macht Berechnungen. 39 00:02:05,670 --> 00:02:12,250 Funktionale Bedeutung es wirklich arbeiten kann basierte weg von Funktionen so anything-- 40 00:02:12,250 --> 00:02:16,910 jede Art von Manipulation Sie Dabei wird sie off-Funktionen basieren. 41 00:02:16,910 --> 00:02:20,162 >> So binäre Operatoren, beispielsweise sind nur von Natur Funktionen. 42 00:02:20,162 --> 00:02:21,870 Und alles, was Sie gehen zu tun ist 43 00:02:21,870 --> 00:02:24,690 werde off-Funktionen selbst ausgeführt werden. 44 00:02:24,690 --> 00:02:27,140 Und dann Objekt als auch ausgerichtet. 45 00:02:27,140 --> 00:02:30,930 >> Also hier ist ein XKCD Grundstück. 46 00:02:30,930 --> 00:02:34,350 Nicht nur, weil ich das Gefühl, XKCD ist grundlegend für jede Art 47 00:02:34,350 --> 00:02:37,770 Präsentations, sondern weil Ich fühle mich wie das ist wirklich 48 00:02:37,770 --> 00:02:42,160 hämmert den Punkt, dass viele der Zeit, wenn Sie tun, irgendeine Art von Daten sind 49 00:02:42,160 --> 00:02:46,570 Analyse, ist das Problem nicht so viel, wie schnell es fährt, 50 00:02:46,570 --> 00:02:49,850 aber wie lange es zu gehen nehmen Sie die Aufgabe zu programmieren. 51 00:02:49,850 --> 00:02:54,112 So, hier ist nur die Analyse, ob Strategie a oder b ist effizienter. 52 00:02:54,112 --> 00:02:55,820 Das wird sein etwas, das Sie 53 00:02:55,820 --> 00:02:58,290 wird eine Menge mit in befassen Art von Low-Level-Sprachen 54 00:02:58,290 --> 00:03:03,440 wo Sie mit seg Fehler zu tun haben, Speicherzuweisung, Initialisierungen, 55 00:03:03,440 --> 00:03:05,270 sogar machen die integrierten Funktionen. 56 00:03:05,270 --> 00:03:09,920 Und dieses Zeug ist alles behandelt sehr, sehr elegant in R. 57 00:03:09,920 --> 00:03:12,839 >> Also einfach, dies zu hämmern Punkt, der größte Engpass 58 00:03:12,839 --> 00:03:13,880 wird kognitiven sein. 59 00:03:13,880 --> 00:03:17,341 So Datenanalyse ist ein sehr schwieriges Problem. 60 00:03:17,341 --> 00:03:19,340 Egal, ob Sie tun maschinelles Lernen, oder du bist 61 00:03:19,340 --> 00:03:22,550 , die gerade eine Art von Grunddaten Exploration, 62 00:03:22,550 --> 00:03:25,290 Sie wollen nicht zu haben, um ein Dokument zu nehmen 63 00:03:25,290 --> 00:03:27,440 und kompilieren etwas, das jedes Mal, wenn Sie 64 00:03:27,440 --> 00:03:31,010 sehen wollen, was eine Spalte aussieht, welche insbesondere Einträge in einer Matrix 65 00:03:31,010 --> 00:03:32,195 aussieht. 66 00:03:32,195 --> 00:03:34,320 So können Sie nur wollen, haben einige wirklich nette Schnittstelle 67 00:03:34,320 --> 00:03:37,740 Sie eine einfache Funktion ausgeführt werden kann dass Indizes zu was auch immer 68 00:03:37,740 --> 00:03:41,870 Sie möchten und nur von dort ausführen. 69 00:03:41,870 --> 00:03:44,190 Und Sie müssen Domäne bestimmte Sprachen für diese. 70 00:03:44,190 --> 00:03:51,750 Und R hilft Ihnen wirklich definieren Problem und lösen es auf diese Weise. 71 00:03:51,750 --> 00:03:58,690 >> So, hier ist eine grafische Darstellung, die Programmierung Popularität von R, wie es im Laufe der Zeit verschwunden. 72 00:03:58,690 --> 00:04:04,060 So wie Sie sehen können, wie 2013 oder so dass es nur bis enorm geblasen. 73 00:04:04,060 --> 00:04:09,570 Und das hat gerade deshalb war großen Trend in der Technologiebranche 74 00:04:09,570 --> 00:04:10,590 über Big Data. 75 00:04:10,590 --> 00:04:13,010 Auch sind nicht nur die Technik Industrie, aber wirklich 76 00:04:13,010 --> 00:04:16,490 eine Branche, weil dass-- ein Großteil der Industrie 77 00:04:16,490 --> 00:04:20,589 sind eine Art von grundlegender Bedeutung versucht, diese Probleme zu lösen. 78 00:04:20,589 --> 00:04:24,590 Und in der Regel, können Sie etwas Gutes haben Methode zur Messung der diese Probleme 79 00:04:24,590 --> 00:04:29,720 oder sogar sie zu definieren oder Lösen Sie sie mit Daten. 80 00:04:29,720 --> 00:04:35,430 Also ich denke, jetzt ist der 11. R beliebteste Sprache auf TIOBE 81 00:04:35,430 --> 00:04:38,200 und es ist seitdem gewachsen. 82 00:04:38,200 --> 00:04:40,740 83 00:04:40,740 --> 00:04:43,080 >> So, hier ist etwas mehr Features von R. Es hat 84 00:04:43,080 --> 00:04:46,900 eine enorme Anzahl von Paketen und Für alle diese verschiedene Dinge. 85 00:04:46,900 --> 00:04:52,470 Also, wann immer Sie haben einen gewisses Problem, die meisten 86 00:04:52,470 --> 00:04:55,060 die Zeit R wird diese Funktion für Sie. 87 00:04:55,060 --> 00:04:58,520 Egal, ob Sie möchten bauen eine Art von Maschine 88 00:04:58,520 --> 00:05:02,770 Lernalgorithmus genannt Zufallswald oder Entscheidungsbäume, 89 00:05:02,770 --> 00:05:07,530 oder auch nur zu versuchen, um den Mittelwert zu nehmen eine Funktion oder einen von diesem Zeug, 90 00:05:07,530 --> 00:05:10,000 R haben, dass. 91 00:05:10,000 --> 00:05:14,190 >> Und wenn Sie das tun, die Sie interessieren Optimierung, eine Sache, die gemeinsam ist 92 00:05:14,190 --> 00:05:17,430 ist, dass, nachdem Sie fertig sind Prototyping eine Art von High-Level-Sprache, 93 00:05:17,430 --> 00:05:19,810 Sie werfen, dass in-- Sie werden nur Port, über 94 00:05:19,810 --> 00:05:21,550 bis zu einem gewissen Low-Level-Sprache. 95 00:05:21,550 --> 00:05:26,090 Was ist gut über R ist, dass wenn Sie getan Prototyping, können Sie C ++ ausführen, 96 00:05:26,090 --> 00:05:29,510 oder Fortran, oder von irgendwelchen untere Ebene diejenigen direkt in R. 97 00:05:29,510 --> 00:05:32,320 Also das ist ein wirklich cooles Feature über R, 98 00:05:32,320 --> 00:05:35,930 wenn Sie wirklich über die Optimierung Punkt. 99 00:05:35,930 --> 00:05:39,490 >> Und es ist auch richtig gut für Web-Visualisierungen. 100 00:05:39,490 --> 00:05:43,530 So D3.js, beispielsweise Ich denke, ein weiteres Seminar 101 00:05:43,530 --> 00:05:45,130 dass wir die heute. 102 00:05:45,130 --> 00:05:48,510 Und das ist wirklich genial für Dabei interaktive Visualisierungen. 103 00:05:48,510 --> 00:05:54,460 Und D3.js vorausgesetzt, dass Sie eine Art von Daten geplottet 104 00:05:54,460 --> 00:05:58,080 und R ist eine großartige Möglichkeit, in der Lage zu tun, die Datenanalyse, bevor Sie exportieren 105 00:05:58,080 --> 00:06:04,220 über D3.js oder auch nur laufen D3.js Befehle in R selbst, 106 00:06:04,220 --> 00:06:08,240 sowie alles andere Bibliotheken auch. 107 00:06:08,240 --> 00:06:13,041 >> Das war also nur die Einführung von was ist R und warum Sie es verwenden können. 108 00:06:13,041 --> 00:06:14,790 Hoffentlich, habe ich überzeugen Sie etwas 109 00:06:14,790 --> 00:06:18,460 etwa nur versuchen, um zu sehen, wie es ist. 110 00:06:18,460 --> 00:06:23,930 Also werde ich voran gehen und gehen durch Einige Grundlagen über R Objekte 111 00:06:23,930 --> 00:06:26,150 und was Sie wirklich tun können. 112 00:06:26,150 --> 00:06:29,690 >> So, hier ist nur ein Haufen von Mathematik-Befehle. 113 00:06:29,690 --> 00:06:35,000 So sagen you're-- Sie bauen wollen Sprache selbst und Sie nur wollen 114 00:06:35,000 --> 00:06:38,080 , eine Reihe von verschiedenen Werkzeugen haben. 115 00:06:38,080 --> 00:06:42,520 Jede Art von Operation, die Sie denken, Sie würden wollen, ist ziemlich viel los zu sein in R. 116 00:06:42,520 --> 00:06:44,150 >> So, hier ist 2 plus 2. 117 00:06:44,150 --> 00:06:46,090 Hier ist 2 mal pi. 118 00:06:46,090 --> 00:06:51,870 R hat eine Reihe von integrierten Konstanten dass Sie häufig verwenden wie pi, e. 119 00:06:51,870 --> 00:06:56,230 >> Und dann, hier ist 7 und runif, so runif von 1. 120 00:06:56,230 --> 00:07:02,450 Dies ist eine Funktion, die es erzeugt, eine Zufalls einheitliche 0-1. 121 00:07:02,450 --> 00:07:04,400 Und dann gibt es 3, die Macht der 4. 122 00:07:04,400 --> 00:07:06,430 Es gibt Quadratwurzeln. 123 00:07:06,430 --> 00:07:07,270 >> Es gibt Protokoll. 124 00:07:07,270 --> 00:07:14,500 So melden Sie wird Basis tun Exponentialfunktion von selbst aus. 125 00:07:14,500 --> 00:07:18,337 Und dann, wenn man eine Basis geben dann, Sie tun, was Sie wollen Basis. 126 00:07:18,337 --> 00:07:19,920 Und dann sind hier einige andere Befehle. 127 00:07:19,920 --> 00:07:22,180 So haben Sie 23 mod 2. 128 00:07:22,180 --> 00:07:24,910 Dann haben Sie den Rest. 129 00:07:24,910 --> 00:07:27,110 Dann haben Sie wissenschaftliche Notation, wenn Sie auch 130 00:07:27,110 --> 00:07:34,060 wollen einfach mehr tun, und kompliziertere Dinge. 131 00:07:34,060 --> 00:07:37,320 >> Hier ist also Aufgabe. 132 00:07:37,320 --> 00:07:40,830 So typische Aufgaben in R ist mit einem Pfeil getan 133 00:07:40,830 --> 00:07:43,440 so ist es weniger als und der Bindestrich. 134 00:07:43,440 --> 00:07:47,250 So, hier bin ich nur die Zuordnung 3 in die Variable val. 135 00:07:47,250 --> 00:07:50,160 >> Und dann werde ich den Ausdruck val und dann druckt sie drei. 136 00:07:50,160 --> 00:07:53,920 Standardmäßig werden in R-Interpreter, es werden die Dinge für Sie drucken 137 00:07:53,920 --> 00:07:57,280 so müssen Sie nicht angeben, drucken Sie eine val immer wenn Sie etwas ausdrucken wollen. 138 00:07:57,280 --> 00:08:00,200 Sie können nur tun, und val dann wird es für Sie tun. 139 00:08:00,200 --> 00:08:04,380 >> Auch können Sie auf technisch nutzen kann ist gleich als Zuweisungsoperator. 140 00:08:04,380 --> 00:08:07,190 Es gibt kleinere Besonderheiten zwischen mit den Pfeil 141 00:08:07,190 --> 00:08:10,730 Betreiber und das Gleichheits Operator für Zuordnungen. 142 00:08:10,730 --> 00:08:15,470 Meist durch Konvention, alle wird einfach die Pfeil-Operator. 143 00:08:15,470 --> 00:08:21,850 >> Und hier, ich bin die Zuordnung dieser Schräg Notation genannt 1 Doppelpunkt 6. 144 00:08:21,850 --> 00:08:26,010 Dies erzeugt einen Vektor von 1 bis 6. 145 00:08:26,010 --> 00:08:29,350 Und das ist wirklich schön, denn dann Sie gerade den Vektor zu val zuweisen 146 00:08:29,350 --> 00:08:34,270 und das funktioniert für sich. 147 00:08:34,270 --> 00:08:37,799 >> Also das geht schon aus ein single-- eine sehr intuitive Daten 148 00:08:37,799 --> 00:08:41,070 Struktur nur ein Doppel von irgendeine Art von Aktivität in einen Vektor 149 00:08:41,070 --> 00:08:45,670 und welche alle sammeln die skalare Werte für Sie. 150 00:08:45,670 --> 00:08:50,770 Also wenn Sie sich in einem Skalar, Sie haben R Objekten und dies ist ein Vektor. 151 00:08:50,770 --> 00:08:55,610 Ein Vektor ist eine beliebige Art von Sammlung des gleichen Typs. 152 00:08:55,610 --> 00:08:58,150 So, hier sind ein paar Vektoren. 153 00:08:58,150 --> 00:08:59,800 >> Also das ist numerisch. 154 00:08:59,800 --> 00:09:02,440 Numerisch ist R Art zu sagen Doppel. 155 00:09:02,440 --> 00:09:07,390 Und so wird standardmäßig jede Nummer wird eine doppelte sein. 156 00:09:07,390 --> 00:09:13,150 >> Also, wenn Sie c von 1,1, 3 haben, Negativ 5.7, ist die c eine Funktion ist. 157 00:09:13,150 --> 00:09:16,760 Diese verkettet alle drei Zahlen in einen Vektor. 158 00:09:16,760 --> 00:09:19,619 Und das wird so, wenn be-- Sie bemerken, 3 für sich, 159 00:09:19,619 --> 00:09:21,910 Normalerweise würde man davon ausgehen, dass dies wie eine ganze Zahl ist, 160 00:09:21,910 --> 00:09:25,050 sondern weil alle Vektoren sind vom gleichen Typ, 161 00:09:25,050 --> 00:09:28,660 Dies ist ein Vektor von Doppel oder numerisch in diesem Fall. 162 00:09:28,660 --> 00:09:34,920 >> rnorm ist eine Funktion, erzeugt Standardnormal variables-- 163 00:09:34,920 --> 00:09:36,700 oder Standard-Normalwerte. 164 00:09:36,700 --> 00:09:38,360 Und ich bin der Angabe zwei von ihnen. 165 00:09:38,360 --> 00:09:43,840 Also ich mache rnorm 2, Zuweisung, dass auf Entwickler, und dann werde ich den Ausdruck Entwickler. 166 00:09:43,840 --> 00:09:47,350 Das sind also nur zwei sind zufälligen Normalwerte. 167 00:09:47,350 --> 00:09:50,060 >> Und dann ints, wenn Sie tun Sie kümmern uns um Zahlen. 168 00:09:50,060 --> 00:09:54,650 So ist dies nur über Speicher Zuordnung und Speicherung Speichergröße. 169 00:09:54,650 --> 00:10:01,460 So müsste man anfügen Ihre Zahlen vom Kapital L. 170 00:10:01,460 --> 00:10:04,170 >> In der Regel ist dies Historische Schreibweise R 171 00:10:04,170 --> 00:10:06,940 für so genannte Long-Integer. 172 00:10:06,940 --> 00:10:09,880 Also die meiste Zeit, werden Sie sein Umgang mit Doppelzimmer. 173 00:10:09,880 --> 00:10:15,180 Und wenn Sie jemals wird später auf Ihrem Code zu optimieren, 174 00:10:15,180 --> 00:10:18,110 Sie können fügen Sie einfach diesen L's danach oder während es 175 00:10:18,110 --> 00:10:22,280 wenn Sie wie präkognitive über sind, was Sie gehen, um diese Variablen zu tun. 176 00:10:22,280 --> 00:10:25,340 177 00:10:25,340 --> 00:10:26,890 >> Also hier ist ein Zeichen Vektor. 178 00:10:26,890 --> 00:10:31,440 Also, noch einmal, ich bin Verkettung drei Saiten diesmal. 179 00:10:31,440 --> 00:10:36,230 Beachten Sie, dass Doppelsaiten und Einzelsaiten sind die gleichen in R. 180 00:10:36,230 --> 00:10:41,000 So habe ich arthur und marvin und so wenn ich drucke es aus, alle von ihnen 181 00:10:41,000 --> 00:10:43,210 gehen, um Doppelsaiten zu zeigen. 182 00:10:43,210 --> 00:10:45,880 Und wenn Sie auch sind Die Doppel- oder Einzel String 183 00:10:45,880 --> 00:10:50,070 in Ihrem Zeichen, dann können Sie entweder abwechselnd Saiten. 184 00:10:50,070 --> 00:10:53,540 >> So marvin für die zweite Element ist dies 185 00:10:53,540 --> 00:10:56,380 dich show-- nur noch Doppelsaiten 186 00:10:56,380 --> 00:10:59,050 und dann eine einzelne Zeichenfolge so ist dies im Wechsel. 187 00:10:59,050 --> 00:11:04,040 Andernfalls, wenn Sie möchten, um eine doppelte Verwendung String-Operator in einer Doppel-String 188 00:11:04,040 --> 00:11:07,090 wenn man es erklären, dann Sie benutzen Sie einfach die Escape-Operator. 189 00:11:07,090 --> 00:11:10,600 So können Sie den Backslash Doppel-String zu tun. 190 00:11:10,600 --> 00:11:13,330 >> Und schließlich haben wir auch haben logische Vektoren. 191 00:11:13,330 --> 00:11:15,890 So logical-- so TRUE und FALSE, und sie sind 192 00:11:15,890 --> 00:11:18,880 werde Großbuchstaben sein. 193 00:11:18,880 --> 00:11:22,370 Und dann wieder ich Verketten sie und ihre Zuordnung zu bools. 194 00:11:22,370 --> 00:11:24,590 So bools wird sich zeigen, Sie TRUE, FALSE und TRUE. 195 00:11:24,590 --> 00:11:28,280 196 00:11:28,280 --> 00:11:31,620 >> So, hier ist vektorisiert Indizierung. 197 00:11:31,620 --> 00:11:34,870 So am Anfang, I nehme eine function-- 198 00:11:34,870 --> 00:11:39,230 dies wird als sequence-- Sequenz 2 bis 12. 199 00:11:39,230 --> 00:11:42,490 Und ich nehme eine Sequenz von 2. 200 00:11:42,490 --> 00:11:46,660 Es wird also zu tun 2, 4, 6, 8, 10 und 12. 201 00:11:46,660 --> 00:11:50,080 Und dann bin ich Indexierung um das dritte Element zu erhalten. 202 00:11:50,080 --> 00:11:55,770 >> So eine Sache zu beachten ist, dass R Indizes von ab 1. 203 00:11:55,770 --> 00:12:00,550 So vals 3 wird sich geben, Sie das dritte Element. 204 00:12:00,550 --> 00:12:04,580 Dies ist eine Art von anderen Sprachen, in denen sie von Null beginnt. 205 00:12:04,580 --> 00:12:09,780 So in C oder C ++, zum Beispiel, du bist gehen, um das vierte Element zu erhalten. 206 00:12:09,780 --> 00:12:13,280 >> Und hier ist vals 3-5. 207 00:12:13,280 --> 00:12:16,030 So eine Sache, die ist wirklich cool ist, dass man 208 00:12:16,030 --> 00:12:20,410 Temporäre Variablen können im Inneren erzeugen und dann benutzen Sie einfach diese im laufenden Betrieb. 209 00:12:20,410 --> 00:12:21,960 So, hier ist 3-5. 210 00:12:21,960 --> 00:12:25,070 Also bin ich Erzeugen eines Vektors 3, 4 und 5 und dann 211 00:12:25,070 --> 00:12:29,700 Ich indizieren, um die dritte zu bekommen, vierten und fünften Elemente. 212 00:12:29,700 --> 00:12:32,280 >> So ähnlich, können Sie abstrakte dies nur tun, 213 00:12:32,280 --> 00:12:35,280 jede Art eines Vektors das gibt Ihnen die Indizierung. 214 00:12:35,280 --> 00:12:40,050 So, hier ist vals und dann die ersten, dritten und sechsten Elemente. 215 00:12:40,050 --> 00:12:42,800 Und dann, wenn Sie wollen um eine Ergänzung zu tun, 216 00:12:42,800 --> 00:12:45,210 so dass Sie nur tun, das Minus danach und werde 217 00:12:45,210 --> 00:12:48,600 geben Ihnen alles, was nicht ist das ersten, dritten oder sechsten Elements. 218 00:12:48,600 --> 00:12:51,590 So wird dies 4, 8 und 10 liegen. 219 00:12:51,590 --> 00:12:54,380 >> Und wenn Sie erhalten möchten noch weiter fortgeschritten, 220 00:12:54,380 --> 00:12:57,610 Sie Boolean Vektoren zu verketten. 221 00:12:57,610 --> 00:13:05,210 Also dieser Index wird Ihnen geben Diese Boolean Vektor der Länge 6. 222 00:13:05,210 --> 00:13:07,280 So rep TRUE Komma 3. 223 00:13:07,280 --> 00:13:09,680 Dies wird TRUE dreimal wiederholen. 224 00:13:09,680 --> 00:13:12,900 So wird dies Ihnen einen geben Vektor TRUE, TRUE, TRUE. 225 00:13:12,900 --> 00:13:17,470 >> rep FALSE 4-- das wird dir geben ein Vektor von FALSE, FALSE, FALSE, FALSE. 226 00:13:17,470 --> 00:13:21,280 Und dann c wird zu verketten diese beiden Booleans zusammen. 227 00:13:21,280 --> 00:13:24,090 So wirst du drei zu bekommen sind Trues und dann vier FALSCH. 228 00:13:24,090 --> 00:13:28,460 >> So dass, wenn Sie Index vals, du bist gehen die TRUE, TRUE, TRUE zu bekommen. 229 00:13:28,460 --> 00:13:31,420 So, das wird ja zu sagen, Ich möchte diese drei Elemente. 230 00:13:31,420 --> 00:13:33,520 Und dann false, false, FALSCH, FALSCH wird 231 00:13:33,520 --> 00:13:37,140 nein zu sagen, ich habe nicht die Elemente wollen so wird es nicht zu ihnen zurückkehren. 232 00:13:37,140 --> 00:13:41,490 >> Und ich denke, es gibt tatsächlich ein Tippfehler hier denn dies sagt Wiederholung TRUE 3 233 00:13:41,490 --> 00:13:47,990 und wiederholen FALSE 4 und technisch, Sie nur sechs Elemente so wiederholen FALSE, 234 00:13:47,990 --> 00:13:50,470 es sollte erneut anspricht 3 sein. 235 00:13:50,470 --> 00:13:55,260 Ich denke, R ist auch intelligent genug, wie dass, wenn Sie nur angeben, 4 hier, dann 236 00:13:55,260 --> 00:13:56,630 es wird auch nicht Fehler aus. 237 00:13:56,630 --> 00:13:58,480 Es wird nur geben Sie diesen Wert. 238 00:13:58,480 --> 00:14:00,970 So dass es dann einfach ignorieren, dass die vierte FALSE. 239 00:14:00,970 --> 00:14:05,310 240 00:14:05,310 --> 00:14:09,270 >> So, hier ist vektorisiert Zuordnungs. 241 00:14:09,270 --> 00:14:15,480 So set.seed-- dies nur setzt der Samen für Pseudozufallszahlen. 242 00:14:15,480 --> 00:14:20,110 Also werde ich die Einstellung der Aussaat bis zur 42, was bedeutet, dass, wenn ich zu generieren 243 00:14:20,110 --> 00:14:22,950 drei zufälligen Normal Werte, und dann, wenn Sie 244 00:14:22,950 --> 00:14:27,400 laufen auf eigene Faust set.seed Computer mit dem gleichen Wert 42, 245 00:14:27,400 --> 00:14:30,990 dann auch Sie die gleichen drei Zufalls Normalen. 246 00:14:30,990 --> 00:14:33,411 >> Also das ist wirklich gut Reproduzierbarkeit. 247 00:14:33,411 --> 00:14:35,910 Normalerweise, wenn Sie tun, einige Art der wissenschaftlichen Analyse, 248 00:14:35,910 --> 00:14:37,230 würden Sie wollen, um den Samen gesetzt. 249 00:14:37,230 --> 00:14:41,270 Auf diese Weise andere Wissenschaftler können einfach reproduzieren genau die gleiche Code, den Sie haben 250 00:14:41,270 --> 00:14:44,790 getan, weil sie werde die genaue haben elbe Zufallsvariablen dass-- oder zufällig 251 00:14:44,790 --> 00:14:47,270 Werte, die Sie sich auch genommen haben. 252 00:14:47,270 --> 00:14:49,870 253 00:14:49,870 --> 00:14:53,910 >> Und so ist die vektorisiert Zuordnungs Hier zeigt sich die Valser 1-2. 254 00:14:53,910 --> 00:14:59,290 So ist es die ersten beiden Elemente erfolgt vals und dann ordnet sie 0. 255 00:14:59,290 --> 00:15:03,940 Und dann können Sie auch nur tun, die ähnliche Sache mit den Booleans. 256 00:15:03,940 --> 00:15:09,340 >> So vals nicht gleich diesen Willen 0-- geben Ihnen einen Vektor FALSE, FALSE, TRUE 257 00:15:09,340 --> 00:15:10,350 in diesem fall. 258 00:15:10,350 --> 00:15:13,770 Und dann, es wird zu einem sagen, dieser Indizes das wahr wäre, 259 00:15:13,770 --> 00:15:15,270 dann es geht um, dass bis 5 vergeben. 260 00:15:15,270 --> 00:15:18,790 So ist es das dritte Element nimmt hier und dann ordnet sie fünf. 261 00:15:18,790 --> 00:15:22,300 >> Und das ist wirklich schön im Vergleich zu Low-Level-Sprachen 262 00:15:22,300 --> 00:15:25,560 wo Sie for-Schleifen verwenden , alle diese Dinge zu tun vektorisiert 263 00:15:25,560 --> 00:15:30,281 weil es nur sehr intuitiv und es ist ein Einzel Einzeiler. 264 00:15:30,281 --> 00:15:32,030 Und was ist toll an vektorisiert Notation 265 00:15:32,030 --> 00:15:37,020 ist, dass in R, sind diese Art von eingebaute, so dass sie fast so schnell 266 00:15:37,020 --> 00:15:42,490 da dies in einem Low-Level-Sprache um so eine for-Schleife in R gegen 267 00:15:42,490 --> 00:15:46,317 und dann mit ihm zu tun, die dynamische Indizierung selbst. 268 00:15:46,317 --> 00:15:48,900 Und das werde langsamer als tut sein diese Art der Sache vektorisiert 269 00:15:48,900 --> 00:15:55,950 wo es parallel, wo tun kann es ist im Grunde das Einfädeln zu tun. 270 00:15:55,950 --> 00:15:58,650 >> So, hier ist vektorisiert Operationen. 271 00:15:58,650 --> 00:16:04,920 Also ich bin generieren Wert 1 bis 3, Zuweisen dieser an vec1, 3 bis 5, vec2, 272 00:16:04,920 --> 00:16:05,950 indem Sie sie zusammen. 273 00:16:05,950 --> 00:16:11,490 Sie fügt hinzu, sie komponentenweise so es ist 1 plus 3, 2 und 4, und so weiter. 274 00:16:11,490 --> 00:16:13,330 >> vec1 mal vec2. 275 00:16:13,330 --> 00:16:16,110 Diese die zwei multipliziert Werte Komponente weise. 276 00:16:16,110 --> 00:16:21,830 Es ist also 1 mal 3, 2-mal 4, und dann 3-mal 5. 277 00:16:21,830 --> 00:16:28,250 >> Und dann, in ähnlicher Weise können Sie auch tun, comparisons-- logische Vergleiche. 278 00:16:28,250 --> 00:16:33,640 So ist es FALSE FALSE TRUE in diesem Fall, weil 1 nicht größer als 3 ist, 279 00:16:33,640 --> 00:16:35,920 2 nicht größer als 4 ist. 280 00:16:35,920 --> 00:16:41,160 Das ist, glaube ich, eine andere Tippfehler, 3 ist auf jeden Fall nicht größer als 5 ist. 281 00:16:41,160 --> 00:16:41,660 Ja. 282 00:16:41,660 --> 00:16:45,770 Und so können Sie einfach alle tun diese einfachen Operationen 283 00:16:45,770 --> 00:16:48,350 weil ihre ererbten aus den Klassen selbst. 284 00:16:48,350 --> 00:16:51,110 285 00:16:51,110 --> 00:16:52,580 >> Das war nur der Vektor. 286 00:16:52,580 --> 00:16:56,530 Und das ist eine Art der grundlegendsten R-Objekt, da angesichts eines Vektors, 287 00:16:56,530 --> 00:16:59,170 Sie können erweiterte Objekte zu konstruieren. 288 00:16:59,170 --> 00:17:00,560 >> Also hier ist eine Matrix. 289 00:17:00,560 --> 00:17:05,030 Dies ist im wesentlichen die Abstraktion was eine Matrix selbst. 290 00:17:05,030 --> 00:17:10,099 Also in diesem Fall, es ist drei Vektoren, wobei jeder eine Spalte ist, 291 00:17:10,099 --> 00:17:12,710 oder Sie können es betrachten wie jeder ist eine Zeile. 292 00:17:12,710 --> 00:17:18,250 >> Also ich bin Speichern einer Matrix von 1 bis 9 und dann werde ich die Angabe 3 Reihen. 293 00:17:18,250 --> 00:17:23,364 So 1-9 gibt Ihnen einen Vektor ein, 2, 3, 4, 5, 6, und den ganzen Weg bis 9. 294 00:17:23,364 --> 00:17:29,250 >> Eine Sache, die auch im Auge zu behalten ist, dass R speichert Werte in Spalte-Großformat. 295 00:17:29,250 --> 00:17:34,160 Also mit anderen Worten, wenn Sie sehen, ein bis 9, es wird zu speichern them-- 296 00:17:34,160 --> 00:17:36,370 es wird auf 1, 2, 3 in der ersten Spalte, 297 00:17:36,370 --> 00:17:38,510 und dann wird es tun, 4, 5, 6 in der zweiten Säule, 298 00:17:38,510 --> 00:17:41,440 und 7, 8, 9 in der dritten Spalte. 299 00:17:41,440 --> 00:17:45,570 >> Und hier sind einige andere gemeinsame Funktionen, die Sie verwenden können. 300 00:17:45,570 --> 00:17:49,650 So dunkel matt, das wird Ihnen die Dimensionen der Matrix. 301 00:17:49,650 --> 00:17:52,620 Es wird Sie zurück ein Vektor der Dimension. 302 00:17:52,620 --> 00:17:55,580 So dass in diesem Fall, weil unsere Matrix 3 von 3, 303 00:17:55,580 --> 00:18:01,900 es geht um Sie zu geben Zahlenvektor, ist 3 3. 304 00:18:01,900 --> 00:18:05,270 >> Und hier wird nur zeigen Matrixmultiplikation. 305 00:18:05,270 --> 00:18:11,970 Also in der Regel, wenn Sie gerade tun asterisk-- so Matte Stern mat-- 306 00:18:11,970 --> 00:18:15,380 dies sein wird komponentenweisen Betrieb 307 00:18:15,380 --> 00:18:17,300 oder was die Hadamard Produkt bezeichnet. 308 00:18:17,300 --> 00:18:21,310 Also, es wird jeweils zu tun Element komponentenweise. 309 00:18:21,310 --> 00:18:23,610 , Wenn Sie wollen, aber Matrix multiplication-- 310 00:18:23,610 --> 00:18:29,380 so Multiplikation der ersten Reihe Zeiten ersten Spalte der zweiten Matrix ist 311 00:18:29,380 --> 00:18:34,510 und so an-- Sie verwenden würden, Diese Prozent Betrieb. 312 00:18:34,510 --> 00:18:38,110 >> Und t der Matte ist nur eine Betrieb für transponieren. 313 00:18:38,110 --> 00:18:42,590 Also ich sage, nehmen Sie die Transponierung in die Matrix, multipliziert es mit der Matrix 314 00:18:42,590 --> 00:18:43,090 selbst. 315 00:18:43,090 --> 00:18:45,006 Und dann ist es zu gehen zurück zu Ihnen weitere 3 316 00:18:45,006 --> 00:18:50,700 von 3-Matrix zeigt das Produkt, das Sie sich wünschen. 317 00:18:50,700 --> 00:18:53,750 >> Und so war das Matrix. 318 00:18:53,750 --> 00:18:56,020 Hier ist, was ein Datenrahmen bezeichnet. 319 00:18:56,020 --> 00:19:00,780 Ein Datenrahmen Sie so denken kann eine Matrix, aber jede Säule selbst 320 00:19:00,780 --> 00:19:02,990 wird zu einer anderen Art sein. 321 00:19:02,990 --> 00:19:07,320 >> Also, was ist wirklich cool zu Daten Frames ist, dass bei der Datenanalyse selbst, 322 00:19:07,320 --> 00:19:11,260 Sie gehen zu all dies sind heterogener Daten und alle diese wirklich 323 00:19:11,260 --> 00:19:15,640 chaotisch Dinge, wo jede der Säulen selbst können von unterschiedlicher Art sein. 324 00:19:15,640 --> 00:19:21,460 So, hier bin ich zu sagen erstellen Datenrahmen, zu tun Zahlen von 1 bis 3, 325 00:19:21,460 --> 00:19:24,750 und dann haben auch ein Zeichen Vektor. 326 00:19:24,750 --> 00:19:28,470 Also ich kann über Index jeder dieser Säulen 327 00:19:28,470 --> 00:19:30,930 und dann werde ich die Werte selbst zu bekommen. 328 00:19:30,930 --> 00:19:34,370 Und Sie können auch tun, eine Art von Operationen an Daten-Frames. 329 00:19:34,370 --> 00:19:38,040 Und die meisten der Zeit, wenn Sie Dabei Datenanalyse oder eine Art 330 00:19:38,040 --> 00:19:42,042 der Vorverarbeitung, werden Sie sein Arbeiten mit diesen Datenstrukturen 331 00:19:42,042 --> 00:19:44,250 wobei jede Spalte wird um von einem anderen Typ sein. 332 00:19:44,250 --> 00:19:47,880 333 00:19:47,880 --> 00:19:52,970 >> Schließlich, so dass es sich im Wesentlichen nur die vier wesentlichen Gegenstände in R. Liste 334 00:19:52,970 --> 00:19:55,820 wird nur sammeln jede andere Objekte, die Sie wollen. 335 00:19:55,820 --> 00:20:00,130 So wird es diese in eine speichern Variable, die Sie leicht zugreifen können. 336 00:20:00,130 --> 00:20:02,370 >> Also hier, nehme ich eine Liste. 337 00:20:02,370 --> 00:20:04,460 Ich sage Dinge gleich 3 ist. 338 00:20:04,460 --> 00:20:08,060 So werde ich ein Element in haben die Liste, und dies wird als Material, 339 00:20:08,060 --> 00:20:10,570 und es geht um den Wert 3 haben. 340 00:20:10,570 --> 00:20:13,140 >> Ich kann auch eine Matrix. 341 00:20:13,140 --> 00:20:17,970 Das ist also 1 bis 4 und am Ende Reihe gleich 2 ist, so daß eine 2 x 2-Matrix. 342 00:20:17,970 --> 00:20:20,270 Auch in der Liste und es heißt Matte. 343 00:20:20,270 --> 00:20:24,690 moreStuff, eine Zeichenkette, und noch eine weitere Liste in sich. 344 00:20:24,690 --> 00:20:27,710 >> Also das ist eine Liste, die 5 und Bären ist. 345 00:20:27,710 --> 00:20:30,990 So ist es den Wert 5, und es hat hat die Zeichenfolge Bär 346 00:20:30,990 --> 00:20:32,710 und es ist eine Liste in einer Liste. 347 00:20:32,710 --> 00:20:35,965 So können Sie diese haben rekursive Dinge, wo 348 00:20:35,965 --> 00:20:38,230 Sie haben eine another-- Geben Sie in der Art. 349 00:20:38,230 --> 00:20:41,420 So ähnlich, können Sie eine Matrix haben in einer anderen Matrix und so weiter. 350 00:20:41,420 --> 00:20:44,264 Und die Liste ist nur ein guter Weg, der Sammlung und Aggregation 351 00:20:44,264 --> 00:20:45,430 Alle diese verschiedenen Objekten. 352 00:20:45,430 --> 00:20:50,210 353 00:20:50,210 --> 00:20:57,150 >> Und schließlich, hier ist nur für den Fall zu helfen Dies war nur über sehr schnell gegangen. 354 00:20:57,150 --> 00:21:01,350 Also, wenn Sie verwirrt sind über irgendeine Art von Funktion, 355 00:21:01,350 --> 00:21:03,510 Sie können mithilfe dieser Funktion zu tun. 356 00:21:03,510 --> 00:21:07,120 So können Sie helfen Matrix tun können oder ein Fragezeichen-Matrix. 357 00:21:07,120 --> 00:21:11,430 Und Hilfe und das Fragezeichen sind nur für die gleiche Sache Kurzschrift 358 00:21:11,430 --> 00:21:13,040 so dass sie Aliase. 359 00:21:13,040 --> 00:21:16,820 >> lm ist eine Funktion, gerade tut ein lineares Modell. 360 00:21:16,820 --> 00:21:20,340 Aber wenn Sie nur nicht, wie die Arbeiten, können Sie einfach Hilfe lm tun 361 00:21:20,340 --> 00:21:24,610 und gebe Ihnen einige Art von Dokumentation, 362 00:21:24,610 --> 00:21:27,960 sieht irgendwie aus wie ein man-Seite in Unix, wo 363 00:21:27,960 --> 00:21:34,210 Sie eine kurze Beschreibung, was ja, auch das, was die Argumente sind, 364 00:21:34,210 --> 00:21:38,850 was es gibt, und nur Tipps, wie , es zu benutzen, und einige Beispiele als auch. 365 00:21:38,850 --> 00:21:41,680 366 00:21:41,680 --> 00:21:52,890 >> Also lassen Sie mich vor und Show gehen einige Demo von R. mit OK. 367 00:21:52,890 --> 00:21:55,470 Also ging ich über sehr schnell nur die Daten 368 00:21:55,470 --> 00:21:59,440 Strukturen und eine Art von der op-- einige der Operationen. 369 00:21:59,440 --> 00:22:02,960 Hier einige Funktionen. 370 00:22:02,960 --> 00:22:06,750 >> So, hier werde ich einfach um eine Funktion zu definieren. 371 00:22:06,750 --> 00:22:09,970 Also ich bin auch mit Zuweisungsoperator hier, 372 00:22:09,970 --> 00:22:12,610 und ich sage, erklären sie als Funktion. 373 00:22:12,610 --> 00:22:14,140 Und es nimmt den Wert x. 374 00:22:14,140 --> 00:22:18,210 Das ist also jede gewünschte Wert und ich werde x selbst zurück. 375 00:22:18,210 --> 00:22:20,840 Das ist also die Identitätsfunktion. 376 00:22:20,840 --> 00:22:23,670 >> Und was ist cool über diese im Vergleich zu anderen Sprachen 377 00:22:23,670 --> 00:22:26,330 und eine andere Low-Level- Sprachen ist, dass x 378 00:22:26,330 --> 00:22:29,350 können von jedem Typ selbst und es wird diese Art zurück. 379 00:22:29,350 --> 00:22:35,251 So können Sie imagine-- so lassen können mich einfach laufen diese schnell. 380 00:22:35,251 --> 00:22:35,750 Entschuldigung. 381 00:22:35,750 --> 00:22:40,300 >> So eine Sache, ich sollte auch erwähnen, ist, dass dieser Editor verwende ich 382 00:22:40,300 --> 00:22:41,380 heißt rstudio. 383 00:22:41,380 --> 00:22:44,389 Dies ist, was ein IDE genannt. 384 00:22:44,389 --> 00:22:46,180 Und eine Sache, die ist darüber wirklich nett 385 00:22:46,180 --> 00:22:51,500 ist, dass es enthält eine Menge der Dinge, die Sie in der R für sich tun wollen 386 00:22:51,500 --> 00:22:53,180 nur sehr intuitiv. 387 00:22:53,180 --> 00:22:55,550 >> Also hier ist ein Interpreter-Konsole. 388 00:22:55,550 --> 00:23:02,160 So ähnlich, können Sie auch diese Konsole rohen einfach, indem Sie eine Kapital R. 389 00:23:02,160 --> 00:23:05,630 Und genau das Gleiche wie die Konsole. 390 00:23:05,630 --> 00:23:12,210 So kann ich nur tun, ID-Funktion x, x, x. 391 00:23:12,210 --> 00:23:16,130 Und dann- und dann, dass wird gut selber. 392 00:23:16,130 --> 00:23:19,200 393 00:23:19,200 --> 00:23:21,740 >> So rstudio ist groß weil sie die Konsole. 394 00:23:21,740 --> 00:23:25,360 Es hat auch die Dokumente Sie möchten am laufen. 395 00:23:25,360 --> 00:23:28,629 Und dann einige Variablen hat dass Sie in Umgebungen sehen. 396 00:23:28,629 --> 00:23:30,420 Und dann, wenn Sie Grundstücke zu tun, dann 397 00:23:30,420 --> 00:23:33,730 kann nur sehen es hier, im Gegensatz zu die Verwaltung all dieser verschiedenen Fenstern 398 00:23:33,730 --> 00:23:35,940 allein. 399 00:23:35,940 --> 00:23:40,530 >> Ich eigentlich persönlich benutze Vim, aber ich Lust rstudio ist exzellent, nur 400 00:23:40,530 --> 00:23:44,640 für immer eine gute Idee, , wie R. Normalerweise verwenden, 401 00:23:44,640 --> 00:23:47,040 wenn Sie versuchen, lernen einige neue Aufgabe, 402 00:23:47,040 --> 00:23:49,590 Sie wollen nicht zu handhaben zu viele Dinge auf einmal. 403 00:23:49,590 --> 00:23:53,120 So R ist nur ein very-- rstudio ist ein sehr guter Weg des Lernens R 404 00:23:53,120 --> 00:23:56,760 ohne zu behandeln all diese anderen Dinge. 405 00:23:56,760 --> 00:23:58,600 >> Also hier Ich bin mit id hallo. 406 00:23:58,600 --> 00:24:00,090 Dies gibt hallo. 407 00:24:00,090 --> 00:24:01,740 ID 123. 408 00:24:01,740 --> 00:24:04,610 Hier ist ein Vektor von ganzen Zahlen. 409 00:24:04,610 --> 00:24:08,620 So ähnlich, weil Sie nehmen jede eine Art von Wert, 410 00:24:08,620 --> 00:24:16,060 Sie tun können, Rückkehr id x so ist es 1234 und 5 zurückkehrt. 411 00:24:16,060 --> 00:24:22,210 >> Und lassen Sie mich nur zeigen, dass dies ist in der Tat eine ganze Zahl. 412 00:24:22,210 --> 00:24:28,800 Und ebenso, wenn Sie Klasse zu tun id x, es geht um ganze Zahl sein. 413 00:24:28,800 --> 00:24:34,170 Und dann können Sie auch Vergleichen Sie die beiden und es ist wahr. 414 00:24:34,170 --> 00:24:38,350 Also werde ich prüfen, ob der ID x gleich equals x und Bekanntmachung 415 00:24:38,350 --> 00:24:39,760 dass es Ihnen zwei Trues. 416 00:24:39,760 --> 00:24:44,280 Das ist also nicht, dass es die beiden Objekte identisch, 417 00:24:44,280 --> 00:24:46,845 aber jeder der Einträge in die Vektoren identisch. 418 00:24:46,845 --> 00:24:50,000 419 00:24:50,000 --> 00:24:52,090 >> Hier ist bounded.compare. 420 00:24:52,090 --> 00:24:58,470 Also das ist etwas komplizierter, in, dass es eine, wenn Bedingung und anderes 421 00:24:58,470 --> 00:25:00,960 und dann dauert es zwei Argumente zu einem Zeitpunkt. 422 00:25:00,960 --> 00:25:02,640 SOx beliebigen Typs. 423 00:25:02,640 --> 00:25:06,280 Und ich sage das zweite Argument ist ein. 424 00:25:06,280 --> 00:25:08,380 Das kann alles als gut. 425 00:25:08,380 --> 00:25:12,490 Aber standardmäßig, es wird zu ergreifen, 5, wenn Sie nichts angeben. 426 00:25:12,490 --> 00:25:16,730 >> So, hier werde ich sagen, wenn x größer als a. 427 00:25:16,730 --> 00:25:19,220 Also, wenn ich nicht angeben, ein, es sagt, wenn x größer als 5 ist, 428 00:25:19,220 --> 00:25:20,470 dann werde ich TRUE zurück. 429 00:25:20,470 --> 00:25:23,230 sonst werde ich FALSE zurückgeben. 430 00:25:23,230 --> 00:25:24,870 Also lassen Sie mich gehen Sie vor und definieren Sie diese. 431 00:25:24,870 --> 00:25:30,600 432 00:25:30,600 --> 00:25:34,550 >> Und jetzt bin ich zu gehen laufen bounded.compare 3. 433 00:25:34,550 --> 00:25:39,150 So ist es, so wurde mit 3 weniger than-- 3 größer als 5. 434 00:25:39,150 --> 00:25:41,830 Nein, es ist nicht so falsch. 435 00:25:41,830 --> 00:25:46,550 >> Und bounded.compare 3 und ich werde um sie zu vergleichen mit einem gleich 2. 436 00:25:46,550 --> 00:25:50,700 So, jetzt bin ich ja zu sagen, jetzt habe ich möchten ein etwas anderes sein. 437 00:25:50,700 --> 00:25:52,750 So werde ich ein Mitspracherecht, sollten Sie 2 sein. 438 00:25:52,750 --> 00:25:56,640 >> Ich kann entweder zu tun, diese Art von Notation oder ich sagen, a gleich 2. 439 00:25:56,640 --> 00:25:58,720 Dies ist ein lesbarer , dass, wenn Sie 440 00:25:58,720 --> 00:26:01,450 Mit Blick auf diese wirklich komplizierte Funktionen, 441 00:26:01,450 --> 00:26:08,110 nehmen mehrere arguments-- und dies kann Dutzende oftentimes-- nur sagen, 442 00:26:08,110 --> 00:26:11,140 a gleich 2 ist besser lesbar für Sie, so dass später in der Zukunft 443 00:26:11,140 --> 00:26:13,020 Sie wissen, was du tust. 444 00:26:13,020 --> 00:26:17,120 >> Also in diesem Fall, ich bin Sprichwort ist 3 größer als 2. 445 00:26:17,120 --> 00:26:18,270 Ja, es ist. 446 00:26:18,270 --> 00:26:22,350 Und in ähnlicher Weise kann ich einfach entfernen dies und sagen, das ist 3 größer als 2 447 00:26:22,350 --> 00:26:23,440 wobei a gleich 2 ist. 448 00:26:23,440 --> 00:26:26,230 Und das ist auch wahr. 449 00:26:26,230 --> 00:26:26,730 Ja? 450 00:26:26,730 --> 00:26:29,670 >> ZIELGRUPPE: Sind Sie Ausführung Zeile für Zeile? 451 00:26:29,670 --> 00:26:30,670 >> Dustin TRAN: Ja, ich bin. 452 00:26:30,670 --> 00:26:33,900 Also, was ich hier mache ist Einnahme dieses Textes document-- 453 00:26:33,900 --> 00:26:39,825 und was ist toll an rstudio ist, dass Ich kann nur laufen ein short-- ein Tastenkürzel. 454 00:26:39,825 --> 00:26:41,820 So mache ich Strg-Enter. 455 00:26:41,820 --> 00:26:44,850 >> Und dann nehme ich das Zeile im Textdokument 456 00:26:44,850 --> 00:26:46,710 und dann setzen in der Konsole. 457 00:26:46,710 --> 00:26:50,800 So, hier bin ich sagen, bounded.compare und ich tue, Strg-X. 458 00:26:50,800 --> 00:26:52,540 So kann ich einfach hier laufen auch. 459 00:26:52,540 --> 00:26:54,920 Und dann, dass ich das übernehmen Linie und dann legen Sie sie hier. 460 00:26:54,920 --> 00:26:57,900 Und dann ähnlich, kann ich hier ausführen. 461 00:26:57,900 --> 00:27:04,630 Und dann wird es einfach weiter definieren die Linien in die Konsole so. 462 00:27:04,630 --> 00:27:10,690 >> Und wenn Sie auch feststellen, die geschweiften Klammern sind es genau wie in C-Syntax. 463 00:27:10,690 --> 00:27:13,910 x-- wenn der Zustand, wenn auch werde Klammern verwenden und dann 464 00:27:13,910 --> 00:27:15,350 Sie anderes verwenden können. 465 00:27:15,350 --> 00:27:17,496 Ein weiterer ist else if. 466 00:27:17,496 --> 00:27:21,440 So, das wird sein x gleich gleich a, zum Beispiel. 467 00:27:21,440 --> 00:27:24,190 468 00:27:24,190 --> 00:27:26,350 Und dann bin ich zu gehen zurück hier etwas. 469 00:27:26,350 --> 00:27:29,490 >> Beachten Sie, dass es zwei verschiedene Dinge, die hier vor sich geht. 470 00:27:29,490 --> 00:27:34,360 Einer ist, dass ich hier bin Angabe zurück den Wert TRUE. 471 00:27:34,360 --> 00:27:35,950 Hier Ich sage nur, x. 472 00:27:35,950 --> 00:27:39,970 So R wird in der Regel standardmäßig nehmen Sie die letzte arguments-- 473 00:27:39,970 --> 00:27:43,510 oder nehmen Sie die letzte Zeile des Codes, und das sein wird, was es zurück. 474 00:27:43,510 --> 00:27:46,920 So, hier ist das gleiche etwas wie tun Rückkehr x. 475 00:27:46,920 --> 00:27:49,450 476 00:27:49,450 --> 00:27:50,540 >> Und nur um Ihnen zu zeigen. 477 00:27:50,540 --> 00:27:54,000 478 00:27:54,000 --> 00:27:57,052 Und dann wird es einfach so zu arbeiten. 479 00:27:57,052 --> 00:27:58,260 Lassen Sie mich mit diesem weiter. 480 00:27:58,260 --> 00:28:00,630 >> So else if. 481 00:28:00,630 --> 00:28:04,060 Und wirklich, ich zurückkehren können alles, was ich möchte. 482 00:28:04,060 --> 00:28:06,680 Also ich weiß nicht einmal zu haben, Rückkehr Booleans die ganze Zeit, 483 00:28:06,680 --> 00:28:08,410 Ich kann einfach etwas anderes zurück. 484 00:28:08,410 --> 00:28:10,670 So kann ich Rückkehr Bären zu tun. 485 00:28:10,670 --> 00:28:12,989 >> Also, wenn x gleich ist gleich a, es geht um Bären zurück. 486 00:28:12,989 --> 00:28:14,530 Ansonsten, es wird TRUE zurück. 487 00:28:14,530 --> 00:28:19,310 Ich kann auch einen Vektor oder wirklich etwas. 488 00:28:19,310 --> 00:28:22,210 >> Und normalerweise statisch typisierte Sprachen, 489 00:28:22,210 --> 00:28:23,840 Sie müssten eine Art angeben. 490 00:28:23,840 --> 00:28:25,750 Und beachten Sie, dass es nur alles sein. 491 00:28:25,750 --> 00:28:32,400 Und R ist intelligent genug, dass es wird nur das tun und es wird gut funktionieren. 492 00:28:32,400 --> 00:28:33,620 >> Also lassen Sie mich dies zu definieren. 493 00:28:33,620 --> 00:28:39,460 494 00:28:39,460 --> 00:28:41,230 Unexpected-- oh sorry. 495 00:28:41,230 --> 00:28:44,336 Es sollte eine geschweifte Klammer hier zu sein. 496 00:28:44,336 --> 00:28:44,836 OK. 497 00:28:44,836 --> 00:28:45,336 Kühle. 498 00:28:45,336 --> 00:28:52,580 499 00:28:52,580 --> 00:28:54,530 In Ordnung. 500 00:28:54,530 --> 00:28:58,250 So, jetzt zu vergleichen 3 lassen und gleich 3 ist. 501 00:28:58,250 --> 00:29:01,860 So ist es return-- sollten yeah-- den Wert Bär. 502 00:29:01,860 --> 00:29:06,740 >> So, jetzt eine allgemeinere ist, wie was ist mit anderen Datenstrukturen. 503 00:29:06,740 --> 00:29:09,110 So haben Sie diese Funktion. 504 00:29:09,110 --> 00:29:15,360 Das wird auf jede Art zu arbeiten der Wert wie 3 oder einer numerischen, 505 00:29:15,360 --> 00:29:17,500 mit anderen Worten, Doppel. 506 00:29:17,500 --> 00:29:19,330 >> Aber was ist so etwas wie ein Vektor. 507 00:29:19,330 --> 00:29:27,750 Was passiert also, wenn man so do-- Ich bin werde val, sagen wir, 4 bis 6 zuordnen. 508 00:29:27,750 --> 00:29:31,640 Also, wenn ich wieder diese, dieses ist ein Vektor von 4, 5, 6. 509 00:29:31,640 --> 00:29:34,935 >> Nun wollen wir sehen, was passiert, wenn ich bounded.compare val. 510 00:29:34,935 --> 00:29:37,680 511 00:29:37,680 --> 00:29:42,450 So, das wird Ihnen 15 1251. 512 00:29:42,450 --> 00:29:46,440 Also mit anderen Worten, es ist zu sagen Wenn Sie in diesem Zustand sehen 513 00:29:46,440 --> 00:29:50,040 so heißt es x kleiner ist als ein oder so etwas. 514 00:29:50,040 --> 00:29:51,880 Das ist also etwas verwirrend, weil jetzt 515 00:29:51,880 --> 00:29:53,379 Sie wissen einfach nicht, was los ist. 516 00:29:53,379 --> 00:29:58,690 Also ich denke, eine Sache, die wirklich ist gut über nur versucht, Debug- 517 00:29:58,690 --> 00:30:04,600 ist, dass man nur tun, val größer als ein und sehen, was da passiert. 518 00:30:04,600 --> 00:30:09,720 >> So val-- ein standardmäßig 5 so lassen Sie uns einfach Do Val größer als 5. 519 00:30:09,720 --> 00:30:14,280 Das ist also ein Vektor FALSE FALSE TRUE. 520 00:30:14,280 --> 00:30:17,206 So, jetzt, wenn Sie suchen, dies, es wird wollte er sagen: 521 00:30:17,206 --> 00:30:20,080 und es wird Ihnen diese geben ist ein Vektor von FALSE FALSE TRUE. 522 00:30:20,080 --> 00:30:23,450 >> Also, wenn Sie diese in R, R geben hat keine Ahnung, was du tust. 523 00:30:23,450 --> 00:30:26,650 Weil es ein einziges erwartet Wert, der ein Boolean ist, und jetzt 524 00:30:26,650 --> 00:30:29,420 du gibst es einen Vektor von Booleans. 525 00:30:29,420 --> 00:30:31,970 So standardmäßig ist R nur sagen, was zum Teufel, 526 00:30:31,970 --> 00:30:35,440 Ich gehe davon aus, dass Sie werde das erste Element hier zu nehmen. 527 00:30:35,440 --> 00:30:38,320 Also werde ich sagen- Ich werde anzunehmen, dass dies FALSE. 528 00:30:38,320 --> 00:30:40,890 Es wird also zu sagen, nein, das ist nicht richtig. 529 00:30:40,890 --> 00:30:45,246 >> Ebenso ist es zu gehen ist val gleich gleich ein. 530 00:30:45,246 --> 00:30:47,244 Nein, leider nicht 5. 531 00:30:47,244 --> 00:30:48,910 Und es ist auch gehen, falsch zu sein als gut. 532 00:30:48,910 --> 00:30:52,410 Es wird also, nein zu sagen, Es ist nicht wahr und so ist es 533 00:30:52,410 --> 00:30:53,680 werde diese letzte zurückzukehren. 534 00:30:53,680 --> 00:30:56,420 535 00:30:56,420 --> 00:31:01,360 >> Das ist also entweder eine gute Sache oder eine schlechte Sache, je nachdem, wie Sie sie sehen können. 536 00:31:01,360 --> 00:31:05,104 Denn wenn man schaffen diese Funktionen, 537 00:31:05,104 --> 00:31:06,770 Sie nicht wirklich wissen, was los ist. 538 00:31:06,770 --> 00:31:10,210 So manchmal würden Sie eine Fehler möchten, oder vielleicht wollen Sie nur eine Warnung. 539 00:31:10,210 --> 00:31:12,160 In diesem Fall wird R nicht. 540 00:31:12,160 --> 00:31:14,300 So ist es wirklich bis zu Sie weg von der Basis, was 541 00:31:14,300 --> 00:31:17,310 Sie denken, die Sprache sollte in diesem Fall zu tun 542 00:31:17,310 --> 00:31:22,920 wenn Sie in einem Vektor von Booleans geben wenn Sie tun, wenn ein Zustand. 543 00:31:22,920 --> 00:31:31,733 >> Also lassen Sie uns sagen, dass Sie das Original hatte eine mit, wenn sonst TRUE zurück und du bist 544 00:31:31,733 --> 00:31:34,190 werde FALSE zurückgeben. 545 00:31:34,190 --> 00:31:39,300 So ein Weg der Abstraktion das ist zu sagen, ich 546 00:31:39,300 --> 00:31:41,530 brauchen noch nicht einmal diese bedingte Sache. 547 00:31:41,530 --> 00:31:47,220 Eine andere Sache, die ich tun kann, ist nur Zurückführen der Werte selbst. 548 00:31:47,220 --> 00:31:53,240 Also, wenn Sie feststellen, wenn Sie do val größer als 5, 549 00:31:53,240 --> 00:31:56,350 das wird ein Rück Vektor FALSE FALSE TRUE. 550 00:31:56,350 --> 00:31:58,850 >> Vielleicht ist das, was Sie wollen für bounded.compare. 551 00:31:58,850 --> 00:32:02,940 Sie möchten einen Vektor von Booleans zurück wo jeder der Werte vergleicht 552 00:32:02,940 --> 00:32:04,190 um sich. 553 00:32:04,190 --> 00:32:11,165 So können Sie einfach bounded.compare Funktion x, a gleich 5 ist. 554 00:32:11,165 --> 00:32:13,322 555 00:32:13,322 --> 00:32:15,363 Und anstatt das zu tun dies, wenn sonst Zustand, 556 00:32:15,363 --> 00:32:21,430 Ich werde einfach zurück x größer als 5 ist. 557 00:32:21,430 --> 00:32:23,620 Also, wenn es wahr ist, dann es wird TRUE zurück. 558 00:32:23,620 --> 00:32:26,830 Und dann, wenn es nicht, es ist werde FALSE zurückgeben. 559 00:32:26,830 --> 00:32:30,880 >> Und das wird für die Arbeit jeder dieser Strukturen. 560 00:32:30,880 --> 00:32:41,450 So kann ich c 1 6 oder 9 bounded.compare und dann werde ich sagen, ein gleich 6, 561 00:32:41,450 --> 00:32:42,799 beispielsweise. 562 00:32:42,799 --> 00:32:44,840 Und dann ist es zu gehen geben Sie die richtige Boolean 563 00:32:44,840 --> 00:32:48,240 Vektor, die Sie entwerfen. 564 00:32:48,240 --> 00:32:50,660 >> Also das sind nur Funktionen und jetzt lassen Sie mich nur 565 00:32:50,660 --> 00:32:54,980 zeigen Ihnen einige interaktive Visuals. 566 00:32:54,980 --> 00:32:59,700 Ich glaube nicht, habe ich eigentlich Wi-Fi hier so lassen Sie mich einfach weitermachen 567 00:32:59,700 --> 00:33:01,970 und lassen Sie diesen ein, denke ich. 568 00:33:01,970 --> 00:33:05,260 >> Aber eine Sache, die ist cool ist aber, dass, wenn Sie nur 569 00:33:05,260 --> 00:33:09,600 will eine Reihe von Test verschiedene Datenbefehle, 570 00:33:09,600 --> 00:33:13,320 gibt es eine Reihe von verschiedenen Datensätzen die bereits in R. vorgespannt sind 571 00:33:13,320 --> 00:33:15,770 Eines von ihnen ist namens Iris Datensatz. 572 00:33:15,770 --> 00:33:18,910 Dies ist einer der am besten bekannten diejenigen für maschinelles Lernen. 573 00:33:18,910 --> 00:33:23,350 Sie werden in der Regel nur tun, eine Art von Testfälle zu sehen, ob Ihr Code ausgeführt wird. 574 00:33:23,350 --> 00:33:27,520 Also lasst uns einfach überprüfen, was Iris ist. 575 00:33:27,520 --> 00:33:33,130 >> Also das, was vor sich geht um einen Datenrahmen sein. 576 00:33:33,130 --> 00:33:36,000 Und es ist eine Art lange, weil Ich habe gerade heraus Iris gedruckt. 577 00:33:36,000 --> 00:33:38,810 Es ist Ausdruck der ganzen Sache. 578 00:33:38,810 --> 00:33:42,830 So hat es alle diese verschiedenen Namen. 579 00:33:42,830 --> 00:33:45,505 So Iris ist eine Sammlung von verschiedenen Blumen. 580 00:33:45,505 --> 00:33:48,830 In diesem Fall ist es zu sagen man die Arten davon, 581 00:33:48,830 --> 00:33:54,760 Alle diese unterschiedlichen Breiten und Länge der Kelchblatt und dem Blütenblatt. 582 00:33:54,760 --> 00:33:58,880 >> Und so in der Regel, wenn Sie Iris ausdrucken möchten, 583 00:33:58,880 --> 00:34:03,680 zum Beispiel, Sie wollen nicht, es zu haben All dies tun, denn das übernehmen kann 584 00:34:03,680 --> 00:34:05,190 Ihre gesamte Konsole. 585 00:34:05,190 --> 00:34:09,280 So eine Sache, die wirklich ist schön ist das Haupt-Funktion. 586 00:34:09,280 --> 00:34:12,929 Also, wenn Sie gerade tun, Kopf Iris, dies wird Ihnen 587 00:34:12,929 --> 00:34:17,389 die ersten fünf Zeilen oder sechs, denke ich. 588 00:34:17,389 --> 00:34:19,909 Und dann auch, Sie kann nur angeben. 589 00:34:19,909 --> 00:34:22,914 So 20-- dies wird Sie die ersten 20 Zeilen. 590 00:34:22,914 --> 00:34:24,830 Und ich war eigentlich Art der überrascht, dass diese 591 00:34:24,830 --> 00:34:28,770 gab mir sechs so lassen Sie mich fortfahren und überprüfen iris-- oder Kopf, sorry. 592 00:34:28,770 --> 00:34:31,699 593 00:34:31,699 --> 00:34:34,960 Und hier wird es geben, Sie in der Dokumentation 594 00:34:34,960 --> 00:34:37,960 von dem, was der Wert Kopf tut. 595 00:34:37,960 --> 00:34:40,839 So die erste zurückgegeben oder zuletzt eines Objekts. 596 00:34:40,839 --> 00:34:42,630 Und dann bin ich zu gehen Blick auf die Standardwerte. 597 00:34:42,630 --> 00:34:47,340 Und dann sagt er das Standard Verfahren Kopf x und n gleich 6L. 598 00:34:47,340 --> 00:34:50,620 Also das gibt die ersten sechs Elemente. 599 00:34:50,620 --> 00:34:55,050 Und ebenso, wenn Sie hier bemerken, I nicht zu n angeben gleich 6. 600 00:34:55,050 --> 00:34:56,840 Standardmäßig verwendet es sechs, glaube ich. 601 00:34:56,840 --> 00:35:00,130 Und dann, wenn ich eine gewisse angeben Wert, dann kann ich das auch sehen. 602 00:35:00,130 --> 00:35:02,970 603 00:35:02,970 --> 00:35:10,592 >> Das ist also ein paar einfache Befehle und hier ist eine andere, die just-- gut ist, 604 00:35:10,592 --> 00:35:12,550 Ich can-- dies tatsächlich ein wenig komplexer, 605 00:35:12,550 --> 00:35:17,130 aber das wird einfach die Klasse jeder Spalte des Irisdatei. 606 00:35:17,130 --> 00:35:20,910 Also das wird Ihnen zeigen, was jeder von ihnen Säulen sind hinsichtlich ihrer Typen. 607 00:35:20,910 --> 00:35:23,665 So Kelch Länge numerisch ist, Kelchblattbreite numerisch ist. 608 00:35:23,665 --> 00:35:26,540 Alle diese Werte sind nur numerische denn Sie können aus diesen Daten sagen 609 00:35:26,540 --> 00:35:29,440 strukturieren sind alle werden numerisch. 610 00:35:29,440 --> 00:35:34,310 >> Und die Spalte Species wird ein Faktor sein. 611 00:35:34,310 --> 00:35:37,270 So normal, dass man denken würde das ist wie eine Zeichenkette. 612 00:35:37,270 --> 00:35:48,830 Aber wenn Sie nur tun irisSpecies, und dann werde ich Kopf 5 zu tun, 613 00:35:48,830 --> 00:35:51,820 und das wird zu drucken aus den ersten fünf Werten. 614 00:35:51,820 --> 00:35:54,150 >> Und dann bemerken diese Ebenen. 615 00:35:54,150 --> 00:35:58,870 Also das ist saying-- dies R Weg der mit kategorialen Variablen. 616 00:35:58,870 --> 00:36:03,765 Also anstatt nur mit Zeichenketten, 617 00:36:03,765 --> 00:36:06,740 es Stufen angibt, hat was diese Dinge sind. 618 00:36:06,740 --> 00:36:12,450 >> Also sagen wir mal irisSpecies 1. 619 00:36:12,450 --> 00:36:17,690 Also, was Sie hier tun möchten, ist, ich bin Untergruppen zu dieser Spezies Spalte. 620 00:36:17,690 --> 00:36:21,480 Also das nimmt der Arten Spalte und dann 621 00:36:21,480 --> 00:36:23,820 es Indizes, um das erste Element zu erhalten. 622 00:36:23,820 --> 00:36:27,140 So sollte diese Ihnen setosa. 623 00:36:27,140 --> 00:36:28,710 Und es gibt Ihnen auch hier Ebenen. 624 00:36:28,710 --> 00:36:32,812 >> So können Sie auch vergleichen können dies dem Zeichen setosa 625 00:36:32,812 --> 00:36:34,645 und das wird nicht TRUE, weil ein 626 00:36:34,645 --> 00:36:37,940 ist von einem anderen Typ als der andere. 627 00:36:37,940 --> 00:36:40,590 Oder ich denke, es ist wahr, weil R ist intelligenter als das. 628 00:36:40,590 --> 00:36:45,420 Und in diesem und dann sieht sagt, vielleicht ist das, was Sie wollen. 629 00:36:45,420 --> 00:36:51,860 Also, es wird das Zeichen sagen String setosa ist der gleiche wie dieser. 630 00:36:51,860 --> 00:37:01,290 Und dann ähnlich, können Sie auch einfach an diese wie so weiter. 631 00:37:01,290 --> 00:37:05,580 >> Also das ist nur eine Art von Kurzbefehle des Datensatzes. 632 00:37:05,580 --> 00:37:08,030 Also hier sind einige Datenexploration. 633 00:37:08,030 --> 00:37:11,360 Das ist also ein wenig mehr mit der Datenanalyse beteiligt. 634 00:37:11,360 --> 00:37:18,340 Und dies wird von einigen genommen Bootcamp in R für in Berkeley. 635 00:37:18,340 --> 00:37:20,790 >> So Bibliothek ausländische. 636 00:37:20,790 --> 00:37:24,880 Also werde ich in einem Laden Bibliothek, Außen heißt. 637 00:37:24,880 --> 00:37:32,460 So, das wird mir read.dta so an, dass ich dieses Datensatzes. 638 00:37:32,460 --> 00:37:39,000 Dieses wird in die gespeicherte aktuelle Arbeitsverzeichnis meiner Konsole. 639 00:37:39,000 --> 00:37:42,190 Also lasst uns einfach sehen, was das Arbeitsverzeichnis. 640 00:37:42,190 --> 00:37:44,620 >> Also hier ist mein Arbeitsverzeichnis. 641 00:37:44,620 --> 00:37:50,040 Und lesen Sie Punktdaten, diese was ist diese Datei zu sagen 642 00:37:50,040 --> 00:37:54,650 wird im Datenordner befinden Diese aktuellen Arbeitsverzeichnis. 643 00:37:54,650 --> 00:38:00,520 Und read.dta dies nicht ein Standardbefehl. 644 00:38:00,520 --> 00:38:02,760 Ich glaube, ich lud sie in bereits. 645 00:38:02,760 --> 00:38:04,750 IEI nahm ich bereits geladen dies. 646 00:38:04,750 --> 00:38:08,115 >> Aber so read.dta wird nicht um eine Standard-Befehl sein. 647 00:38:08,115 --> 00:38:11,550 Und das ist, warum Sie gehen zu müssen, sind in dieser Bibliothek zu laden package-- 648 00:38:11,550 --> 00:38:14,500 Dieses Paket namens ausländische. 649 00:38:14,500 --> 00:38:16,690 Und wenn Sie nicht haben, das Paket, ich glaube, 650 00:38:16,690 --> 00:38:19,180 ausländischen gehört zu den integrierten diejenigen. 651 00:38:19,180 --> 00:38:31,150 Ansonsten können Sie auch tun install.packages 652 00:38:31,150 --> 00:38:33,180 und dies wird das Paket zu installieren. 653 00:38:33,180 --> 00:38:36,878 Und dies wird Ihnen R. Äh, nein. 654 00:38:36,878 --> 00:38:39,830 655 00:38:39,830 --> 00:38:43,140 Und dann werde ich einfach aufhören dies, weil ich es schon. 656 00:38:43,140 --> 00:38:46,920 >> Aber was ist wirklich nett zu R ist, dass der Paketverwaltung 657 00:38:46,920 --> 00:38:48,510 System ist sehr elegant. 658 00:38:48,510 --> 00:38:52,470 Denn es wird alles zu speichern wirklich sehr schön für Sie. 659 00:38:52,470 --> 00:38:59,780 Also in diesem Fall, es geht um zu speichern es, glaube ich, diese Bibliothek hier. 660 00:38:59,780 --> 00:39:02,390 >> Also immer wenn Sie wollen, Installieren neuer Pakete, 661 00:39:02,390 --> 00:39:04,980 es ist nur so einfach wie Dabei install.packages 662 00:39:04,980 --> 00:39:07,500 und R werden alle verwalten die Pakete für Sie. 663 00:39:07,500 --> 00:39:12,900 So müssen Sie nicht haben, etwas zu tun, in Python, wo Sie externe Paket haben 664 00:39:12,900 --> 00:39:15,330 Manager wie Papier Anaconda, wo Sie sind 665 00:39:15,330 --> 00:39:18,310 doing-- Sie die Installation Pakete außerhalb von Python 666 00:39:18,310 --> 00:39:20,940 und dann versuchen, sie selbst auszuführen. 667 00:39:20,940 --> 00:39:22,210 Also das ist wirklich schön so. 668 00:39:22,210 --> 00:39:25,590 >> Und install.packages erfordert Internet. 669 00:39:25,590 --> 00:39:31,950 Es dauert es von einem Server und das Repository, 670 00:39:31,950 --> 00:39:33,960 sammelt alle Pakete wird als CRAN. 671 00:39:33,960 --> 00:39:40,690 Und Sie können die Art Spiegel angeben Sie die Pakete herunterladen möchten. 672 00:39:40,690 --> 00:39:43,420 >> Also bin ich hier der Einnahme dieses Datensatzes. 673 00:39:43,420 --> 00:39:46,240 Ich lese es in der Verwendung dieser Funktion. 674 00:39:46,240 --> 00:39:49,360 Also lassen Sie mich gehen Sie vor und tun. 675 00:39:49,360 --> 00:39:52,900 >> Nehmen wir also an, dass Sie dieses Datensatzes haben 676 00:39:52,900 --> 00:39:55,550 und Sie unbedingt keine Ahnung, was es ist. 677 00:39:55,550 --> 00:39:58,560 Und das tatsächlich kommt ziemlich oft in der Branche 678 00:39:58,560 --> 00:40:00,910 wo Sie nur noch diese Tonnen und Tonnen von messy Dinge 679 00:40:00,910 --> 00:40:02,890 und sie sind unglaublich unbeschrifteten. 680 00:40:02,890 --> 00:40:06,380 Also hier habe ich diese Datensatz und ich weiß nicht, 681 00:40:06,380 --> 00:40:08,400 was es ist, so bin ich nur zeigt, check it out. 682 00:40:08,400 --> 00:40:10,620 >> Also werde ich den Kopf zuerst. 683 00:40:10,620 --> 00:40:14,190 So überprüfe ich den ersten sechs Spalten, was dieses Datensatzes ist. 684 00:40:14,190 --> 00:40:21,730 Das ist also Staat, pres04 und dann alle diese andere Art von Spalten. 685 00:40:21,730 --> 00:40:25,612 Und was ist interessant Hier, glaube ich, ist, dass man 686 00:40:25,612 --> 00:40:27,945 würde davon ausgehen, dass diese aussieht wie eine Art Wahl. 687 00:40:27,945 --> 00:40:30,482 688 00:40:30,482 --> 00:40:32,190 Und ich denke, gerade aus Blick auf die Datei 689 00:40:32,190 --> 00:40:41,070 Name Dies ist eine Art von Sammlung von Daten über Kandidaten oder Wähler 690 00:40:41,070 --> 00:40:44,920 die für bestimmte Präsidenten gewählt oder Präsidenten-Kandidaten 691 00:40:44,920 --> 00:40:46,550 für die Wahl 2004. 692 00:40:46,550 --> 00:40:52,920 >> Hier ist also Werte 1, 2 so eine Art der Speicherung 693 00:40:52,920 --> 00:40:56,540 die Präsidenten-Kandidaten sind ihre Namen. 694 00:40:56,540 --> 00:40:59,780 In diesem Fall sieht es so aus sie sind nur ganzzahlige Werte. 695 00:40:59,780 --> 00:41:04,030 So 2004, Bush war es gegen Kerry, glaube ich. 696 00:41:04,030 --> 00:41:09,010 Und nun, sagen wir, Sie wissen einfach nicht, ob 1 entspricht Bush oder 2 697 00:41:09,010 --> 00:41:11,703 entspricht oder Kerry und so weiter und so fort, oder? 698 00:41:11,703 --> 00:41:15,860 >> Und das ist, nur um mich, ein recht häufiges Problem. 699 00:41:15,860 --> 00:41:18,230 So was kann man in diesem Fall tun? 700 00:41:18,230 --> 00:41:20,000 Lassen Sie uns also lassen Sie diese Dinge. 701 00:41:20,000 --> 00:41:22,790 >> Zustand, ich gehe davon aus dieser kommt aus verschiedenen Staaten. 702 00:41:22,790 --> 00:41:25,100 PartyID, Einkommen. 703 00:41:25,100 --> 00:41:27,710 Schauen wir uns PartyID. 704 00:41:27,710 --> 00:41:32,800 Also vielleicht eine Sache, die Sie tun können Blick auf jede der Beobachtungen 705 00:41:32,800 --> 00:41:36,250 dass eine PartyID der Republikaner haben oder Demokrat oder so etwas. 706 00:41:36,250 --> 00:41:38,170 Also lasst uns einfach zu welchem ​​PartyID ist zu suchen. 707 00:41:38,170 --> 00:41:41,946 >> Also werde ich zu nehmen dat, und dann werde ich 708 00:41:41,946 --> 00:41:47,960 diese Dollarzeichen zu tun Betreiber, die ich zuvor nicht 709 00:41:47,960 --> 00:41:50,770 und dies wird zu gehen Teilmenge dieser Spalte. 710 00:41:50,770 --> 00:41:57,760 Und dann werde ich diese in den Kopf 20, nur um zu sehen, wie das aussieht. 711 00:41:57,760 --> 00:42:00,170 >> Also das ist nur ein Haufen von NA. 712 00:42:00,170 --> 00:42:02,800 Also mit anderen Worten, Sie haben fehlende Daten über diese Jungs. 713 00:42:02,800 --> 00:42:08,100 Aber Sie auch feststellen, diese dat PartyID ist ein Faktor, 714 00:42:08,100 --> 00:42:10,030 so gibt Ihnen verschiedene Kategorien. 715 00:42:10,030 --> 00:42:14,170 Also mit anderen Worten, kann PartyID nehmen Demokrat, Republikaner, Unabhängige, 716 00:42:14,170 --> 00:42:16,640 oder etwas anderes. 717 00:42:16,640 --> 00:42:23,940 >> Also lassen Sie uns fortfahren und lassen Sie uns zu sehen, welcher dieser ist-- oh, OK. 718 00:42:23,940 --> 00:42:28,480 Also werde ich der Teilmenge um PartyID und dann 719 00:42:28,480 --> 00:42:32,780 schauen, welche diejenigen sind Demokrat, zum Beispiel. 720 00:42:32,780 --> 00:42:37,150 Das wird Ihnen ein Boolean, eine riesige Boolean von WAHR und FALSCH. 721 00:42:37,150 --> 00:42:41,630 >> Und nun, sagen wir, ich möchte auf diese Jungs Teilmenge. 722 00:42:41,630 --> 00:42:47,260 Also das wird mein dat nehmen und Untergruppe zu welcher Beobachtungen 723 00:42:47,260 --> 00:42:48,910 haben PartyID Gleichen gleich Demokrat. 724 00:42:48,910 --> 00:42:52,830 725 00:42:52,830 --> 00:42:55,180 Und das ist ziemlich lang, weil es gibt so viele von ihnen. 726 00:42:55,180 --> 00:42:59,060 So, jetzt werde ich dies in 20 leiten. 727 00:42:59,060 --> 00:43:05,690 728 00:43:05,690 --> 00:43:11,270 >> Und wie Sie feststellen, gleich equals ist, dass Sie interessante 729 00:43:11,270 --> 00:43:13,250 bereits-- Sie auch einschließlich der nationalen Agenturen. 730 00:43:13,250 --> 00:43:19,010 Also in diesem Fall, können Sie immer noch nicht bekommen kann alle Informationen, denn jetzt haben Sie NA 731 00:43:19,010 --> 00:43:22,650 und Sie wollen einfach nur, um zu sehen, welche der Beobachtung entsprechen Demokrat 732 00:43:22,650 --> 00:43:24,670 und nicht diese fehlenden Werte selbst. 733 00:43:24,670 --> 00:43:27,680 Wie würden Sie diese NA loswerden? 734 00:43:27,680 --> 00:43:36,410 >> So, hier bin ich nur mit Hilfe der Aufwärts-Taste auf meiner Cursor und dann sagen, bewegen. 735 00:43:36,410 --> 00:43:39,778 Und hier werde ich einfach um is.na datpartyid sagen. 736 00:43:39,778 --> 00:43:48,970 737 00:43:48,970 --> 00:43:52,720 Also das und und nehmen zwei Boolean Vektoren 738 00:43:52,720 --> 00:43:57,160 und sagen, es geht um sein TRUE und FALSE zum Beispiel. 739 00:43:57,160 --> 00:43:59,190 Also, es wird diese komponentenweise zu tun. 740 00:43:59,190 --> 00:44:02,910 So, hier bin ich da nehmen der Datenrahmen, der Teilmenge 741 00:44:02,910 --> 00:44:10,170 auf diejenigen, die Democrat entsprechen, und nehmen Sie einen von ihnen, die nicht NA. 742 00:44:10,170 --> 00:44:13,540 >> Also das sollte will-- Ihnen etwas. 743 00:44:13,540 --> 00:44:16,540 744 00:44:16,540 --> 00:44:17,600 Mal sehen, is.na. 745 00:44:17,600 --> 00:44:24,670 746 00:44:24,670 --> 00:44:27,690 Lassen Sie uns versuchen is.na datpartyid. 747 00:44:27,690 --> 00:44:36,290 748 00:44:36,290 --> 00:44:45,290 Und das sollte geben Sie-- sorry-- nur einen booleschen Vektor. 749 00:44:45,290 --> 00:44:49,260 Und dann, weil es so lange, Ich werde zu 20 Teilmenge. 750 00:44:49,260 --> 00:44:49,760 OK. 751 00:44:49,760 --> 00:44:51,570 So, das sollte funktionieren. 752 00:44:51,570 --> 00:44:54,700 >> Und das wird man auch Trues sein. 753 00:44:54,700 --> 00:45:01,830 Ah, mein Fehler ist hier, dass ich I'm-- verwenden C ++ und R austauschbar, damit ich machen 754 00:45:01,830 --> 00:45:03,590 dieser Fehler die ganze Zeit. 755 00:45:03,590 --> 00:45:05,807 Das und Betreiber eigentlich die, die Sie möchten. 756 00:45:05,807 --> 00:45:08,140 Sie müssen nicht, um zwei verwenden möchten Et-Zeichen, nur ein einziges. 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 >> Also mal sehen. 760 00:45:18,140 --> 00:45:20,930 761 00:45:20,930 --> 00:45:23,920 Also, um die subsetted wir PartyID wo sie sind Demokraten 762 00:45:23,920 --> 00:45:25,300 und sie sind nicht fehlende Werte. 763 00:45:25,300 --> 00:45:27,690 Und nun lassen Sie uns an die diejenigen, die sie gewählt haben. 764 00:45:27,690 --> 00:45:31,530 So scheint es, wie die meisten von ihnen stimmten für 1. 765 00:45:31,530 --> 00:45:36,090 Also werde ich weitermachen und sagen, das ist Kerry. 766 00:45:36,090 --> 00:45:39,507 >> Und in ähnlicher Weise können Sie auch gehen, um Republikaner 767 00:45:39,507 --> 00:45:41,090 und hoffentlich, das sollte Ihnen 2. 768 00:45:41,090 --> 00:45:49,730 769 00:45:49,730 --> 00:45:51,770 Es ist nur eine Reihe von verschiedenen Spalten. 770 00:45:51,770 --> 00:45:53,070 Und in der Tat, es ist 2. 771 00:45:53,070 --> 00:45:55,750 So PartyID alle Republikaner, die meisten von ihnen stimmen über 2. 772 00:45:55,750 --> 00:45:58,390 >> So wie es scheint, nur indem man diese, 773 00:45:58,390 --> 00:46:00,600 Republikaner sein wird a very-- oder PartyID 774 00:46:00,600 --> 00:46:02,790 wird einen sehr sein großer Faktor bei der Bestimmung 775 00:46:02,790 --> 00:46:05,420 welche Kandidaten sie werde dafür stimmen. 776 00:46:05,420 --> 00:46:07,120 Und das ist offensichtlich wahr im Allgemeinen. 777 00:46:07,120 --> 00:46:10,139 Und das entspricht Ihren Intuition, natürlich. 778 00:46:10,139 --> 00:46:11,930 So scheint es, als wäre ich nicht mehr viel Zeit, so 779 00:46:11,930 --> 00:46:17,040 lassen Sie mich einfach weitermachen und zeigen ein paar schnelle Bilder. 780 00:46:17,040 --> 00:46:21,120 So, hier ist etwas, das leicht ist mehr mit Visualisierung kompliziert. 781 00:46:21,120 --> 00:46:26,450 So dass in diesem Fall ist dies eine ganz einfache Analyse nur die Überprüfung, was 782 00:46:26,450 --> 00:46:28,500 der Präsident von '04 ist. 783 00:46:28,500 --> 00:46:33,920 >> Also in diesem Fall, sagen wir, Sie wollte diese Frage zu beantworten. 784 00:46:33,920 --> 00:46:38,540 Also nehmen wir an, den Abstimmungs wissen wollten Verhalten in der 2004 Präsident Wahl 785 00:46:38,540 --> 00:46:41,170 und wie diese variiert je nach Rasse. 786 00:46:41,170 --> 00:46:44,380 Also nicht nur Sie wollen finden Sie im Stimmverhalten, 787 00:46:44,380 --> 00:46:47,860 aber Sie müssen für jede Teilmenge wollen Rasse und Art zusammenfassen, dass. 788 00:46:47,860 --> 00:46:50,770 Und du nur sagen kann dieses komplexen Schreibweise 789 00:46:50,770 --> 00:46:52,580 dass dies Art von immer verschwommen. 790 00:46:52,580 --> 00:46:56,390 >> So eine der fortgeschrittenen R Pakete, die auch Art ist der letzten 791 00:46:56,390 --> 00:47:00,070 heißt dplyr. 792 00:47:00,070 --> 00:47:03,060 So ist es dieser hier. 793 00:47:03,060 --> 00:47:08,080 Und ggg-- ggplot2 ist nur eine nette Weise des Handelns besser Visualisierungen 794 00:47:08,080 --> 00:47:09,400 als die eingebauten einem. 795 00:47:09,400 --> 00:47:11,108 >> So werde ich zum Laden diese beiden Bibliotheken. 796 00:47:11,108 --> 00:47:13,200 797 00:47:13,200 --> 00:47:16,950 Und dann werde ich gehen vor und führen Sie diesen Befehl. 798 00:47:16,950 --> 00:47:19,050 Sie können nur behandeln Sie dies als eine Black Box. 799 00:47:19,050 --> 00:47:23,460 >> Was ist passiert, ist, dass dieses Rohr Betreiber ist in diesem Argument vorbei 800 00:47:23,460 --> 00:47:24,110 in hier. 801 00:47:24,110 --> 00:47:28,070 Also ich sage Gruppe von dat Rasse und der damalige Präsident 04. 802 00:47:28,070 --> 00:47:31,530 Und dann alle diese anderen Befehle sind Filterung und dann zusammenfasst 803 00:47:31,530 --> 00:47:34,081 wo ich tue Zahl und dann bin ich hier Plotten es. 804 00:47:34,081 --> 00:47:39,980 805 00:47:39,980 --> 00:47:42,500 OK cool. 806 00:47:42,500 --> 00:47:44,620 Also lassen Sie uns weitermachen und zu sehen, wie das aussieht. 807 00:47:44,620 --> 00:47:52,280 808 00:47:52,280 --> 00:47:57,290 >> Also, was hier passiert ist, dass ich nur aufgetragen jedem Rennen und dann 809 00:47:57,290 --> 00:47:59,670 die diejenigen, die sie gewählt haben. 810 00:47:59,670 --> 00:48:03,492 Und diese zwei verschiedenen Werte entsprechen 2 und 1. 811 00:48:03,492 --> 00:48:05,325 Wenn Sie mehr wollen elegant, können Sie auch 812 00:48:05,325 --> 00:48:11,770 nur angeben, dass 2 oder Kerry-- 2 ist Bush, und dann 1 Kerry. 813 00:48:11,770 --> 00:48:13,700 Und Sie haben auch können dass in der Legende. 814 00:48:13,700 --> 00:48:17,410 >> Und Sie können auch teilen diese Balkendiagramme. 815 00:48:17,410 --> 00:48:19,480 Denn eines ist dass, wenn Sie bemerken, 816 00:48:19,480 --> 00:48:24,560 Dies ist nicht sehr leicht zu identifizieren welche dieser beiden Werte größer sind. 817 00:48:24,560 --> 00:48:27,920 So eine Sache, würden Sie wollen zu tun ist, nehmen diese blauen Bereich 818 00:48:27,920 --> 00:48:31,855 und bewegen Sie es hier, so dass Sie können diese beiden nebeneinander zu vergleichen. 819 00:48:31,855 --> 00:48:34,480 Und ich denke, das ist etwas, was ich keine Zeit haben, um jetzt zu tun, 820 00:48:34,480 --> 00:48:36,660 aber das ist auch sehr einfach zu tun. 821 00:48:36,660 --> 00:48:40,310 Sie können nur zu schauen man-Seiten von ggplot. 822 00:48:40,310 --> 00:48:47,170 So können Sie einfach ggplot wie dass und in diesen man-Seite lesen. 823 00:48:47,170 --> 00:48:51,920 >> Also lassen Sie mich nur schnell zeigen Ihnen einige coole Dinge. 824 00:48:51,920 --> 00:48:57,610 Fahren wir fort und gehen zu-- nur einen Anwendung des maschinellen Lernens. 825 00:48:57,610 --> 00:49:02,450 Also lassen Sie uns sagen, dass wir diese drei Pakete, so werde ich diese in zu laden. 826 00:49:02,450 --> 00:49:05,500 827 00:49:05,500 --> 00:49:09,170 Also das gerade druckt einige Informationen, nachdem ich eingelegt in der Sache. 828 00:49:09,170 --> 00:49:15,220 Also ich sage, diese read.csv, dieser Datensatz, und jetzt 829 00:49:15,220 --> 00:49:18,940 Ich werde weitermachen und schauen und sehen, was innerhalb dieses Datensatzes. 830 00:49:18,940 --> 00:49:22,080 >> So die ersten 20 Beobachtungen. 831 00:49:22,080 --> 00:49:27,190 So habe ich nur X1, X2, und Y. So scheint wie ein Haufen von diesen Werten 832 00:49:27,190 --> 00:49:31,640 von vielleicht 20 bis 80 oder so angefangen. 833 00:49:31,640 --> 00:49:37,700 Und dann in ähnlicher Weise für X2 und dann Diese Y scheint Etiketten 0 und 1 sein. 834 00:49:37,700 --> 00:49:49,500 >> Um dies zu überprüfen, ich kann nur tun, Übersichtsdaten X1. 835 00:49:49,500 --> 00:49:51,660 Und dann in ähnlicher Weise für all die anderen Spalten. 836 00:49:51,660 --> 00:49:55,300 So Zusammenfassend ist eine schnelle Möglichkeit, nur zeigen Ihnen, schnell Werte. 837 00:49:55,300 --> 00:49:56,330 Oh, sorry. 838 00:49:56,330 --> 00:49:58,440 Dies sollte man Y. sein 839 00:49:58,440 --> 00:50:03,420 >> So dass in diesem Fall gibt der Quantile, Mediane, maxes auch. 840 00:50:03,420 --> 00:50:07,130 In diesem Fall dataY, können Sie sehen, dass es nur geht auf 0 und 1 sein. 841 00:50:07,130 --> 00:50:10,100 Auch die mittlere sagt 0,6, bedeutet nur, dass es 842 00:50:10,100 --> 00:50:13,380 scheint, wie ich mehr als 1 s 0 s. 843 00:50:13,380 --> 00:50:16,160 >> Also lassen Sie mich vor und Show gehen Sie, wie das aussieht. 844 00:50:16,160 --> 00:50:17,470 Also ich bin gerade dabei, dies zu planen. 845 00:50:17,470 --> 00:50:22,852 846 00:50:22,852 --> 00:50:24,636 Mal sehen, wie dies klar. 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 >> Also das ist, wie es aussieht. 852 00:50:37,590 --> 00:50:46,310 So wie es scheint, Gelb I angegeben als 0 und dann rot I als 1 s festgelegt. 853 00:50:46,310 --> 00:50:52,190 So, hier sieht es aus wie Label-Punkte, und es 854 00:50:52,190 --> 00:50:56,410 scheint, wie Sie wollte nur einige Art von Clustering zu diesem Thema. 855 00:50:56,410 --> 00:51:01,020 >> Und lassen Sie mich einfach weiter und Show gehen Sie einige dieser integrierten Funktionen. 856 00:51:01,020 --> 00:51:03,580 So, hier ist lm. 857 00:51:03,580 --> 00:51:06,060 Also das ist nur versuchen um eine Linie, dies zu passen. 858 00:51:06,060 --> 00:51:08,640 Also, was ist der beste Weg, dass ich eine Linie wie passen 859 00:51:08,640 --> 00:51:14,020 , dass sie am besten zu trennen diese Art von Clustering. 860 00:51:14,020 --> 00:51:21,790 Und im Idealfall, die Sie gerade sehen können dass ich all diese Befehle ausführen gerade 861 00:51:21,790 --> 00:51:25,450 und dann werde ich Sie voran und fügen Sie die Zeile. 862 00:51:25,450 --> 00:51:28,970 >> Also das scheint, wie der beste Vermutung. 863 00:51:28,970 --> 00:51:34,150 Es ist unter den besten eines, das minimiert der Fehler bei dem Versuch, diese Zeile passen. 864 00:51:34,150 --> 00:51:40,000 Offensichtlich sieht diese Art von gut, aber es ist nicht die beste. 865 00:51:40,000 --> 00:51:43,130 Und lineare Modelle, in Generell sein werden, 866 00:51:43,130 --> 00:51:46,811 wirklich toll für Theorie und gerechte Art Gebäudegrundlagen der Maschinen 867 00:51:46,811 --> 00:51:47,310 Lernen. 868 00:51:47,310 --> 00:51:50,330 Aber in der Praxis, sind Sie zu gehen wollen etwas allgemeinere tun. 869 00:51:50,330 --> 00:51:54,280 >> So können Sie nur versuchen kann laufen so etwas wie ein neuronales Netzwerk. 870 00:51:54,280 --> 00:51:57,110 Diese Dinge sind zunehmend häufiger. 871 00:51:57,110 --> 00:52:00,530 Und sie funktionieren einfach traumhaft für große Datenmengen. 872 00:52:00,530 --> 00:52:07,080 Also in diesem Fall, wir nur have-- Lassen Sie uns see-- wir nrow. 873 00:52:07,080 --> 00:52:09,010 So nrow ist nur, Anzahl der Zeilen. 874 00:52:09,010 --> 00:52:11,790 Also in diesem Fall, ich haben 100 Beobachtungen. 875 00:52:11,790 --> 00:52:15,010 >> Also lassen Sie mich gehen Sie vor und bilden ein neuronales Netzwerk. 876 00:52:15,010 --> 00:52:18,620 Also das ist wirklich schön da kann ich nur sagen nnet 877 00:52:18,620 --> 00:52:21,767 und dann werde ich Regression Y. So ist die Y ist, dass Spalte. 878 00:52:21,767 --> 00:52:23,850 Und dann Regression auf die anderen zwei Variablen. 879 00:52:23,850 --> 00:52:27,360 Also diese kürzer ist Notation für X1 und X2. 880 00:52:27,360 --> 00:52:29,741 >> Also lassen Sie uns fortfahren und führen Sie diese. 881 00:52:29,741 --> 00:52:30,240 Oh, sorry. 882 00:52:30,240 --> 00:52:32,260 Ich muss die ganze Sache laufen. 883 00:52:32,260 --> 00:52:37,500 Und das ist nur das Drucken Notation für wie schnell oder nicht schnell es 884 00:52:37,500 --> 00:52:38,460 konvergiert. 885 00:52:38,460 --> 00:52:41,420 So sieht es aus wie es hat konvergieren. 886 00:52:41,420 --> 00:52:44,970 Also lassen Sie mich vor und drucken gehen aus, wie das aussieht. 887 00:52:44,970 --> 00:52:51,260 >> Siehe hier ist das Bild, und hier ist, eine Kontur zeigt, wie gut es passt. 888 00:52:51,260 --> 00:52:56,380 Und das ist just-- Sie sehen können dies, dass dies sehr, sehr schön. 889 00:52:56,380 --> 00:52:59,400 Es könnte sogar sein, Überanpassung, aber Sie können auch 890 00:52:59,400 --> 00:53:03,390 entfallen diese mit anderen Techniken wie die Kreuzvalidierung. 891 00:53:03,390 --> 00:53:06,180 Und diese werden auch in R. gebaut 892 00:53:06,180 --> 00:53:09,170 >> Und lassen Sie mich nur zeigen, unterstützt Vektor-Maschine. 893 00:53:09,170 --> 00:53:12,470 Dies ist ein weiterer wirklich gemeinsame Technik des maschinellen Lernens. 894 00:53:12,470 --> 00:53:18,550 Es ist sehr ähnlich zu linearen Modelle, aber es verwendet, was ein Kernel-Methode aufgerufen. 895 00:53:18,550 --> 00:53:22,790 Und lassen Sie uns sehen, wie gut das tut. 896 00:53:22,790 --> 00:53:26,430 So ist dieses eine sehr ähnlich, wie es auch ein neuronales Netzwerk durchführt, 897 00:53:26,430 --> 00:53:27,900 aber es ist viel glatter. 898 00:53:27,900 --> 00:53:35,740 Und das wird auf der Basis von what-- wie SVMs Arbeit. 899 00:53:35,740 --> 00:53:40,250 >> So ist dies nur ein sehr kurzer Überblick über einige 900 00:53:40,250 --> 00:53:43,822 der eingebaute Funktionen Sie tun können und auch einige der Datenexploration. 901 00:53:43,822 --> 00:53:45,905 Also lassen Sie mich einfach weitermachen und gehen Sie zurück zu den Objektträgern. 902 00:53:45,905 --> 00:53:50,290 903 00:53:50,290 --> 00:53:53,670 >> So offensichtlich ist dies nicht sehr umfangreich. 904 00:53:53,670 --> 00:53:57,140 Und das ist wirklich nur ein Teaser zeigt Ihnen, was Sie wirklich in R. tun 905 00:53:57,140 --> 00:53:59,100 Also, wenn Sie möchte nur um hier mehr zu lernen, 906 00:53:59,100 --> 00:54:01,210 sind eine Reihe von verschiedenen Ressourcen. 907 00:54:01,210 --> 00:54:06,890 >> Also, wenn Sie gern Lehrbücher sind oder du bist nur gern lesen Dinge online, 908 00:54:06,890 --> 00:54:09,670 dann ist dies ein fantastisches eins nach Hadley Wickham, 909 00:54:09,670 --> 00:54:13,010 der auch für alle diese wirklich cool Pakete. 910 00:54:13,010 --> 00:54:17,420 Wenn Sie gerne Videos sind, dann Berkeley hat eine wunderbare Bootcamp 911 00:54:17,420 --> 00:54:21,060 das ist several-- das ist irgendwie lang. 912 00:54:21,060 --> 00:54:24,210 Und es wird Ihnen fast lehren alles, was Sie möchten, um zu wissen, R. 913 00:54:24,210 --> 00:54:27,770 >> Und in ähnlicher Weise gibt es Codeacademy und alle diese anderen Art 914 00:54:27,770 --> 00:54:29,414 von interaktiven Websites hat. 915 00:54:29,414 --> 00:54:31,580 Sie sind auch immer common-- mehr und mehr üblich. 916 00:54:31,580 --> 00:54:33,749 Dies ist also sehr ähnlich Codeacademy. 917 00:54:33,749 --> 00:54:35,790 Und schließlich, wenn Sie gerade wollen Gemeinschaft und helfen, 918 00:54:35,790 --> 00:54:38,800 diese sind ein Haufen Dinge, die Sie gehen können. 919 00:54:38,800 --> 00:54:40,880 Natürlich haben wir noch Mailing-Listen verwenden, nur 920 00:54:40,880 --> 00:54:44,860 wie fast jeder andere Programmiersprache Gemeinschaft. 921 00:54:44,860 --> 00:54:47,880 Und #rstats ist dies unserer Twitter. 922 00:54:47,880 --> 00:54:49,580 Das ist eigentlich recht häufig. 923 00:54:49,580 --> 00:54:50,850 Und dann Benutzer! 924 00:54:50,850 --> 00:54:52,340 Ist nur unsere Konferenz. 925 00:54:52,340 --> 00:54:55,390 >> Und dann, natürlich, können Sie verwenden Sie alle diese Fragen und Dinge, 926 00:54:55,390 --> 00:54:57,680 wie Stack-Überlauf, Google und dann GitHub. 927 00:54:57,680 --> 00:55:00,490 Da die meisten dieser Pakete und eine Menge von der Community 928 00:55:00,490 --> 00:55:03,420 wird um die Entwicklung zentriert werden Code, weil es Open Source. 929 00:55:03,420 --> 00:55:05,856 Und es ist einfach richtig nett auf GitHub. 930 00:55:05,856 --> 00:55:08,730 Und schließlich können Sie mich kontaktieren, wenn Sie müssen nur alle kurze Fragen. 931 00:55:08,730 --> 00:55:13,530 So können Sie mir auf Twitter finden Sie hier, meine Website, und nur meine E-Mail. 932 00:55:13,530 --> 00:55:17,840 Hoffentlich war das something-- nur einen kurzen Teaser 933 00:55:17,840 --> 00:55:20,900 von dem, was R ist wirklich dazu in der Lage. 934 00:55:20,900 --> 00:55:23,990 Und hoffentlich, die Sie gerade sehen Sie sich diese drei Links 935 00:55:23,990 --> 00:55:25,760 und sehen, was Sie mehr tun können. 936 00:55:25,760 --> 00:55:28,130 Und ich denke, das ist nur darüber. 937 00:55:28,130 --> 00:55:28,630 Danke. 938 00:55:28,630 --> 00:55:30,780 >> [Applaus] 939 00:55:30,780 --> 00:55:31,968