[Musikwiedergabe] Dustin TRAN: Hallo. Mein Name ist Dustin. Also werde ich präsentieren Datenanalyse in R. Nur ein bisschen über mich selbst. Ich bin zurzeit ein Student in die Technik und angewandte Wissenschaften. I-Studie eine Schnittmenge maschinelles Lernen und Statistik so Datenanalyse in R wirklich von grundlegender Bedeutung für das, was Ich auf einer täglichen Basis. Und R ist besonders gut für die Datenanalyse denn es ist sehr gut für das Prototyping. Und in der Regel, wenn Sie tun, eine Art sind Datenanalyse, viele der Probleme auf kognitive gehen. Und so möchten Sie gerade haben einige wirklich gute Sprache, ist gerade gut zu tun eingebaute Funktionen, im Gegensatz zu haben, um mit niedrigen Dinge Ebene zu behandeln. Also am Anfang, ich bin gerade dabei vorstellen, was R, warum sollte Sie es verwenden möchten, und dann gehen Sie über in eine Demo, und gehen Sie einfach von dort. Also, was ist R? R ist nur eine Sprache entwickelt, für statistische Berechnungen und Visualisierung. Also, was bedeutet, dass es ist eine sehr sehr gute Sprach ist für jede Art von Dingen, das sich mit Unsicherheit oder Datenvisualisierung. So können Sie alles haben Wahrscheinlichkeitsverteilungen. Es gehen zu sein eingebaute Funktionen. Darüber hinaus haben Sie ausgezeichnete Plotten Pakete. Python ist eine andere konkurrierende Sprache-Daten. Und eine Sache, die ich finde, dass R ist viel besser ist die Visualisierung. Also, was Sie in der Demo, wie sehen auch nur eine sehr intuitive Sprache dass nur funktioniert sehr gut. Es ist auch kostenlos und Open Source, wie ist eine andere gute Sprache, denke ich. Und hier, ein Bündel von nur Keywords auf Sie geworfen. Es ist dynamisch, was bedeutet, wenn Sie eine spezifische Aktivität zu einem Objekt zugeordnet als es werde einfach ändern Sie im laufenden Betrieb. Es ist faul, so ist es klug zu wie es das macht Berechnungen. Funktionale Bedeutung es wirklich arbeiten kann basierte weg von Funktionen so anything-- jede Art von Manipulation Sie Dabei wird sie off-Funktionen basieren. So binäre Operatoren, beispielsweise sind nur von Natur Funktionen. Und alles, was Sie gehen zu tun ist werde off-Funktionen selbst ausgeführt werden. Und dann Objekt als auch ausgerichtet. Also hier ist ein XKCD Grundstück. Nicht nur, weil ich das Gefühl, XKCD ist grundlegend für jede Art Präsentations, sondern weil Ich fühle mich wie das ist wirklich hämmert den Punkt, dass viele der Zeit, wenn Sie tun, irgendeine Art von Daten sind Analyse, ist das Problem nicht so viel, wie schnell es fährt, aber wie lange es zu gehen nehmen Sie die Aufgabe zu programmieren. So, hier ist nur die Analyse, ob Strategie a oder b ist effizienter. Das wird sein etwas, das Sie wird eine Menge mit in befassen Art von Low-Level-Sprachen wo Sie mit seg Fehler zu tun haben, Speicherzuweisung, Initialisierungen, sogar machen die integrierten Funktionen. Und dieses Zeug ist alles behandelt sehr, sehr elegant in R. Also einfach, dies zu hämmern Punkt, der größte Engpass wird kognitiven sein. So Datenanalyse ist ein sehr schwieriges Problem. Egal, ob Sie tun maschinelles Lernen, oder du bist , die gerade eine Art von Grunddaten Exploration, Sie wollen nicht zu haben, um ein Dokument zu nehmen und kompilieren etwas, das jedes Mal, wenn Sie sehen wollen, was eine Spalte aussieht, welche insbesondere Einträge in einer Matrix aussieht. So können Sie nur wollen, haben einige wirklich nette Schnittstelle Sie eine einfache Funktion ausgeführt werden kann dass Indizes zu was auch immer Sie möchten und nur von dort ausführen. Und Sie müssen Domäne bestimmte Sprachen für diese. Und R hilft Ihnen wirklich definieren Problem und lösen es auf diese Weise. So, hier ist eine grafische Darstellung, die Programmierung Popularität von R, wie es im Laufe der Zeit verschwunden. So wie Sie sehen können, wie 2013 oder so dass es nur bis enorm geblasen. Und das hat gerade deshalb war großen Trend in der Technologiebranche über Big Data. Auch sind nicht nur die Technik Industrie, aber wirklich eine Branche, weil dass-- ein Großteil der Industrie sind eine Art von grundlegender Bedeutung versucht, diese Probleme zu lösen. Und in der Regel, können Sie etwas Gutes haben Methode zur Messung der diese Probleme oder sogar sie zu definieren oder Lösen Sie sie mit Daten. Also ich denke, jetzt ist der 11. R beliebteste Sprache auf TIOBE und es ist seitdem gewachsen. So, hier ist etwas mehr Features von R. Es hat eine enorme Anzahl von Paketen und Für alle diese verschiedene Dinge. Also, wann immer Sie haben einen gewisses Problem, die meisten die Zeit R wird diese Funktion für Sie. Egal, ob Sie möchten bauen eine Art von Maschine Lernalgorithmus genannt Zufallswald oder Entscheidungsbäume, oder auch nur zu versuchen, um den Mittelwert zu nehmen eine Funktion oder einen von diesem Zeug, R haben, dass. Und wenn Sie das tun, die Sie interessieren Optimierung, eine Sache, die gemeinsam ist ist, dass, nachdem Sie fertig sind Prototyping eine Art von High-Level-Sprache, Sie werfen, dass in-- Sie werden nur Port, über bis zu einem gewissen Low-Level-Sprache. Was ist gut über R ist, dass wenn Sie getan Prototyping, können Sie C ++ ausführen, oder Fortran, oder von irgendwelchen untere Ebene diejenigen direkt in R. Also das ist ein wirklich cooles Feature über R, wenn Sie wirklich über die Optimierung Punkt. Und es ist auch richtig gut für Web-Visualisierungen. So D3.js, beispielsweise Ich denke, ein weiteres Seminar dass wir die heute. Und das ist wirklich genial für Dabei interaktive Visualisierungen. Und D3.js vorausgesetzt, dass Sie eine Art von Daten geplottet und R ist eine großartige Möglichkeit, in der Lage zu tun, die Datenanalyse, bevor Sie exportieren über D3.js oder auch nur laufen D3.js Befehle in R selbst, sowie alles andere Bibliotheken auch. Das war also nur die Einführung von was ist R und warum Sie es verwenden können. Hoffentlich, habe ich überzeugen Sie etwas etwa nur versuchen, um zu sehen, wie es ist. Also werde ich voran gehen und gehen durch Einige Grundlagen über R Objekte und was Sie wirklich tun können. So, hier ist nur ein Haufen von Mathematik-Befehle. So sagen you're-- Sie bauen wollen Sprache selbst und Sie nur wollen , eine Reihe von verschiedenen Werkzeugen haben. Jede Art von Operation, die Sie denken, Sie würden wollen, ist ziemlich viel los zu sein in R. So, hier ist 2 plus 2. Hier ist 2 mal pi. R hat eine Reihe von integrierten Konstanten dass Sie häufig verwenden wie pi, e. Und dann, hier ist 7 und runif, so runif von 1. Dies ist eine Funktion, die es erzeugt, eine Zufalls einheitliche 0-1. Und dann gibt es 3, die Macht der 4. Es gibt Quadratwurzeln. Es gibt Protokoll. So melden Sie wird Basis tun Exponentialfunktion von selbst aus. Und dann, wenn man eine Basis geben dann, Sie tun, was Sie wollen Basis. Und dann sind hier einige andere Befehle. So haben Sie 23 mod 2. Dann haben Sie den Rest. Dann haben Sie wissenschaftliche Notation, wenn Sie auch wollen einfach mehr tun, und kompliziertere Dinge. Hier ist also Aufgabe. So typische Aufgaben in R ist mit einem Pfeil getan so ist es weniger als und der Bindestrich. So, hier bin ich nur die Zuordnung 3 in die Variable val. Und dann werde ich den Ausdruck val und dann druckt sie drei. Standardmäßig werden in R-Interpreter, es werden die Dinge für Sie drucken so müssen Sie nicht angeben, drucken Sie eine val immer wenn Sie etwas ausdrucken wollen. Sie können nur tun, und val dann wird es für Sie tun. Auch können Sie auf technisch nutzen kann ist gleich als Zuweisungsoperator. Es gibt kleinere Besonderheiten zwischen mit den Pfeil Betreiber und das Gleichheits Operator für Zuordnungen. Meist durch Konvention, alle wird einfach die Pfeil-Operator. Und hier, ich bin die Zuordnung dieser Schräg Notation genannt 1 Doppelpunkt 6. Dies erzeugt einen Vektor von 1 bis 6. Und das ist wirklich schön, denn dann Sie gerade den Vektor zu val zuweisen und das funktioniert für sich. Also das geht schon aus ein single-- eine sehr intuitive Daten Struktur nur ein Doppel von irgendeine Art von Aktivität in einen Vektor und welche alle sammeln die skalare Werte für Sie. Also wenn Sie sich in einem Skalar, Sie haben R Objekten und dies ist ein Vektor. Ein Vektor ist eine beliebige Art von Sammlung des gleichen Typs. So, hier sind ein paar Vektoren. Also das ist numerisch. Numerisch ist R Art zu sagen Doppel. Und so wird standardmäßig jede Nummer wird eine doppelte sein. Also, wenn Sie c von 1,1, 3 haben, Negativ 5.7, ist die c eine Funktion ist. Diese verkettet alle drei Zahlen in einen Vektor. Und das wird so, wenn be-- Sie bemerken, 3 für sich, Normalerweise würde man davon ausgehen, dass dies wie eine ganze Zahl ist, sondern weil alle Vektoren sind vom gleichen Typ, Dies ist ein Vektor von Doppel oder numerisch in diesem Fall. rnorm ist eine Funktion, erzeugt Standardnormal variables-- oder Standard-Normalwerte. Und ich bin der Angabe zwei von ihnen. Also ich mache rnorm 2, Zuweisung, dass auf Entwickler, und dann werde ich den Ausdruck Entwickler. Das sind also nur zwei sind zufälligen Normalwerte. Und dann ints, wenn Sie tun Sie kümmern uns um Zahlen. So ist dies nur über Speicher Zuordnung und Speicherung Speichergröße. So müsste man anfügen Ihre Zahlen vom Kapital L. In der Regel ist dies Historische Schreibweise R für so genannte Long-Integer. Also die meiste Zeit, werden Sie sein Umgang mit Doppelzimmer. Und wenn Sie jemals wird später auf Ihrem Code zu optimieren, Sie können fügen Sie einfach diesen L's danach oder während es wenn Sie wie präkognitive über sind, was Sie gehen, um diese Variablen zu tun. Also hier ist ein Zeichen Vektor. Also, noch einmal, ich bin Verkettung drei Saiten diesmal. Beachten Sie, dass Doppelsaiten und Einzelsaiten sind die gleichen in R. So habe ich arthur und marvin und so wenn ich drucke es aus, alle von ihnen gehen, um Doppelsaiten zu zeigen. Und wenn Sie auch sind Die Doppel- oder Einzel String in Ihrem Zeichen, dann können Sie entweder abwechselnd Saiten. So marvin für die zweite Element ist dies dich show-- nur noch Doppelsaiten und dann eine einzelne Zeichenfolge so ist dies im Wechsel. Andernfalls, wenn Sie möchten, um eine doppelte Verwendung String-Operator in einer Doppel-String wenn man es erklären, dann Sie benutzen Sie einfach die Escape-Operator. So können Sie den Backslash Doppel-String zu tun. Und schließlich haben wir auch haben logische Vektoren. So logical-- so TRUE und FALSE, und sie sind werde Großbuchstaben sein. Und dann wieder ich Verketten sie und ihre Zuordnung zu bools. So bools wird sich zeigen, Sie TRUE, FALSE und TRUE. So, hier ist vektorisiert Indizierung. So am Anfang, I nehme eine function-- dies wird als sequence-- Sequenz 2 bis 12. Und ich nehme eine Sequenz von 2. Es wird also zu tun 2, 4, 6, 8, 10 und 12. Und dann bin ich Indexierung um das dritte Element zu erhalten. So eine Sache zu beachten ist, dass R Indizes von ab 1. So vals 3 wird sich geben, Sie das dritte Element. Dies ist eine Art von anderen Sprachen, in denen sie von Null beginnt. So in C oder C ++, zum Beispiel, du bist gehen, um das vierte Element zu erhalten. Und hier ist vals 3-5. So eine Sache, die ist wirklich cool ist, dass man Temporäre Variablen können im Inneren erzeugen und dann benutzen Sie einfach diese im laufenden Betrieb. So, hier ist 3-5. Also bin ich Erzeugen eines Vektors 3, 4 und 5 und dann Ich indizieren, um die dritte zu bekommen, vierten und fünften Elemente. So ähnlich, können Sie abstrakte dies nur tun, jede Art eines Vektors das gibt Ihnen die Indizierung. So, hier ist vals und dann die ersten, dritten und sechsten Elemente. Und dann, wenn Sie wollen um eine Ergänzung zu tun, so dass Sie nur tun, das Minus danach und werde geben Ihnen alles, was nicht ist das ersten, dritten oder sechsten Elements. So wird dies 4, 8 und 10 liegen. Und wenn Sie erhalten möchten noch weiter fortgeschritten, Sie Boolean Vektoren zu verketten. Also dieser Index wird Ihnen geben Diese Boolean Vektor der Länge 6. So rep TRUE Komma 3. Dies wird TRUE dreimal wiederholen. So wird dies Ihnen einen geben Vektor TRUE, TRUE, TRUE. rep FALSE 4-- das wird dir geben ein Vektor von FALSE, FALSE, FALSE, FALSE. Und dann c wird zu verketten diese beiden Booleans zusammen. So wirst du drei zu bekommen sind Trues und dann vier FALSCH. So dass, wenn Sie Index vals, du bist gehen die TRUE, TRUE, TRUE zu bekommen. So, das wird ja zu sagen, Ich möchte diese drei Elemente. Und dann false, false, FALSCH, FALSCH wird nein zu sagen, ich habe nicht die Elemente wollen so wird es nicht zu ihnen zurückkehren. Und ich denke, es gibt tatsächlich ein Tippfehler hier denn dies sagt Wiederholung TRUE 3 und wiederholen FALSE 4 und technisch, Sie nur sechs Elemente so wiederholen FALSE, es sollte erneut anspricht 3 sein. Ich denke, R ist auch intelligent genug, wie dass, wenn Sie nur angeben, 4 hier, dann es wird auch nicht Fehler aus. Es wird nur geben Sie diesen Wert. So dass es dann einfach ignorieren, dass die vierte FALSE. So, hier ist vektorisiert Zuordnungs. So set.seed-- dies nur setzt der Samen für Pseudozufallszahlen. Also werde ich die Einstellung der Aussaat bis zur 42, was bedeutet, dass, wenn ich zu generieren drei zufälligen Normal Werte, und dann, wenn Sie laufen auf eigene Faust set.seed Computer mit dem gleichen Wert 42, dann auch Sie die gleichen drei Zufalls Normalen. Also das ist wirklich gut Reproduzierbarkeit. Normalerweise, wenn Sie tun, einige Art der wissenschaftlichen Analyse, würden Sie wollen, um den Samen gesetzt. Auf diese Weise andere Wissenschaftler können einfach reproduzieren genau die gleiche Code, den Sie haben getan, weil sie werde die genaue haben elbe Zufallsvariablen dass-- oder zufällig Werte, die Sie sich auch genommen haben. Und so ist die vektorisiert Zuordnungs Hier zeigt sich die Valser 1-2. So ist es die ersten beiden Elemente erfolgt vals und dann ordnet sie 0. Und dann können Sie auch nur tun, die ähnliche Sache mit den Booleans. So vals nicht gleich diesen Willen 0-- geben Ihnen einen Vektor FALSE, FALSE, TRUE in diesem fall. Und dann, es wird zu einem sagen, dieser Indizes das wahr wäre, dann es geht um, dass bis 5 vergeben. So ist es das dritte Element nimmt hier und dann ordnet sie fünf. Und das ist wirklich schön im Vergleich zu Low-Level-Sprachen wo Sie for-Schleifen verwenden , alle diese Dinge zu tun vektorisiert weil es nur sehr intuitiv und es ist ein Einzel Einzeiler. Und was ist toll an vektorisiert Notation ist, dass in R, sind diese Art von eingebaute, so dass sie fast so schnell da dies in einem Low-Level-Sprache um so eine for-Schleife in R gegen und dann mit ihm zu tun, die dynamische Indizierung selbst. Und das werde langsamer als tut sein diese Art der Sache vektorisiert wo es parallel, wo tun kann es ist im Grunde das Einfädeln zu tun. So, hier ist vektorisiert Operationen. Also ich bin generieren Wert 1 bis 3, Zuweisen dieser an vec1, 3 bis 5, vec2, indem Sie sie zusammen. Sie fügt hinzu, sie komponentenweise so es ist 1 plus 3, 2 und 4, und so weiter. vec1 mal vec2. Diese die zwei multipliziert Werte Komponente weise. Es ist also 1 mal 3, 2-mal 4, und dann 3-mal 5. Und dann, in ähnlicher Weise können Sie auch tun, comparisons-- logische Vergleiche. So ist es FALSE FALSE TRUE in diesem Fall, weil 1 nicht größer als 3 ist, 2 nicht größer als 4 ist. Das ist, glaube ich, eine andere Tippfehler, 3 ist auf jeden Fall nicht größer als 5 ist. Ja. Und so können Sie einfach alle tun diese einfachen Operationen weil ihre ererbten aus den Klassen selbst. Das war nur der Vektor. Und das ist eine Art der grundlegendsten R-Objekt, da angesichts eines Vektors, Sie können erweiterte Objekte zu konstruieren. Also hier ist eine Matrix. Dies ist im wesentlichen die Abstraktion was eine Matrix selbst. Also in diesem Fall, es ist drei Vektoren, wobei jeder eine Spalte ist, oder Sie können es betrachten wie jeder ist eine Zeile. Also ich bin Speichern einer Matrix von 1 bis 9 und dann werde ich die Angabe 3 Reihen. So 1-9 gibt Ihnen einen Vektor ein, 2, 3, 4, 5, 6, und den ganzen Weg bis 9. Eine Sache, die auch im Auge zu behalten ist, dass R speichert Werte in Spalte-Großformat. Also mit anderen Worten, wenn Sie sehen, ein bis 9, es wird zu speichern them-- es wird auf 1, 2, 3 in der ersten Spalte, und dann wird es tun, 4, 5, 6 in der zweiten Säule, und 7, 8, 9 in der dritten Spalte. Und hier sind einige andere gemeinsame Funktionen, die Sie verwenden können. So dunkel matt, das wird Ihnen die Dimensionen der Matrix. Es wird Sie zurück ein Vektor der Dimension. So dass in diesem Fall, weil unsere Matrix 3 von 3, es geht um Sie zu geben Zahlenvektor, ist 3 3. Und hier wird nur zeigen Matrixmultiplikation. Also in der Regel, wenn Sie gerade tun asterisk-- so Matte Stern mat-- dies sein wird komponentenweisen Betrieb oder was die Hadamard Produkt bezeichnet. Also, es wird jeweils zu tun Element komponentenweise. , Wenn Sie wollen, aber Matrix multiplication-- so Multiplikation der ersten Reihe Zeiten ersten Spalte der zweiten Matrix ist und so an-- Sie verwenden würden, Diese Prozent Betrieb. Und t der Matte ist nur eine Betrieb für transponieren. Also ich sage, nehmen Sie die Transponierung in die Matrix, multipliziert es mit der Matrix selbst. Und dann ist es zu gehen zurück zu Ihnen weitere 3 von 3-Matrix zeigt das Produkt, das Sie sich wünschen. Und so war das Matrix. Hier ist, was ein Datenrahmen bezeichnet. Ein Datenrahmen Sie so denken kann eine Matrix, aber jede Säule selbst wird zu einer anderen Art sein. Also, was ist wirklich cool zu Daten Frames ist, dass bei der Datenanalyse selbst, Sie gehen zu all dies sind heterogener Daten und alle diese wirklich chaotisch Dinge, wo jede der Säulen selbst können von unterschiedlicher Art sein. So, hier bin ich zu sagen erstellen Datenrahmen, zu tun Zahlen von 1 bis 3, und dann haben auch ein Zeichen Vektor. Also ich kann über Index jeder dieser Säulen und dann werde ich die Werte selbst zu bekommen. Und Sie können auch tun, eine Art von Operationen an Daten-Frames. Und die meisten der Zeit, wenn Sie Dabei Datenanalyse oder eine Art der Vorverarbeitung, werden Sie sein Arbeiten mit diesen Datenstrukturen wobei jede Spalte wird um von einem anderen Typ sein. Schließlich, so dass es sich im Wesentlichen nur die vier wesentlichen Gegenstände in R. Liste wird nur sammeln jede andere Objekte, die Sie wollen. So wird es diese in eine speichern Variable, die Sie leicht zugreifen können. Also hier, nehme ich eine Liste. Ich sage Dinge gleich 3 ist. So werde ich ein Element in haben die Liste, und dies wird als Material, und es geht um den Wert 3 haben. Ich kann auch eine Matrix. Das ist also 1 bis 4 und am Ende Reihe gleich 2 ist, so daß eine 2 x 2-Matrix. Auch in der Liste und es heißt Matte. moreStuff, eine Zeichenkette, und noch eine weitere Liste in sich. Also das ist eine Liste, die 5 und Bären ist. So ist es den Wert 5, und es hat hat die Zeichenfolge Bär und es ist eine Liste in einer Liste. So können Sie diese haben rekursive Dinge, wo Sie haben eine another-- Geben Sie in der Art. So ähnlich, können Sie eine Matrix haben in einer anderen Matrix und so weiter. Und die Liste ist nur ein guter Weg, der Sammlung und Aggregation Alle diese verschiedenen Objekten. Und schließlich, hier ist nur für den Fall zu helfen Dies war nur über sehr schnell gegangen. Also, wenn Sie verwirrt sind über irgendeine Art von Funktion, Sie können mithilfe dieser Funktion zu tun. So können Sie helfen Matrix tun können oder ein Fragezeichen-Matrix. Und Hilfe und das Fragezeichen sind nur für die gleiche Sache Kurzschrift so dass sie Aliase. lm ist eine Funktion, gerade tut ein lineares Modell. Aber wenn Sie nur nicht, wie die Arbeiten, können Sie einfach Hilfe lm tun und gebe Ihnen einige Art von Dokumentation, sieht irgendwie aus wie ein man-Seite in Unix, wo Sie eine kurze Beschreibung, was ja, auch das, was die Argumente sind, was es gibt, und nur Tipps, wie , es zu benutzen, und einige Beispiele als auch. Also lassen Sie mich vor und Show gehen einige Demo von R. mit OK. Also ging ich über sehr schnell nur die Daten Strukturen und eine Art von der op-- einige der Operationen. Hier einige Funktionen. So, hier werde ich einfach um eine Funktion zu definieren. Also ich bin auch mit Zuweisungsoperator hier, und ich sage, erklären sie als Funktion. Und es nimmt den Wert x. Das ist also jede gewünschte Wert und ich werde x selbst zurück. Das ist also die Identitätsfunktion. Und was ist cool über diese im Vergleich zu anderen Sprachen und eine andere Low-Level- Sprachen ist, dass x können von jedem Typ selbst und es wird diese Art zurück. So können Sie imagine-- so lassen können mich einfach laufen diese schnell. Entschuldigung. So eine Sache, ich sollte auch erwähnen, ist, dass dieser Editor verwende ich heißt rstudio. Dies ist, was ein IDE genannt. Und eine Sache, die ist darüber wirklich nett ist, dass es enthält eine Menge der Dinge, die Sie in der R für sich tun wollen nur sehr intuitiv. Also hier ist ein Interpreter-Konsole. So ähnlich, können Sie auch diese Konsole rohen einfach, indem Sie eine Kapital R. Und genau das Gleiche wie die Konsole. So kann ich nur tun, ID-Funktion x, x, x. Und dann- und dann, dass wird gut selber. So rstudio ist groß weil sie die Konsole. Es hat auch die Dokumente Sie möchten am laufen. Und dann einige Variablen hat dass Sie in Umgebungen sehen. Und dann, wenn Sie Grundstücke zu tun, dann kann nur sehen es hier, im Gegensatz zu die Verwaltung all dieser verschiedenen Fenstern allein. Ich eigentlich persönlich benutze Vim, aber ich Lust rstudio ist exzellent, nur für immer eine gute Idee, , wie R. Normalerweise verwenden, wenn Sie versuchen, lernen einige neue Aufgabe, Sie wollen nicht zu handhaben zu viele Dinge auf einmal. So R ist nur ein very-- rstudio ist ein sehr guter Weg des Lernens R ohne zu behandeln all diese anderen Dinge. Also hier Ich bin mit id hallo. Dies gibt hallo. ID 123. Hier ist ein Vektor von ganzen Zahlen. So ähnlich, weil Sie nehmen jede eine Art von Wert, Sie tun können, Rückkehr id x so ist es 1234 und 5 zurückkehrt. Und lassen Sie mich nur zeigen, dass dies ist in der Tat eine ganze Zahl. Und ebenso, wenn Sie Klasse zu tun id x, es geht um ganze Zahl sein. Und dann können Sie auch Vergleichen Sie die beiden und es ist wahr. Also werde ich prüfen, ob der ID x gleich equals x und Bekanntmachung dass es Ihnen zwei Trues. Das ist also nicht, dass es die beiden Objekte identisch, aber jeder der Einträge in die Vektoren identisch. Hier ist bounded.compare. Also das ist etwas komplizierter, in, dass es eine, wenn Bedingung und anderes und dann dauert es zwei Argumente zu einem Zeitpunkt. SOx beliebigen Typs. Und ich sage das zweite Argument ist ein. Das kann alles als gut. Aber standardmäßig, es wird zu ergreifen, 5, wenn Sie nichts angeben. So, hier werde ich sagen, wenn x größer als a. Also, wenn ich nicht angeben, ein, es sagt, wenn x größer als 5 ist, dann werde ich TRUE zurück. sonst werde ich FALSE zurückgeben. Also lassen Sie mich gehen Sie vor und definieren Sie diese. Und jetzt bin ich zu gehen laufen bounded.compare 3. So ist es, so wurde mit 3 weniger than-- 3 größer als 5. Nein, es ist nicht so falsch. Und bounded.compare 3 und ich werde um sie zu vergleichen mit einem gleich 2. So, jetzt bin ich ja zu sagen, jetzt habe ich möchten ein etwas anderes sein. So werde ich ein Mitspracherecht, sollten Sie 2 sein. Ich kann entweder zu tun, diese Art von Notation oder ich sagen, a gleich 2. Dies ist ein lesbarer , dass, wenn Sie Mit Blick auf diese wirklich komplizierte Funktionen, nehmen mehrere arguments-- und dies kann Dutzende oftentimes-- nur sagen, a gleich 2 ist besser lesbar für Sie, so dass später in der Zukunft Sie wissen, was du tust. Also in diesem Fall, ich bin Sprichwort ist 3 größer als 2. Ja, es ist. Und in ähnlicher Weise kann ich einfach entfernen dies und sagen, das ist 3 größer als 2 wobei a gleich 2 ist. Und das ist auch wahr. Ja? ZIELGRUPPE: Sind Sie Ausführung Zeile für Zeile? Dustin TRAN: Ja, ich bin. Also, was ich hier mache ist Einnahme dieses Textes document-- und was ist toll an rstudio ist, dass Ich kann nur laufen ein short-- ein Tastenkürzel. So mache ich Strg-Enter. Und dann nehme ich das Zeile im Textdokument und dann setzen in der Konsole. So, hier bin ich sagen, bounded.compare und ich tue, Strg-X. So kann ich einfach hier laufen auch. Und dann, dass ich das übernehmen Linie und dann legen Sie sie hier. Und dann ähnlich, kann ich hier ausführen. Und dann wird es einfach weiter definieren die Linien in die Konsole so. Und wenn Sie auch feststellen, die geschweiften Klammern sind es genau wie in C-Syntax. x-- wenn der Zustand, wenn auch werde Klammern verwenden und dann Sie anderes verwenden können. Ein weiterer ist else if. So, das wird sein x gleich gleich a, zum Beispiel. Und dann bin ich zu gehen zurück hier etwas. Beachten Sie, dass es zwei verschiedene Dinge, die hier vor sich geht. Einer ist, dass ich hier bin Angabe zurück den Wert TRUE. Hier Ich sage nur, x. So R wird in der Regel standardmäßig nehmen Sie die letzte arguments-- oder nehmen Sie die letzte Zeile des Codes, und das sein wird, was es zurück. So, hier ist das gleiche etwas wie tun Rückkehr x. Und nur um Ihnen zu zeigen. Und dann wird es einfach so zu arbeiten. Lassen Sie mich mit diesem weiter. So else if. Und wirklich, ich zurückkehren können alles, was ich möchte. Also ich weiß nicht einmal zu haben, Rückkehr Booleans die ganze Zeit, Ich kann einfach etwas anderes zurück. So kann ich Rückkehr Bären zu tun. Also, wenn x gleich ist gleich a, es geht um Bären zurück. Ansonsten, es wird TRUE zurück. Ich kann auch einen Vektor oder wirklich etwas. Und normalerweise statisch typisierte Sprachen, Sie müssten eine Art angeben. Und beachten Sie, dass es nur alles sein. Und R ist intelligent genug, dass es wird nur das tun und es wird gut funktionieren. Also lassen Sie mich dies zu definieren. Unexpected-- oh sorry. Es sollte eine geschweifte Klammer hier zu sein. OK. Kühle. In Ordnung. So, jetzt zu vergleichen 3 lassen und gleich 3 ist. So ist es return-- sollten yeah-- den Wert Bär. So, jetzt eine allgemeinere ist, wie was ist mit anderen Datenstrukturen. So haben Sie diese Funktion. Das wird auf jede Art zu arbeiten der Wert wie 3 oder einer numerischen, mit anderen Worten, Doppel. Aber was ist so etwas wie ein Vektor. Was passiert also, wenn man so do-- Ich bin werde val, sagen wir, 4 bis 6 zuordnen. Also, wenn ich wieder diese, dieses ist ein Vektor von 4, 5, 6. Nun wollen wir sehen, was passiert, wenn ich bounded.compare val. So, das wird Ihnen 15 1251. Also mit anderen Worten, es ist zu sagen Wenn Sie in diesem Zustand sehen so heißt es x kleiner ist als ein oder so etwas. Das ist also etwas verwirrend, weil jetzt Sie wissen einfach nicht, was los ist. Also ich denke, eine Sache, die wirklich ist gut über nur versucht, Debug- ist, dass man nur tun, val größer als ein und sehen, was da passiert. So val-- ein standardmäßig 5 so lassen Sie uns einfach Do Val größer als 5. Das ist also ein Vektor FALSE FALSE TRUE. So, jetzt, wenn Sie suchen, dies, es wird wollte er sagen: und es wird Ihnen diese geben ist ein Vektor von FALSE FALSE TRUE. Also, wenn Sie diese in R, R geben hat keine Ahnung, was du tust. Weil es ein einziges erwartet Wert, der ein Boolean ist, und jetzt du gibst es einen Vektor von Booleans. So standardmäßig ist R nur sagen, was zum Teufel, Ich gehe davon aus, dass Sie werde das erste Element hier zu nehmen. Also werde ich sagen- Ich werde anzunehmen, dass dies FALSE. Es wird also zu sagen, nein, das ist nicht richtig. Ebenso ist es zu gehen ist val gleich gleich ein. Nein, leider nicht 5. Und es ist auch gehen, falsch zu sein als gut. Es wird also, nein zu sagen, Es ist nicht wahr und so ist es werde diese letzte zurückzukehren. Das ist also entweder eine gute Sache oder eine schlechte Sache, je nachdem, wie Sie sie sehen können. Denn wenn man schaffen diese Funktionen, Sie nicht wirklich wissen, was los ist. So manchmal würden Sie eine Fehler möchten, oder vielleicht wollen Sie nur eine Warnung. In diesem Fall wird R nicht. So ist es wirklich bis zu Sie weg von der Basis, was Sie denken, die Sprache sollte in diesem Fall zu tun wenn Sie in einem Vektor von Booleans geben wenn Sie tun, wenn ein Zustand. Also lassen Sie uns sagen, dass Sie das Original hatte eine mit, wenn sonst TRUE zurück und du bist werde FALSE zurückgeben. So ein Weg der Abstraktion das ist zu sagen, ich brauchen noch nicht einmal diese bedingte Sache. Eine andere Sache, die ich tun kann, ist nur Zurückführen der Werte selbst. Also, wenn Sie feststellen, wenn Sie do val größer als 5, das wird ein Rück Vektor FALSE FALSE TRUE. Vielleicht ist das, was Sie wollen für bounded.compare. Sie möchten einen Vektor von Booleans zurück wo jeder der Werte vergleicht um sich. So können Sie einfach bounded.compare Funktion x, a gleich 5 ist. Und anstatt das zu tun dies, wenn sonst Zustand, Ich werde einfach zurück x größer als 5 ist. Also, wenn es wahr ist, dann es wird TRUE zurück. Und dann, wenn es nicht, es ist werde FALSE zurückgeben. Und das wird für die Arbeit jeder dieser Strukturen. So kann ich c 1 6 oder 9 bounded.compare und dann werde ich sagen, ein gleich 6, beispielsweise. Und dann ist es zu gehen geben Sie die richtige Boolean Vektor, die Sie entwerfen. Also das sind nur Funktionen und jetzt lassen Sie mich nur zeigen Ihnen einige interaktive Visuals. Ich glaube nicht, habe ich eigentlich Wi-Fi hier so lassen Sie mich einfach weitermachen und lassen Sie diesen ein, denke ich. Aber eine Sache, die ist cool ist aber, dass, wenn Sie nur will eine Reihe von Test verschiedene Datenbefehle, gibt es eine Reihe von verschiedenen Datensätzen die bereits in R. vorgespannt sind Eines von ihnen ist namens Iris Datensatz. Dies ist einer der am besten bekannten diejenigen für maschinelles Lernen. Sie werden in der Regel nur tun, eine Art von Testfälle zu sehen, ob Ihr Code ausgeführt wird. Also lasst uns einfach überprüfen, was Iris ist. Also das, was vor sich geht um einen Datenrahmen sein. Und es ist eine Art lange, weil Ich habe gerade heraus Iris gedruckt. Es ist Ausdruck der ganzen Sache. So hat es alle diese verschiedenen Namen. So Iris ist eine Sammlung von verschiedenen Blumen. In diesem Fall ist es zu sagen man die Arten davon, Alle diese unterschiedlichen Breiten und Länge der Kelchblatt und dem Blütenblatt. Und so in der Regel, wenn Sie Iris ausdrucken möchten, zum Beispiel, Sie wollen nicht, es zu haben All dies tun, denn das übernehmen kann Ihre gesamte Konsole. So eine Sache, die wirklich ist schön ist das Haupt-Funktion. Also, wenn Sie gerade tun, Kopf Iris, dies wird Ihnen die ersten fünf Zeilen oder sechs, denke ich. Und dann auch, Sie kann nur angeben. So 20-- dies wird Sie die ersten 20 Zeilen. Und ich war eigentlich Art der überrascht, dass diese gab mir sechs so lassen Sie mich fortfahren und überprüfen iris-- oder Kopf, sorry. Und hier wird es geben, Sie in der Dokumentation von dem, was der Wert Kopf tut. So die erste zurückgegeben oder zuletzt eines Objekts. Und dann bin ich zu gehen Blick auf die Standardwerte. Und dann sagt er das Standard Verfahren Kopf x und n gleich 6L. Also das gibt die ersten sechs Elemente. Und ebenso, wenn Sie hier bemerken, I nicht zu n angeben gleich 6. Standardmäßig verwendet es sechs, glaube ich. Und dann, wenn ich eine gewisse angeben Wert, dann kann ich das auch sehen. Das ist also ein paar einfache Befehle und hier ist eine andere, die just-- gut ist, Ich can-- dies tatsächlich ein wenig komplexer, aber das wird einfach die Klasse jeder Spalte des Irisdatei. Also das wird Ihnen zeigen, was jeder von ihnen Säulen sind hinsichtlich ihrer Typen. So Kelch Länge numerisch ist, Kelchblattbreite numerisch ist. Alle diese Werte sind nur numerische denn Sie können aus diesen Daten sagen strukturieren sind alle werden numerisch. Und die Spalte Species wird ein Faktor sein. So normal, dass man denken würde das ist wie eine Zeichenkette. Aber wenn Sie nur tun irisSpecies, und dann werde ich Kopf 5 zu tun, und das wird zu drucken aus den ersten fünf Werten. Und dann bemerken diese Ebenen. Also das ist saying-- dies R Weg der mit kategorialen Variablen. Also anstatt nur mit Zeichenketten, es Stufen angibt, hat was diese Dinge sind. Also sagen wir mal irisSpecies 1. Also, was Sie hier tun möchten, ist, ich bin Untergruppen zu dieser Spezies Spalte. Also das nimmt der Arten Spalte und dann es Indizes, um das erste Element zu erhalten. So sollte diese Ihnen setosa. Und es gibt Ihnen auch hier Ebenen. So können Sie auch vergleichen können dies dem Zeichen setosa und das wird nicht TRUE, weil ein ist von einem anderen Typ als der andere. Oder ich denke, es ist wahr, weil R ist intelligenter als das. Und in diesem und dann sieht sagt, vielleicht ist das, was Sie wollen. Also, es wird das Zeichen sagen String setosa ist der gleiche wie dieser. Und dann ähnlich, können Sie auch einfach an diese wie so weiter. Also das ist nur eine Art von Kurzbefehle des Datensatzes. Also hier sind einige Datenexploration. Das ist also ein wenig mehr mit der Datenanalyse beteiligt. Und dies wird von einigen genommen Bootcamp in R für in Berkeley. So Bibliothek ausländische. Also werde ich in einem Laden Bibliothek, Außen heißt. So, das wird mir read.dta so an, dass ich dieses Datensatzes. Dieses wird in die gespeicherte aktuelle Arbeitsverzeichnis meiner Konsole. Also lasst uns einfach sehen, was das Arbeitsverzeichnis. Also hier ist mein Arbeitsverzeichnis. Und lesen Sie Punktdaten, diese was ist diese Datei zu sagen wird im Datenordner befinden Diese aktuellen Arbeitsverzeichnis. Und read.dta dies nicht ein Standardbefehl. Ich glaube, ich lud sie in bereits. IEI nahm ich bereits geladen dies. Aber so read.dta wird nicht um eine Standard-Befehl sein. Und das ist, warum Sie gehen zu müssen, sind in dieser Bibliothek zu laden package-- Dieses Paket namens ausländische. Und wenn Sie nicht haben, das Paket, ich glaube, ausländischen gehört zu den integrierten diejenigen. Ansonsten können Sie auch tun install.packages und dies wird das Paket zu installieren. Und dies wird Ihnen R. Äh, nein. Und dann werde ich einfach aufhören dies, weil ich es schon. Aber was ist wirklich nett zu R ist, dass der Paketverwaltung System ist sehr elegant. Denn es wird alles zu speichern wirklich sehr schön für Sie. Also in diesem Fall, es geht um zu speichern es, glaube ich, diese Bibliothek hier. Also immer wenn Sie wollen, Installieren neuer Pakete, es ist nur so einfach wie Dabei install.packages und R werden alle verwalten die Pakete für Sie. So müssen Sie nicht haben, etwas zu tun, in Python, wo Sie externe Paket haben Manager wie Papier Anaconda, wo Sie sind doing-- Sie die Installation Pakete außerhalb von Python und dann versuchen, sie selbst auszuführen. Also das ist wirklich schön so. Und install.packages erfordert Internet. Es dauert es von einem Server und das Repository, sammelt alle Pakete wird als CRAN. Und Sie können die Art Spiegel angeben Sie die Pakete herunterladen möchten. Also bin ich hier der Einnahme dieses Datensatzes. Ich lese es in der Verwendung dieser Funktion. Also lassen Sie mich gehen Sie vor und tun. Nehmen wir also an, dass Sie dieses Datensatzes haben und Sie unbedingt keine Ahnung, was es ist. Und das tatsächlich kommt ziemlich oft in der Branche wo Sie nur noch diese Tonnen und Tonnen von messy Dinge und sie sind unglaublich unbeschrifteten. Also hier habe ich diese Datensatz und ich weiß nicht, was es ist, so bin ich nur zeigt, check it out. Also werde ich den Kopf zuerst. So überprüfe ich den ersten sechs Spalten, was dieses Datensatzes ist. Das ist also Staat, pres04 und dann alle diese andere Art von Spalten. Und was ist interessant Hier, glaube ich, ist, dass man würde davon ausgehen, dass diese aussieht wie eine Art Wahl. Und ich denke, gerade aus Blick auf die Datei Name Dies ist eine Art von Sammlung von Daten über Kandidaten oder Wähler die für bestimmte Präsidenten gewählt oder Präsidenten-Kandidaten für die Wahl 2004. Hier ist also Werte 1, 2 so eine Art der Speicherung die Präsidenten-Kandidaten sind ihre Namen. In diesem Fall sieht es so aus sie sind nur ganzzahlige Werte. So 2004, Bush war es gegen Kerry, glaube ich. Und nun, sagen wir, Sie wissen einfach nicht, ob 1 entspricht Bush oder 2 entspricht oder Kerry und so weiter und so fort, oder? Und das ist, nur um mich, ein recht häufiges Problem. So was kann man in diesem Fall tun? Lassen Sie uns also lassen Sie diese Dinge. Zustand, ich gehe davon aus dieser kommt aus verschiedenen Staaten. PartyID, Einkommen. Schauen wir uns PartyID. Also vielleicht eine Sache, die Sie tun können Blick auf jede der Beobachtungen dass eine PartyID der Republikaner haben oder Demokrat oder so etwas. Also lasst uns einfach zu welchem ​​PartyID ist zu suchen. Also werde ich zu nehmen dat, und dann werde ich diese Dollarzeichen zu tun Betreiber, die ich zuvor nicht und dies wird zu gehen Teilmenge dieser Spalte. Und dann werde ich diese in den Kopf 20, nur um zu sehen, wie das aussieht. Also das ist nur ein Haufen von NA. Also mit anderen Worten, Sie haben fehlende Daten über diese Jungs. Aber Sie auch feststellen, diese dat PartyID ist ein Faktor, so gibt Ihnen verschiedene Kategorien. Also mit anderen Worten, kann PartyID nehmen Demokrat, Republikaner, Unabhängige, oder etwas anderes. Also lassen Sie uns fortfahren und lassen Sie uns zu sehen, welcher dieser ist-- oh, OK. Also werde ich der Teilmenge um PartyID und dann schauen, welche diejenigen sind Demokrat, zum Beispiel. Das wird Ihnen ein Boolean, eine riesige Boolean von WAHR und FALSCH. Und nun, sagen wir, ich möchte auf diese Jungs Teilmenge. Also das wird mein dat nehmen und Untergruppe zu welcher Beobachtungen haben PartyID Gleichen gleich Demokrat. Und das ist ziemlich lang, weil es gibt so viele von ihnen. So, jetzt werde ich dies in 20 leiten. Und wie Sie feststellen, gleich equals ist, dass Sie interessante bereits-- Sie auch einschließlich der nationalen Agenturen. Also in diesem Fall, können Sie immer noch nicht bekommen kann alle Informationen, denn jetzt haben Sie NA und Sie wollen einfach nur, um zu sehen, welche der Beobachtung entsprechen Demokrat und nicht diese fehlenden Werte selbst. Wie würden Sie diese NA loswerden? So, hier bin ich nur mit Hilfe der Aufwärts-Taste auf meiner Cursor und dann sagen, bewegen. Und hier werde ich einfach um is.na datpartyid sagen. Also das und und nehmen zwei Boolean Vektoren und sagen, es geht um sein TRUE und FALSE zum Beispiel. Also, es wird diese komponentenweise zu tun. So, hier bin ich da nehmen der Datenrahmen, der Teilmenge auf diejenigen, die Democrat entsprechen, und nehmen Sie einen von ihnen, die nicht NA. Also das sollte will-- Ihnen etwas. Mal sehen, is.na. Lassen Sie uns versuchen is.na datpartyid. Und das sollte geben Sie-- sorry-- nur einen booleschen Vektor. Und dann, weil es so lange, Ich werde zu 20 Teilmenge. OK. So, das sollte funktionieren. Und das wird man auch Trues sein. Ah, mein Fehler ist hier, dass ich I'm-- verwenden C ++ und R austauschbar, damit ich machen dieser Fehler die ganze Zeit. Das und Betreiber eigentlich die, die Sie möchten. Sie müssen nicht, um zwei verwenden möchten Et-Zeichen, nur ein einziges. OK. Also mal sehen. Also, um die subsetted wir PartyID wo sie sind Demokraten und sie sind nicht fehlende Werte. Und nun lassen Sie uns an die diejenigen, die sie gewählt haben. So scheint es, wie die meisten von ihnen stimmten für 1. Also werde ich weitermachen und sagen, das ist Kerry. Und in ähnlicher Weise können Sie auch gehen, um Republikaner und hoffentlich, das sollte Ihnen 2. Es ist nur eine Reihe von verschiedenen Spalten. Und in der Tat, es ist 2. So PartyID alle Republikaner, die meisten von ihnen stimmen über 2. So wie es scheint, nur indem man diese, Republikaner sein wird a very-- oder PartyID wird einen sehr sein großer Faktor bei der Bestimmung welche Kandidaten sie werde dafür stimmen. Und das ist offensichtlich wahr im Allgemeinen. Und das entspricht Ihren Intuition, natürlich. So scheint es, als wäre ich nicht mehr viel Zeit, so lassen Sie mich einfach weitermachen und zeigen ein paar schnelle Bilder. So, hier ist etwas, das leicht ist mehr mit Visualisierung kompliziert. So dass in diesem Fall ist dies eine ganz einfache Analyse nur die Überprüfung, was der Präsident von '04 ist. Also in diesem Fall, sagen wir, Sie wollte diese Frage zu beantworten. Also nehmen wir an, den Abstimmungs wissen wollten Verhalten in der 2004 Präsident Wahl und wie diese variiert je nach Rasse. Also nicht nur Sie wollen finden Sie im Stimmverhalten, aber Sie müssen für jede Teilmenge wollen Rasse und Art zusammenfassen, dass. Und du nur sagen kann dieses komplexen Schreibweise dass dies Art von immer verschwommen. So eine der fortgeschrittenen R Pakete, die auch Art ist der letzten heißt dplyr. So ist es dieser hier. Und ggg-- ggplot2 ist nur eine nette Weise des Handelns besser Visualisierungen als die eingebauten einem. So werde ich zum Laden diese beiden Bibliotheken. Und dann werde ich gehen vor und führen Sie diesen Befehl. Sie können nur behandeln Sie dies als eine Black Box. Was ist passiert, ist, dass dieses Rohr Betreiber ist in diesem Argument vorbei in hier. Also ich sage Gruppe von dat Rasse und der damalige Präsident 04. Und dann alle diese anderen Befehle sind Filterung und dann zusammenfasst wo ich tue Zahl und dann bin ich hier Plotten es. OK cool. Also lassen Sie uns weitermachen und zu sehen, wie das aussieht. Also, was hier passiert ist, dass ich nur aufgetragen jedem Rennen und dann die diejenigen, die sie gewählt haben. Und diese zwei verschiedenen Werte entsprechen 2 und 1. Wenn Sie mehr wollen elegant, können Sie auch nur angeben, dass 2 oder Kerry-- 2 ist Bush, und dann 1 Kerry. Und Sie haben auch können dass in der Legende. Und Sie können auch teilen diese Balkendiagramme. Denn eines ist dass, wenn Sie bemerken, Dies ist nicht sehr leicht zu identifizieren welche dieser beiden Werte größer sind. So eine Sache, würden Sie wollen zu tun ist, nehmen diese blauen Bereich und bewegen Sie es hier, so dass Sie können diese beiden nebeneinander zu vergleichen. Und ich denke, das ist etwas, was ich keine Zeit haben, um jetzt zu tun, aber das ist auch sehr einfach zu tun. Sie können nur zu schauen man-Seiten von ggplot. So können Sie einfach ggplot wie dass und in diesen man-Seite lesen. Also lassen Sie mich nur schnell zeigen Ihnen einige coole Dinge. Fahren wir fort und gehen zu-- nur einen Anwendung des maschinellen Lernens. Also lassen Sie uns sagen, dass wir diese drei Pakete, so werde ich diese in zu laden. Also das gerade druckt einige Informationen, nachdem ich eingelegt in der Sache. Also ich sage, diese read.csv, dieser Datensatz, und jetzt Ich werde weitermachen und schauen und sehen, was innerhalb dieses Datensatzes. So die ersten 20 Beobachtungen. So habe ich nur X1, X2, und Y. So scheint wie ein Haufen von diesen Werten von vielleicht 20 bis 80 oder so angefangen. Und dann in ähnlicher Weise für X2 und dann Diese Y scheint Etiketten 0 und 1 sein. Um dies zu überprüfen, ich kann nur tun, Übersichtsdaten X1. Und dann in ähnlicher Weise für all die anderen Spalten. So Zusammenfassend ist eine schnelle Möglichkeit, nur zeigen Ihnen, schnell Werte. Oh, sorry. Dies sollte man Y. sein So dass in diesem Fall gibt der Quantile, Mediane, maxes auch. In diesem Fall dataY, können Sie sehen, dass es nur geht auf 0 und 1 sein. Auch die mittlere sagt 0,6, bedeutet nur, dass es scheint, wie ich mehr als 1 s 0 s. Also lassen Sie mich vor und Show gehen Sie, wie das aussieht. Also ich bin gerade dabei, dies zu planen. Mal sehen, wie dies klar. Oh OK. OK. Also das ist, wie es aussieht. So wie es scheint, Gelb I angegeben als 0 und dann rot I als 1 s festgelegt. So, hier sieht es aus wie Label-Punkte, und es scheint, wie Sie wollte nur einige Art von Clustering zu diesem Thema. Und lassen Sie mich einfach weiter und Show gehen Sie einige dieser integrierten Funktionen. So, hier ist lm. Also das ist nur versuchen um eine Linie, dies zu passen. Also, was ist der beste Weg, dass ich eine Linie wie passen , dass sie am besten zu trennen diese Art von Clustering. Und im Idealfall, die Sie gerade sehen können dass ich all diese Befehle ausführen gerade und dann werde ich Sie voran und fügen Sie die Zeile. Also das scheint, wie der beste Vermutung. Es ist unter den besten eines, das minimiert der Fehler bei dem Versuch, diese Zeile passen. Offensichtlich sieht diese Art von gut, aber es ist nicht die beste. Und lineare Modelle, in Generell sein werden, wirklich toll für Theorie und gerechte Art Gebäudegrundlagen der Maschinen Lernen. Aber in der Praxis, sind Sie zu gehen wollen etwas allgemeinere tun. So können Sie nur versuchen kann laufen so etwas wie ein neuronales Netzwerk. Diese Dinge sind zunehmend häufiger. Und sie funktionieren einfach traumhaft für große Datenmengen. Also in diesem Fall, wir nur have-- Lassen Sie uns see-- wir nrow. So nrow ist nur, Anzahl der Zeilen. Also in diesem Fall, ich haben 100 Beobachtungen. Also lassen Sie mich gehen Sie vor und bilden ein neuronales Netzwerk. Also das ist wirklich schön da kann ich nur sagen nnet und dann werde ich Regression Y. So ist die Y ist, dass Spalte. Und dann Regression auf die anderen zwei Variablen. Also diese kürzer ist Notation für X1 und X2. Also lassen Sie uns fortfahren und führen Sie diese. Oh, sorry. Ich muss die ganze Sache laufen. Und das ist nur das Drucken Notation für wie schnell oder nicht schnell es konvergiert. So sieht es aus wie es hat konvergieren. Also lassen Sie mich vor und drucken gehen aus, wie das aussieht. Siehe hier ist das Bild, und hier ist, eine Kontur zeigt, wie gut es passt. Und das ist just-- Sie sehen können dies, dass dies sehr, sehr schön. Es könnte sogar sein, Überanpassung, aber Sie können auch entfallen diese mit anderen Techniken wie die Kreuzvalidierung. Und diese werden auch in R. gebaut Und lassen Sie mich nur zeigen, unterstützt Vektor-Maschine. Dies ist ein weiterer wirklich gemeinsame Technik des maschinellen Lernens. Es ist sehr ähnlich zu linearen Modelle, aber es verwendet, was ein Kernel-Methode aufgerufen. Und lassen Sie uns sehen, wie gut das tut. So ist dieses eine sehr ähnlich, wie es auch ein neuronales Netzwerk durchführt, aber es ist viel glatter. Und das wird auf der Basis von what-- wie SVMs Arbeit. So ist dies nur ein sehr kurzer Überblick über einige der eingebaute Funktionen Sie tun können und auch einige der Datenexploration. Also lassen Sie mich einfach weitermachen und gehen Sie zurück zu den Objektträgern. So offensichtlich ist dies nicht sehr umfangreich. Und das ist wirklich nur ein Teaser zeigt Ihnen, was Sie wirklich in R. tun Also, wenn Sie möchte nur um hier mehr zu lernen, sind eine Reihe von verschiedenen Ressourcen. Also, wenn Sie gern Lehrbücher sind oder du bist nur gern lesen Dinge online, dann ist dies ein fantastisches eins nach Hadley Wickham, der auch für alle diese wirklich cool Pakete. Wenn Sie gerne Videos sind, dann Berkeley hat eine wunderbare Bootcamp das ist several-- das ist irgendwie lang. Und es wird Ihnen fast lehren alles, was Sie möchten, um zu wissen, R. Und in ähnlicher Weise gibt es Codeacademy und alle diese anderen Art von interaktiven Websites hat. Sie sind auch immer common-- mehr und mehr üblich. Dies ist also sehr ähnlich Codeacademy. Und schließlich, wenn Sie gerade wollen Gemeinschaft und helfen, diese sind ein Haufen Dinge, die Sie gehen können. Natürlich haben wir noch Mailing-Listen verwenden, nur wie fast jeder andere Programmiersprache Gemeinschaft. Und #rstats ist dies unserer Twitter. Das ist eigentlich recht häufig. Und dann Benutzer! Ist nur unsere Konferenz. Und dann, natürlich, können Sie verwenden Sie alle diese Fragen und Dinge, wie Stack-Überlauf, Google und dann GitHub. Da die meisten dieser Pakete und eine Menge von der Community wird um die Entwicklung zentriert werden Code, weil es Open Source. Und es ist einfach richtig nett auf GitHub. Und schließlich können Sie mich kontaktieren, wenn Sie müssen nur alle kurze Fragen. So können Sie mir auf Twitter finden Sie hier, meine Website, und nur meine E-Mail. Hoffentlich war das something-- nur einen kurzen Teaser von dem, was R ist wirklich dazu in der Lage. Und hoffentlich, die Sie gerade sehen Sie sich diese drei Links und sehen, was Sie mehr tun können. Und ich denke, das ist nur darüber. Danke. [Applaus]