1 00:00:00,000 --> 00:00:00,750 2 00:00:00,750 --> 00:00:09,800 >> [MUZYKA GRY] 3 00:00:09,800 --> 00:00:13,014 4 00:00:13,014 --> 00:00:13,680 DUSTIN TRAN: Cześć. 5 00:00:13,680 --> 00:00:14,980 Nazywam się Dustin. 6 00:00:14,980 --> 00:00:18,419 Więc będę prezentacji Analiza danych w R. 7 00:00:18,419 --> 00:00:19,710 Tylko trochę o sobie. 8 00:00:19,710 --> 00:00:24,320 Obecnie jestem studentem w z nauk technicznych i Stosowanej. 9 00:00:24,320 --> 00:00:28,330 Studiuję przecięcie uczenie maszynowe i statystyki 10 00:00:28,330 --> 00:00:31,375 Analiza danych w tak R jest do tego, co tak naprawdę podstawowym 11 00:00:31,375 --> 00:00:33,790 Robię na co dzień. 12 00:00:33,790 --> 00:00:35,710 >> I R jest szczególnie dobre dla analizy danych 13 00:00:35,710 --> 00:00:39,310 bo to bardzo dobre dla prototypów. 14 00:00:39,310 --> 00:00:43,590 I zazwyczaj, kiedy robisz coś w rodzaju analizy danych, wiele problemów 15 00:00:43,590 --> 00:00:44,920 będą poznawczych. 16 00:00:44,920 --> 00:00:48,700 I tak po prostu chcesz mieć niektóre naprawdę dobry język, 17 00:00:48,700 --> 00:00:53,770 jest po prostu dobry sposób wbudowanej funkcji, w przeciwieństwie 18 00:00:53,770 --> 00:00:57,430 aby mając do czynienia z rzeczy niskim poziomie. 19 00:00:57,430 --> 00:01:01,040 Tak więc na początku, jestem po prostu przedstawić to, co jest R, dlaczego 20 00:01:01,040 --> 00:01:04,540 chcesz go używać, a następnie przejść do jakiegoś demo, 21 00:01:04,540 --> 00:01:07,060 i po prostu go stamtąd. 22 00:01:07,060 --> 00:01:08,150 >> Więc co to jest R? 23 00:01:08,150 --> 00:01:11,180 R jest po prostu język opracowany do obliczeń statystycznych 24 00:01:11,180 --> 00:01:12,450 i wizualizacji. 25 00:01:12,450 --> 00:01:16,000 Więc co to oznacza to, że to bardzo doskonały język 26 00:01:16,000 --> 00:01:22,400 dla każdego rodzaju rzeczy, która zajmuje się Niepewność i wizualizacji danych. 27 00:01:22,400 --> 00:01:24,850 Więc masz wszystko rozkłady prawdopodobieństwa. 28 00:01:24,850 --> 00:01:27,140 Nie będą wbudowanej funkcji. 29 00:01:27,140 --> 00:01:31,650 Będziesz mieć również doskonałe kreślenia pakiety. 30 00:01:31,650 --> 00:01:34,110 >> Python jest kolejnym konkurencyjnych Język danych. 31 00:01:34,110 --> 00:01:40,020 I jedno, że uważam, że R jest o wiele lepiej jest wizualizacja. 32 00:01:40,020 --> 00:01:45,200 Więc co można zobaczyć w demo jako dobrze jest po prostu bardzo intuicyjny język 33 00:01:45,200 --> 00:01:48,050 że po prostu działa bardzo dobrze. 34 00:01:48,050 --> 00:01:53,140 Jest również wolne i otwarte, jak to każdy inny dobry język chyba. 35 00:01:53,140 --> 00:01:55,440 >> I tu, kilka tylko słowa kluczowe rzucony na ciebie. 36 00:01:55,440 --> 00:02:00,450 Jest to dynamiczna, co oznacza, jeśli masz określony typ przypisane do obiektu 37 00:02:00,450 --> 00:02:02,025 nie będzie to po prostu zmienić go w locie. 38 00:02:02,025 --> 00:02:05,670 Jest leniwy, więc mądrze jak to robi obliczenia. 39 00:02:05,670 --> 00:02:12,250 Funkcjonalne, dzięki czemu można naprawdę działają opiera się funkcji tak anything-- 40 00:02:12,250 --> 00:02:16,910 każdy rodzaj manipulacji jesteś Czyniąc to, będzie opierać się funkcje. 41 00:02:16,910 --> 00:02:20,162 >> Operatorzy tak binarne np po prostu z natury są funkcje. 42 00:02:20,162 --> 00:02:21,870 I wszystko, co masz zamiar zrobić, to 43 00:02:21,870 --> 00:02:24,690 będzie spływać sama funkcje. 44 00:02:24,690 --> 00:02:27,140 A potem obiektowego, jak również. 45 00:02:27,140 --> 00:02:30,930 >> Więc tutaj jest działka XKCD. 46 00:02:30,930 --> 00:02:34,350 Nie tylko dlatego, że czuję się jak XKCD ma fundamentalne znaczenie dla każdego rodzaju 47 00:02:34,350 --> 00:02:37,770 prezentacji, ale dlatego, Czuję się jak to naprawdę 48 00:02:37,770 --> 00:02:42,160 młoty do tego stopnia, że ​​wiele czas, kiedy robisz coś w rodzaju danych 49 00:02:42,160 --> 00:02:46,570 Analiza, problemem nie jest tak bardzo, jak szybko biegnie, 50 00:02:46,570 --> 00:02:49,850 ale jak długo to będzie przejście do programowania zadania. 51 00:02:49,850 --> 00:02:54,112 Więc tutaj jest po prostu analizuje, czy Strategia lub b jest bardziej efektywne. 52 00:02:54,112 --> 00:02:55,820 To będzie coś, że jesteś 53 00:02:55,820 --> 00:02:58,290 będzie zajmować dużo się w sortowania języków niskopoziomowych 54 00:02:58,290 --> 00:03:03,440 gdzie masz do czynienia z wadami SEG, alokacja pamięci, pliki uruchamiania, 55 00:03:03,440 --> 00:03:05,270 nawet co wbudowanych funkcji. 56 00:03:05,270 --> 00:03:09,920 I to wszystko jest obsługiwane rzeczy bardzo, bardzo elegancko w R. 57 00:03:09,920 --> 00:03:12,839 >> Więc po prostu wbić ten Punkt, największym gardłem 58 00:03:12,839 --> 00:03:13,880 będzie poznawcze. 59 00:03:13,880 --> 00:03:17,341 Tak więc analiza danych jest bardzo trudne zagadnienie. 60 00:03:17,341 --> 00:03:19,340 Czy robisz uczenie maszynowe lub jesteś 61 00:03:19,340 --> 00:03:22,550 robi tylko jakieś Eksploracja danych podstawowa, 62 00:03:22,550 --> 00:03:25,290 nie chce mieć wziąć dokument 63 00:03:25,290 --> 00:03:27,440 a następnie skompilować coś za każdym razem 64 00:03:27,440 --> 00:03:31,010 chcesz zobaczyć, co kolumna wygląda, co szczególnie wpisy w matrycy 65 00:03:31,010 --> 00:03:32,195 wygląda. 66 00:03:32,195 --> 00:03:34,320 Więc po prostu chcesz mieć niektóre bardzo ładny interfejs 67 00:03:34,320 --> 00:03:37,740 można uruchomić prostą funkcję że indeksy na cokolwiek 68 00:03:37,740 --> 00:03:41,870 chcesz i po prostu uruchom go stamtąd. 69 00:03:41,870 --> 00:03:44,190 I trzeba domenę konkretne języki za to. 70 00:03:44,190 --> 00:03:51,750 I R będzie naprawdę pomóc zdefiniować problemu i rozwiązać go w ten sposób. 71 00:03:51,750 --> 00:03:58,690 >> Więc tutaj jest programowanie pokazując działki Popularność R, jak go nie ma w czasie. 72 00:03:58,690 --> 00:04:04,060 Więc jak widać, podobnie jak 2013 lub więc po prostu wysadzony ogromnie. 73 00:04:04,060 --> 00:04:09,570 I to było tylko dlatego, że ogromny trend w branży technologicznej 74 00:04:09,570 --> 00:04:10,590 o dużych danych. 75 00:04:10,590 --> 00:04:13,010 Ponadto, nie tylko technologia przemysł, ale naprawdę 76 00:04:13,010 --> 00:04:16,490 Przemysł, ponieważ każda that-- Wiele branż 77 00:04:16,490 --> 00:04:20,589 są swego rodzaju podstawą próby rozwiązania tych problemów. 78 00:04:20,589 --> 00:04:24,590 I zazwyczaj, może masz jakiś dobry Sposób mierzenia tych problemów 79 00:04:24,590 --> 00:04:29,720 lub nawet ich definiowania lub rozwiązywania ich pomocą danych. 80 00:04:29,720 --> 00:04:35,430 Więc myślę, że teraz jest 11 R najpopularniejszym językiem na TIOBE 81 00:04:35,430 --> 00:04:38,200 i to rośnie od tego czasu. 82 00:04:38,200 --> 00:04:40,740 83 00:04:40,740 --> 00:04:43,080 >> Więc oto kilka cechy R. Ma 84 00:04:43,080 --> 00:04:46,900 Ogromna ilość sztuk, dla wszystkich tych rzeczy. 85 00:04:46,900 --> 00:04:52,470 Więc za każdym razem masz pewne, większość problemów 86 00:04:52,470 --> 00:04:55,060 R będzie miał czas że funkcja dla Ciebie. 87 00:04:55,060 --> 00:04:58,520 Więc, czy chcesz zbudować jakąś maszynę 88 00:04:58,520 --> 00:05:02,770 nauki algorytm zwany Losowe Las lub drzewa decyzyjne, 89 00:05:02,770 --> 00:05:07,530 lub nawet starając się średnią Funkcja lub któregokolwiek z tych rzeczy, 90 00:05:07,530 --> 00:05:10,000 R będzie mieć. 91 00:05:10,000 --> 00:05:14,190 >> A jeśli nie dbasz o optymalizacja, jedna rzecz, która jest wspólna 92 00:05:14,190 --> 00:05:17,430 jest to, że po zakończeniu prototypowanie jakiś języku wysokiego poziomu, 93 00:05:17,430 --> 00:05:19,810 można rzucić, że in-- będziesz tylko port, który w ciągu 94 00:05:19,810 --> 00:05:21,550 w pewnym języku niskiego poziomu. 95 00:05:21,550 --> 00:05:26,090 Co jest dobre na temat badań jest to, że raz jesteś wykonane prototypy go można uruchomić C ++, 96 00:05:26,090 --> 00:05:29,510 lub Fortran, lub każdy z nich dolne szczebla bezpośrednio do R. 97 00:05:29,510 --> 00:05:32,320 Więc to jest naprawdę Nowością o R, 98 00:05:32,320 --> 00:05:35,930 jeśli naprawdę obchodzi Punkt optymalizacja. 99 00:05:35,930 --> 00:05:39,490 >> I to jest również bardzo dobra dla wizualizacji internetowych. 100 00:05:39,490 --> 00:05:43,530 Tak D3.js, na przykład, Myślę, że kolejne seminarium 101 00:05:43,530 --> 00:05:45,130 że przedstawiony dzisiaj. 102 00:05:45,130 --> 00:05:48,510 I to jest naprawdę niesamowite dla robi interaktywnych wizualizacji. 103 00:05:48,510 --> 00:05:54,460 I D3.js zakłada, że ​​masz pewnego rodzaju danych, które będą wykreślane 104 00:05:54,460 --> 00:05:58,080 i R to świetny sposób jest w stanie zrobić Analiza danych przed wyeksportować 105 00:05:58,080 --> 00:06:04,220 nad do D3.js lub nawet uruchomić Polecenia do samego R D3.js, 106 00:06:04,220 --> 00:06:08,240 jak również tych wszystkich inne biblioteki, jak również. 107 00:06:08,240 --> 00:06:13,041 >> Więc to było tylko wprowadzenie co to jest i dlaczego może R można go używać. 108 00:06:13,041 --> 00:06:14,790 Więc mam nadzieję, mam przekonany coś 109 00:06:14,790 --> 00:06:18,460 o po prostu staramy się zobaczyć, jak to jest. 110 00:06:18,460 --> 00:06:23,930 Więc mam zamiar iść do przodu i przejść Podstawy o niektórych obiektów R 111 00:06:23,930 --> 00:06:26,150 i to, co naprawdę można zrobić. 112 00:06:26,150 --> 00:06:29,690 >> Więc tutaj jest po prostu kilka poleceń matematycznych. 113 00:06:29,690 --> 00:06:35,000 Tak mówią you're-- chcesz zbudować sam język i chcesz po prostu 114 00:06:35,000 --> 00:06:38,080 mieć kilka różnych narzędzi. 115 00:06:38,080 --> 00:06:42,520 Każdy rodzaj pracy uważasz, że chcę to dość dużo będzie w R. 116 00:06:42,520 --> 00:06:44,150 >> Więc tutaj jest 2 plus 2. 117 00:06:44,150 --> 00:06:46,090 Oto 2 razy pi. 118 00:06:46,090 --> 00:06:51,870 R ma kilka wbudowanych stałych że będziesz często korzystać jak pi, e. 119 00:06:51,870 --> 00:06:56,230 >> A potem, oto 7 oraz runif, więc runif z 1. 120 00:06:56,230 --> 00:07:02,450 Jest to funkcja, która to generuje jedną losową uniform od 0 do 1. 121 00:07:02,450 --> 00:07:04,400 A jeszcze 3 do potęgi 4. 122 00:07:04,400 --> 00:07:06,430 Jest pierwiastki kwadratowe. 123 00:07:06,430 --> 00:07:07,270 >> Jest dziennika. 124 00:07:07,270 --> 00:07:14,500 Więc zalogować zrobi bazy wykładnicza sama. 125 00:07:14,500 --> 00:07:18,337 A potem, jeśli podasz bazę, a następnie możesz robić, co chcesz bazy. 126 00:07:18,337 --> 00:07:19,920 A to oto kilka innych poleceń. 127 00:07:19,920 --> 00:07:22,180 Więc masz 23 mod 2. 128 00:07:22,180 --> 00:07:24,910 Wtedy masz resztę. 129 00:07:24,910 --> 00:07:27,110 Wtedy masz naukowa Jeśli także notacji 130 00:07:27,110 --> 00:07:34,060 chcę zrobić po prostu więcej i bardziej skomplikowane rzeczy. 131 00:07:34,060 --> 00:07:37,320 >> Więc tutaj jest przypisanie. 132 00:07:37,320 --> 00:07:40,830 Tak więc typowe zadania w R jest zrobione ze strzałką 133 00:07:40,830 --> 00:07:43,440 więc jest to mniej niż, a następnie myślnik. 134 00:07:43,440 --> 00:07:47,250 Więc ja tylko przypisanie 3 zmiennej Val. 135 00:07:47,250 --> 00:07:50,160 >> A potem ja drukowania val a następnie wypisze trzy. 136 00:07:50,160 --> 00:07:53,920 Domyślnie w R tłumacza, to będzie drukować rzeczy dla Ciebie 137 00:07:53,920 --> 00:07:57,280 więc nie trzeba określać wydrukować val każdym razem, gdy chcesz coś wydrukować. 138 00:07:57,280 --> 00:08:00,200 Możesz po prostu zrobić val i to zrobi to za Ciebie. 139 00:08:00,200 --> 00:08:04,380 >> Ponadto, można użyć równa technicznie jako operator przypisania. 140 00:08:04,380 --> 00:08:07,190 Istnieją niewielkie subtelności pomiędzy pomocą strzałki 141 00:08:07,190 --> 00:08:10,730 Operator i równe operator przypisania. 142 00:08:10,730 --> 00:08:15,470 Głównie przez kongresowego, każdego po prostu użyć operatora strzałki. 143 00:08:15,470 --> 00:08:21,850 >> I tu, jestem przypisanie tego Zapis ukośne nazywa 1 dwukropek 6. 144 00:08:21,850 --> 00:08:26,010 To generuje wektor od 1 do 6. 145 00:08:26,010 --> 00:08:29,350 I to naprawdę miłe, bo wtedy po prostu przypisać wektor do val 146 00:08:29,350 --> 00:08:34,270 i że działa samodzielnie. 147 00:08:34,270 --> 00:08:37,799 >> Tak to już jest przejście z single-- bardzo intuicyjny danych 148 00:08:37,799 --> 00:08:41,070 Struktura tylko dwukrotną pewien rodzaj typu do wektora 149 00:08:41,070 --> 00:08:45,670 i które będzie zbierać wszystkie skalarne wartości dla Ciebie. 150 00:08:45,670 --> 00:08:50,770 Więc po przejściu z skalarne, to ma przedmiotów R i to jest wektor. 151 00:08:50,770 --> 00:08:55,610 Wektor jest każdy rodzaj zbiór tego samego typu. 152 00:08:55,610 --> 00:08:58,150 Więc oto kilka wektorów. 153 00:08:58,150 --> 00:08:59,800 >> Więc to jest numeryczny. 154 00:08:59,800 --> 00:09:02,440 R numeryczna jest sposobem na powiedzenie dwukrotnie. 155 00:09:02,440 --> 00:09:07,390 I tak przez Domyślnie każdy Numer będzie podwójna. 156 00:09:07,390 --> 00:09:13,150 >> Więc jeśli masz c 1,1, 3, ujemny 5,7 c jest funkcją. 157 00:09:13,150 --> 00:09:16,760 Ten skleja wszystkie trzy numery w wektor. 158 00:09:16,760 --> 00:09:19,619 I to tak, jeśli będzie być: można zauważyć 3 przez siebie, 159 00:09:19,619 --> 00:09:21,910 normalnie można zakładać, że to jest jak liczba całkowita, 160 00:09:21,910 --> 00:09:25,050 ale z powodu wszystkich wektorów są tego samego typu, 161 00:09:25,050 --> 00:09:28,660 jest to wektor deblu lub numeryczny w tym przypadku. 162 00:09:28,660 --> 00:09:34,920 >> rnorm jest funkcja, która generuje średnia normalne variables-- 163 00:09:34,920 --> 00:09:36,700 lub standardowe wartości normalnych. 164 00:09:36,700 --> 00:09:38,360 A ja określając dwa z nich. 165 00:09:38,360 --> 00:09:43,840 Więc robię rnorm 2, przypisując, że do deweloperów, a potem mam drukowania Devs. 166 00:09:43,840 --> 00:09:47,350 To są tylko dwa losowe wartości normalnych. 167 00:09:47,350 --> 00:09:50,060 >> A potem wskazówki, jeśli nie dbasz o liczbach. 168 00:09:50,060 --> 00:09:54,650 Więc to jest tylko o pamięć Przydział i zapisywanie rozmiar pamięci. 169 00:09:54,650 --> 00:10:01,460 Więc trzeba by dołączyć Twoje numery od stolicy L. 170 00:10:01,460 --> 00:10:04,170 >> Na ogół jest to Zapis R w historycznym 171 00:10:04,170 --> 00:10:06,940 coś zwane długa liczba całkowita. 172 00:10:06,940 --> 00:10:09,880 Tak więc większość czasu, będziesz mieć do czynienia z podwójnej. 173 00:10:09,880 --> 00:10:15,180 I jeśli kiedykolwiek będzie później na optymalizacji kodu, 174 00:10:15,180 --> 00:10:18,110 można po prostu dodać te L's później lub w trakcie jej 175 00:10:18,110 --> 00:10:22,280 jeśli jesteś jak prekognicyjnym o tym, co masz zamiar robić te zmienne. 176 00:10:22,280 --> 00:10:25,340 177 00:10:25,340 --> 00:10:26,890 >> Więc tutaj jest wektor znaków. 178 00:10:26,890 --> 00:10:31,440 Tak więc raz jeszcze, mam złączenie trzy ciągi tym czasie. 179 00:10:31,440 --> 00:10:36,230 Zauważ, że podwójne struny i pojedyncze struny są takie same w R. 180 00:10:36,230 --> 00:10:41,000 Więc mam Artur i Marvina i tak kiedy jestem drukowania go, wszystkie z nich 181 00:10:41,000 --> 00:10:43,210 zamiar pokazać podwójne struny. 182 00:10:43,210 --> 00:10:45,880 A jeśli chcesz także m.in. Ciąg pełne lub pojedyncze 183 00:10:45,880 --> 00:10:50,070 w swoich bohaterów, to możesz albo na przemian struny. 184 00:10:50,070 --> 00:10:53,540 >> Więc Marvina dla Drugi element, to jest 185 00:10:53,540 --> 00:10:56,380 będzie show-- cię Wystarczy podwójne struny 186 00:10:56,380 --> 00:10:59,050 a następnie jeden ciąg więc to jest zmienny. 187 00:10:59,050 --> 00:11:04,040 W przeciwnym razie, jeśli chcesz korzystać z dwukrotnie Operator ciąg w podwójnym sznurkiem 188 00:11:04,040 --> 00:11:07,090 kiedy deklarując ją, a następnie po prostu użyć operatora ucieczki. 189 00:11:07,090 --> 00:11:10,600 Więc robisz podwójną ciąg backslash. 190 00:11:10,600 --> 00:11:13,330 >> I w końcu, również mają wektory logiczne. 191 00:11:13,330 --> 00:11:15,890 Więc logical-- tak PRAWDA FAŁSZ, a oni 192 00:11:15,890 --> 00:11:18,880 będzie wszystkie litery. 193 00:11:18,880 --> 00:11:22,370 A potem znowu, jestem złączenie je, a następnie przypisanie ich do bools. 194 00:11:22,370 --> 00:11:24,590 Więc bools pokaże Ci PRAWDA, FAŁSZ, PRAWDA. 195 00:11:24,590 --> 00:11:28,280 196 00:11:28,280 --> 00:11:31,620 >> Więc tutaj jest wektorowy indeksowania. 197 00:11:31,620 --> 00:11:34,870 Tak więc na początku, I biorę function-- 198 00:11:34,870 --> 00:11:39,230 nazywany jest sequence-- Sekwencja od 2 do 12. 199 00:11:39,230 --> 00:11:42,490 I biorę sekwencję przez 2. 200 00:11:42,490 --> 00:11:46,660 Więc to będzie zrobić 2, 4, 6, 8, 10 i 12. 201 00:11:46,660 --> 00:11:50,080 A potem, jestem indeksowania dostać się do trzeciego elementu. 202 00:11:50,080 --> 00:11:55,770 >> Więc jedna rzecz, aby pamiętać, jest że indeksy R by od 1. 203 00:11:55,770 --> 00:12:00,550 Więc odstępach 3 ma dać Ci trzeci element. 204 00:12:00,550 --> 00:12:04,580 Jest to rodzaj różni się od innych Języki, gdzie zaczyna się od zera. 205 00:12:04,580 --> 00:12:09,780 Więc w C lub C ++, na przykład, jesteś dostanie czwarty element. 206 00:12:09,780 --> 00:12:13,280 >> I tu jest vals od 3 do 5. 207 00:12:13,280 --> 00:12:16,030 Więc jedna rzecz, która jest naprawdę fajne jest to, że Ciebie 208 00:12:16,030 --> 00:12:20,410 może generować zmienne tymczasowe wewnątrz a potem po prostu korzystać z nich na bieżąco. 209 00:12:20,410 --> 00:12:21,960 Więc tutaj jest 3 do 5. 210 00:12:21,960 --> 00:12:25,070 Więc jestem generowania wektora 3, 4 i 5, a następnie 211 00:12:25,070 --> 00:12:29,700 Jestem indeksowania uzyskać trzecią, czwarty i piąty elementy. 212 00:12:29,700 --> 00:12:32,280 >> Podobnie więc, można streszczenie tego po prostu zrobić 213 00:12:32,280 --> 00:12:35,280 każdy rodzaj wektora To daje indeksowanie. 214 00:12:35,280 --> 00:12:40,050 Więc tutaj jest vals a następnie elementy pierwszy, trzeci i szósty. 215 00:12:40,050 --> 00:12:42,800 A potem, jeśli chcesz zrobić uzupełnienie, 216 00:12:42,800 --> 00:12:45,210 więc po prostu zrobić minus potem, że będzie 217 00:12:45,210 --> 00:12:48,600 dam ci wszystko, co nie jest Po pierwsze, trzeci i szósty elementem. 218 00:12:48,600 --> 00:12:51,590 Tak więc będzie to 4, 8 i 10. 219 00:12:51,590 --> 00:12:54,380 >> A jeśli chcesz dostać nawet bardziej zaawansowany, 220 00:12:54,380 --> 00:12:57,610 można łączyć logiczne wektory. 221 00:12:57,610 --> 00:13:05,210 Tak więc wskaźnik ten będzie Ci Wektor ten Boolean długości 6. 222 00:13:05,210 --> 00:13:07,280 Więc rep PRAWDA przecinek trzy. 223 00:13:07,280 --> 00:13:09,680 Będzie to powtórzyć TRUE trzy razy. 224 00:13:09,680 --> 00:13:12,900 Więc to daje wektor PRAWDA, PRAWDA, PRAWDA. 225 00:13:12,900 --> 00:13:17,470 >> rep FAŁSZ 4-- to będzie ci wektor FAŁSZ FAŁSZ FAŁSZ FAŁSZ. 226 00:13:17,470 --> 00:13:21,280 A następnie c zamierza złączyć te dwa Boolean razem. 227 00:13:21,280 --> 00:13:24,090 Więc masz zamiar uzyskać trzy Trues a następnie cztery FALSEs. 228 00:13:24,090 --> 00:13:28,460 >> Tak, że kiedy vals indeksy, jesteś dostanie PRAWDA, PRAWDA, PRAWDA. 229 00:13:28,460 --> 00:13:31,420 Tak, że powie tak, Chcę te trzy elementy. 230 00:13:31,420 --> 00:13:33,520 A potem FAŁSZ, FAŁSZ, FAŁSZ FAŁSZ będzie 231 00:13:33,520 --> 00:13:37,140 powiedzieć nie, nie chcę tych elementów tak, to nie będzie ich zwrotu. 232 00:13:37,140 --> 00:13:41,490 >> I myślę, że nie ma tu właściwie literówka bo to jest mówiąc powtórz PRAWDA 3 233 00:13:41,490 --> 00:13:47,990 i powtórzyć FAŁSZ 4, i technicznie, ty tylko sześć elementów, więc powtórzyć FAŁSZ, 234 00:13:47,990 --> 00:13:50,470 należy powtórzyć FAŁSZ 3. 235 00:13:50,470 --> 00:13:55,260 Myślę, że R jest wystarczająco takie inteligentne że jeśli tylko określić cztery tutaj, a następnie 236 00:13:55,260 --> 00:13:56,630 nie będzie nawet błędu się. 237 00:13:56,630 --> 00:13:58,480 To po prostu dać ci tę wartość. 238 00:13:58,480 --> 00:14:00,970 Więc po prostu zignorować czwarty FAŁSZ. 239 00:14:00,970 --> 00:14:05,310 240 00:14:05,310 --> 00:14:09,270 >> Więc tutaj jest wektorowy przypisanie. 241 00:14:09,270 --> 00:14:15,480 Więc to po prostu ustawia set.seed-- nasion dla liczb pseudolosowych. 242 00:14:15,480 --> 00:14:20,110 Więc jestem nasienie do ustawiania 42, co oznacza, że ​​jeśli generować 243 00:14:20,110 --> 00:14:22,950 trzy losowo normalne wartości, a następnie, jeśli Ciebie 244 00:14:22,950 --> 00:14:27,400 uruchomić set.seed na własną rękę Komputer stosując tę ​​samą wartość 42, 245 00:14:27,400 --> 00:14:30,990 Następnie można również uzyskać Te same trzy losowe normalne. 246 00:14:30,990 --> 00:14:33,411 >> Więc to jest naprawdę dobry dla powtarzalności. 247 00:14:33,411 --> 00:14:35,910 Zazwyczaj, kiedy robisz niektóre rodzaj analizy naukowej, 248 00:14:35,910 --> 00:14:37,230 co chcesz ustawić nasienie. 249 00:14:37,230 --> 00:14:41,270 W ten sposób można po prostu inni naukowcy odtworzyć dokładnie ten sam kod, który 250 00:14:41,270 --> 00:14:44,790 zrobić, bo oni mają dokładną same zmienne losowe that-- lub losowo 251 00:14:44,790 --> 00:14:47,270 Wartości, które zostały podjęte, jak również. 252 00:14:47,270 --> 00:14:49,870 253 00:14:49,870 --> 00:14:53,910 >> I tak wektorowy cesja tutaj pokazuje odstępach 1 do 2. 254 00:14:53,910 --> 00:14:59,290 Więc zajmuje pierwsze dwa elementy w odstępach, a następnie przypisuje je do 0. 255 00:14:59,290 --> 00:15:03,940 A potem, można też po prostu zrobić Podobnie dzieje się z logicznych. 256 00:15:03,940 --> 00:15:09,340 >> Więc vals nie jest równa 0-- tej woli daje fałszywe wektorowych, FAŁSZ, PRAWDA 257 00:15:09,340 --> 00:15:10,350 w tym przypadku. 258 00:15:10,350 --> 00:15:13,770 A potem, to będzie mówić nic tych wskaźników, które są prawdziwe, 259 00:15:13,770 --> 00:15:15,270 to się dzieje, że przypisanie do 5. 260 00:15:15,270 --> 00:15:18,790 Więc to ma trzeci element tutaj, a następnie przypisuje go do 5. 261 00:15:18,790 --> 00:15:22,300 >> I to jest naprawdę ładne w porównaniu do języków niskopoziomowych 262 00:15:22,300 --> 00:15:25,560 gdzie trzeba użyć pętli robić wszystko to vectorized rzeczy 263 00:15:25,560 --> 00:15:30,281 bo to po prostu bardzo intuicyjne i to jest jeden nie-liniowej. 264 00:15:30,281 --> 00:15:32,030 A co to wielki temat Zapis wektorowy 265 00:15:32,030 --> 00:15:37,020 jest to, że w R, to coś w rodzaju wbudowana tak, że są one niemal tak szybko, 266 00:15:37,020 --> 00:15:42,490 jak robi się w języku niskiego poziomu, jak przeciwieństwie do tworzenia pętli w R 267 00:15:42,490 --> 00:15:46,317 , a następnie o to, aby zrobić Samo indeksowanie dynamiczny. 268 00:15:46,317 --> 00:15:48,900 I że będzie wolniejszy niż robi ten rodzaj vectorized rzeczy 269 00:15:48,900 --> 00:15:55,950 gdzie może to zrobić równolegle, gdzie to robi to w gwintowania zasadzie. 270 00:15:55,950 --> 00:15:58,650 >> Więc tutaj jest wektorowy operacji. 271 00:15:58,650 --> 00:16:04,920 Więc jestem generowania wartości od 1 do 3, przypisywania, że ​​aby vec1, 3 do 5, vec2, 272 00:16:04,920 --> 00:16:05,950 dodając je razem. 273 00:16:05,950 --> 00:16:11,490 To dodaje im składnikiem mądry tak to jest jeden plus 3, 2 plus 4, i tak dalej. 274 00:16:11,490 --> 00:16:13,330 >> vec1 razy vec2. 275 00:16:13,330 --> 00:16:16,110 To mnoży dwie wartości składnika mądry. 276 00:16:16,110 --> 00:16:21,830 Więc jest to jeden razy 3, 2 razy 4, a następnie 3 razy 5. 277 00:16:21,830 --> 00:16:28,250 >> A potem, podobnie można również zrobić comparisons-- porównań logicznych. 278 00:16:28,250 --> 00:16:33,640 Więc to FAŁSZ FAŁSZ PRAWDA, w tym 1 tak, ponieważ nie jest większa niż 3, 279 00:16:33,640 --> 00:16:35,920 2 nie jest wyższa niż 4. 280 00:16:35,920 --> 00:16:41,160 Jest to, jak sądzę, inny literówkę, 3 na pewno nie jest większa niż 5. 281 00:16:41,160 --> 00:16:41,660 Tak. 282 00:16:41,660 --> 00:16:45,770 A więc można po prostu zrobić wszystko te proste czynności 283 00:16:45,770 --> 00:16:48,350 ponieważ ich dziedziczone od samych klas. 284 00:16:48,350 --> 00:16:51,110 285 00:16:51,110 --> 00:16:52,580 >> Więc to był tylko wektorowych. 286 00:16:52,580 --> 00:16:56,530 I to jest jakby najbardziej podstawowym Obiekt R, ponieważ biorąc pod uwagę wektor, 287 00:16:56,530 --> 00:16:59,170 można tworzyć bardziej zaawansowane obiekty. 288 00:16:59,170 --> 00:17:00,560 >> Tak tu jest matryca. 289 00:17:00,560 --> 00:17:05,030 Jest to w zasadzie abstrakcji co matryca jest sama. 290 00:17:05,030 --> 00:17:10,099 Więc w tym przypadku, to trzy różne wektory, gdzie każdy z nich jest kolumna, 291 00:17:10,099 --> 00:17:12,710 lub można ją rozważyć w każdej z nich jest wiersz. 292 00:17:12,710 --> 00:17:18,250 >> Więc jestem przechowywania od 1 do macierzy 9, a potem mam określając 3 rzędy. 293 00:17:18,250 --> 00:17:23,364 Tak więc od 1 do 9 daje wektor 1, 2, 3, 4, 5, 6 i aż do 9. 294 00:17:23,364 --> 00:17:29,250 >> Jedną z rzeczy, również pamiętać, jest to, że Sklepy wartości R w formacie kolumny-dur. 295 00:17:29,250 --> 00:17:34,160 Więc innymi słowy, kiedy widzisz 1 do 9, to będzie przechowywać them-- 296 00:17:34,160 --> 00:17:36,370 to będzie 1, 2, 3 w pierwszej kolumnie 297 00:17:36,370 --> 00:17:38,510 i wtedy będzie to zrobić 4, 5, 6, w drugiej kolumnie 298 00:17:38,510 --> 00:17:41,440 i 7, 8, 9 w trzeciej kolumnie. 299 00:17:41,440 --> 00:17:45,570 >> A oto niektóre inne wspólne funkcje można wykorzystać. 300 00:17:45,570 --> 00:17:49,650 Tak słabe mat, to daje Wymiary macierzy. 301 00:17:49,650 --> 00:17:52,620 To będzie powrót wektor wymiaru. 302 00:17:52,620 --> 00:17:55,580 A więc w tym przypadku, ponieważ nasza matryca jest 3 przez 3, 303 00:17:55,580 --> 00:18:01,900 to się daje wektor numeryczny to 3 3. 304 00:18:01,900 --> 00:18:05,270 >> I tu właśnie pokazuje mnożenie macierzy. 305 00:18:05,270 --> 00:18:11,970 Więc zwykle, jeśli tylko zrobić asterisk-- więc mata gwiazdka mat-- 306 00:18:11,970 --> 00:18:15,380 to będzie Operacja składnikiem mądry 307 00:18:15,380 --> 00:18:17,300 i co się nazywa produkt Hadamard. 308 00:18:17,300 --> 00:18:21,310 Więc to zrobić każdy element składowy mądry. 309 00:18:21,310 --> 00:18:23,610 Jednakże, jeśli chcesz multiplication-- matrycy 310 00:18:23,610 --> 00:18:29,380 więc mnożąc pierwsze razy wierszy Pierwsza kolumna drugiej macierzy jest 311 00:18:29,380 --> 00:18:34,510 i tak on-- należy użyć operacja ta proc. 312 00:18:34,510 --> 00:18:38,110 >> A t maty jest tylko Operacja na transponowanie. 313 00:18:38,110 --> 00:18:42,590 Więc mówię wziąć transpozycji macierz, pomnożyć przez macierz 314 00:18:42,590 --> 00:18:43,090 Sam. 315 00:18:43,090 --> 00:18:45,006 I wtedy to będzie powróci do was kolejne 3 316 00:18:45,006 --> 00:18:50,700 o 3 macierzy projekcji Produkt, czego chcesz. 317 00:18:50,700 --> 00:18:53,750 >> I tak to było matrycy. 318 00:18:53,750 --> 00:18:56,020 Oto, co się nazywa ramka danych. 319 00:18:56,020 --> 00:19:00,780 Ramka danych można myśleć jako matrycy, ale w każdej kolumnie sam 320 00:19:00,780 --> 00:19:02,990 będzie innego typu. 321 00:19:02,990 --> 00:19:07,320 >> Więc co jest naprawdę fajne temat danych klatek, że w samej analizy danych, 322 00:19:07,320 --> 00:19:11,260 będziesz mieć to wszystko danych heterogenicznych i to wszystko naprawdę 323 00:19:11,260 --> 00:19:15,640 brudnych rzeczy, gdzie każda z kolumn same mogą być różnych typów. 324 00:19:15,640 --> 00:19:21,460 Więc mówię stworzyć ramka danych, czy ints od 1 do 3, 325 00:19:21,460 --> 00:19:24,750 a następnie również wektor znaków. 326 00:19:24,750 --> 00:19:28,470 Więc mogę indeksu przez Każdy z tych kolumn 327 00:19:28,470 --> 00:19:30,930 i wtedy będę miał same wartości. 328 00:19:30,930 --> 00:19:34,370 I można też zrobić jakiś operacji na ramkach danych. 329 00:19:34,370 --> 00:19:38,040 I przez większość czasu, gdy jesteś robi analizę danych lub jakąś 330 00:19:38,040 --> 00:19:42,042 z wyprzedzającym, będziesz pracy z tych strukturach 331 00:19:42,042 --> 00:19:44,250 gdzie każda kolumna będzie być innego typu. 332 00:19:44,250 --> 00:19:47,880 333 00:19:47,880 --> 00:19:52,970 >> Wreszcie, więc są to w zasadzie tylko cztery podstawowe obiekty w liście R. 334 00:19:52,970 --> 00:19:55,820 po prostu zebrać wszelkie inne obiekty chcesz. 335 00:19:55,820 --> 00:20:00,130 Tak będzie zapisać to na jednego zmienne, które można łatwo uzyskać dostęp. 336 00:20:00,130 --> 00:20:02,370 >> Więc tutaj, biorę listę. 337 00:20:02,370 --> 00:20:04,460 Mówię rzeczy równa 3. 338 00:20:04,460 --> 00:20:08,060 Więc mam zamiar mieć jeden element lista i to się nazywa rzeczy, 339 00:20:08,060 --> 00:20:10,570 a to będzie mieć wartość 3. 340 00:20:10,570 --> 00:20:13,140 >> Mogę również utworzyć macierz. 341 00:20:13,140 --> 00:20:17,970 Tak więc wynosi od 1 do 4 i końcowego rzędu jest równa 2, w 2 od 2 matrycy. 342 00:20:17,970 --> 00:20:20,270 Również na liście i to się nazywa mat. 343 00:20:20,270 --> 00:20:24,690 moreStuff, ciąg znaków, a jeszcze inna lista sama w sobie. 344 00:20:24,690 --> 00:20:27,710 >> Więc to jest lista, która 5 i niedźwiedzia. 345 00:20:27,710 --> 00:20:30,990 Tak więc wartość 5 i go ma ciąg znaków niedźwiedzia 346 00:20:30,990 --> 00:20:32,710 i to jest lista wewnątrz listy. 347 00:20:32,710 --> 00:20:35,965 Więc można mieć te rekurencyjne rzeczy gdzie 348 00:20:35,965 --> 00:20:38,230 masz another-- A wpisz w ramach typu. 349 00:20:38,230 --> 00:20:41,420 Podobnie więc, można mieć matrycę w innej matrycy i tak dalej. 350 00:20:41,420 --> 00:20:44,264 A lista jest po prostu dobry sposób zbierania i agregowania 351 00:20:44,264 --> 00:20:45,430 wszystkie te różne obiekty. 352 00:20:45,430 --> 00:20:50,210 353 00:20:50,210 --> 00:20:57,150 >> I w końcu, tutaj jest po prostu pomóc w przypadku to właśnie przeszedł bardzo szybko. 354 00:20:57,150 --> 00:21:01,350 Tak więc w każdej chwili jesteś zdezorientowany o jakiejś funkcji, 355 00:21:01,350 --> 00:21:03,510 można zrobić pomocy tej funkcji. 356 00:21:03,510 --> 00:21:07,120 Więc można zrobić pomocy macierzy lub macierz znak zapytania. 357 00:21:07,120 --> 00:21:11,430 Oraz pomoc i znak zapytania są po prostu skrót do tej samej rzeczy 358 00:21:11,430 --> 00:21:13,040 więc są aliasy. 359 00:21:13,040 --> 00:21:16,820 >> lm jest funkcja po prostu robi model liniowy. 360 00:21:16,820 --> 00:21:20,340 Ale jeśli po prostu nie mają pojęcia, w jaki sposób Prace można po prostu zrobić pomocy lm 361 00:21:20,340 --> 00:21:24,610 i że dam ci trochę Rodzaj dokumentacji, 362 00:21:24,610 --> 00:21:27,960 wygląda trochę jak Strona człowiek w Uniksie, gdzie 363 00:21:27,960 --> 00:21:34,210 masz krótki opis tego, co tak, to jakie są jego argumenty są, 364 00:21:34,210 --> 00:21:38,850 co to zwraca, i tylko wskazówki, jak z niego korzystać, a niektóre przykłady, jak również. 365 00:21:38,850 --> 00:21:41,680 366 00:21:41,680 --> 00:21:52,890 >> Więc pozwól mi iść do przodu i pokaż niektóre demo za pomocą R. OK. 367 00:21:52,890 --> 00:21:55,470 Poszedłem więc na bardzo szybko tylko dane 368 00:21:55,470 --> 00:21:59,440 struktury i jakiś op-- niektórych operacji. 369 00:21:59,440 --> 00:22:02,960 Oto niektóre funkcje. 370 00:22:02,960 --> 00:22:06,750 >> Więc jestem po prostu w celu zdefiniowania funkcji. 371 00:22:06,750 --> 00:22:09,970 Więc jestem również za pomocą Operator o przydział, 372 00:22:09,970 --> 00:22:12,610 a następnie mówię zadeklarować ją jako funkcję. 373 00:22:12,610 --> 00:22:14,140 I to ma wartość x. 374 00:22:14,140 --> 00:22:18,210 Więc to jest jakaś wartość ma i mam zamiar wrócić x siebie. 375 00:22:18,210 --> 00:22:20,840 Więc to jest funkcja tożsamości. 376 00:22:20,840 --> 00:22:23,670 >> A co jest fajnego w tym w porównaniu z innymi językami 377 00:22:23,670 --> 00:22:26,330 a drugi na niskim poziomie Języki to, że x 378 00:22:26,330 --> 00:22:29,350 może być dowolnego typu samego i będzie to powrót tego typu. 379 00:22:29,350 --> 00:22:35,251 Więc może imagine-- więc niech ja po prostu uruchomić to szybko. 380 00:22:35,251 --> 00:22:35,750 Przepraszam. 381 00:22:35,750 --> 00:22:40,300 >> Więc jedna rzecz, należy również wspomnieć, jest to, że ten edytor używam 382 00:22:40,300 --> 00:22:41,380 nazywa rstudio. 383 00:22:41,380 --> 00:22:44,389 To jest to, co się nazywa IDE. 384 00:22:44,389 --> 00:22:46,180 I jedna rzecz, która jest naprawdę miło o tym 385 00:22:46,180 --> 00:22:51,500 jest to, że zawiera wiele rzeczy, które chcę zrobić sama w R 386 00:22:51,500 --> 00:22:53,180 po prostu bardzo intuicyjnie. 387 00:22:53,180 --> 00:22:55,550 >> Więc tutaj jest konsola tłumacza. 388 00:22:55,550 --> 00:23:02,160 Podobnie więc, można również uzyskać w tym Konsola surowe prostu wykonując R. kapitału 389 00:23:02,160 --> 00:23:05,630 I to jest dokładnie to, samo, jak w konsoli. 390 00:23:05,630 --> 00:23:12,210 Więc może po prostu zrobić id funkcji x, x, x. 391 00:23:12,210 --> 00:23:16,130 I then-- a następnie, że będzie dobrze sam. 392 00:23:16,130 --> 00:23:19,200 393 00:23:19,200 --> 00:23:21,740 >> Więc rstudio jest wielki ponieważ posiada konsolę. 394 00:23:21,740 --> 00:23:25,360 Posiada również dokumenty chcesz pracować na. 395 00:23:25,360 --> 00:23:28,629 I to ma zmienne że można zobaczyć w środowisku. 396 00:23:28,629 --> 00:23:30,420 A potem, jeśli masz zrobić działek, a następnie ci 397 00:23:30,420 --> 00:23:33,730 może po prostu zobaczyć go tutaj, w przeciwieństwie do zarządzania, wszystkie te różne okna 398 00:23:33,730 --> 00:23:35,940 przez nich samych. 399 00:23:35,940 --> 00:23:40,530 >> I rzeczywiście osobiście używać Vima, ale poczuć się jak rstudio jest doskonała tylko 400 00:23:40,530 --> 00:23:44,640 uzyskania dobry pomysł jak można wykorzystać R. Zazwyczaj 401 00:23:44,640 --> 00:23:47,040 kiedy starasz się nauczyć się nowego zadania, 402 00:23:47,040 --> 00:23:49,590 nie chcesz, aby obsłużyć zbyt wiele rzeczy na raz. 403 00:23:49,590 --> 00:23:53,120 Więc R jest tylko very-- rstudio Jest to bardzo dobry sposób uczenia R 404 00:23:53,120 --> 00:23:56,760 bez konieczności zajmowania wszystkie te inne rzeczy. 405 00:23:56,760 --> 00:23:58,600 >> Więc biegnę id komentarzy. 406 00:23:58,600 --> 00:24:00,090 Zwraca To cześć. 407 00:24:00,090 --> 00:24:01,740 id 123. 408 00:24:01,740 --> 00:24:04,610 Oto wektor liczb całkowitych. 409 00:24:04,610 --> 00:24:08,620 Więc podobnie, ponieważ można podejmować jakieś wartości, 410 00:24:08,620 --> 00:24:16,060 możesz zrobić powrocie id x tak zwraca 1234 i 5. 411 00:24:16,060 --> 00:24:22,210 >> I niech mi tylko pokazać, że jest to faktycznie całkowitą. 412 00:24:22,210 --> 00:24:28,800 I podobnie, jeśli nie klasę id x, to będzie liczbą całkowitą. 413 00:24:28,800 --> 00:24:34,170 A potem, można również porównać dwa i to prawda. 414 00:24:34,170 --> 00:24:38,350 Jestem więc sprawdzenie, czy identyfikator x równa jest równa x i zawiadomienia 415 00:24:38,350 --> 00:24:39,760 to, że daje dwa Trues. 416 00:24:39,760 --> 00:24:44,280 Więc to nie mówi, są dwa obiekty identyczne, 417 00:24:44,280 --> 00:24:46,845 a każdy z zapisów w ciągu wektory identyczne. 418 00:24:46,845 --> 00:24:50,000 419 00:24:50,000 --> 00:24:52,090 >> Oto bounded.compare. 420 00:24:52,090 --> 00:24:58,470 Więc to jest nieco bardziej skomplikowana w tym, że ma jeśli warunek i inni 421 00:24:58,470 --> 00:25:00,960 a następnie trzeba dwojga argumenty na raz. 422 00:25:00,960 --> 00:25:02,640 Tak więc x jest innego typu. 423 00:25:02,640 --> 00:25:06,280 I mówię to, Drugi argument jest. 424 00:25:06,280 --> 00:25:08,380 To może być cokolwiek, jak również. 425 00:25:08,380 --> 00:25:12,490 Ale domyślnie, to zajmie 5, jeśli nie podasz nic. 426 00:25:12,490 --> 00:25:16,730 >> Więc mam zamiar powiedzieć, jeśli x jest większe niż. 427 00:25:16,730 --> 00:25:19,220 Więc jeśli nie podasz, to mówi, że jeśli x jest większy niż 5, 428 00:25:19,220 --> 00:25:20,470 potem mam zamiar wrócić PRAWDA. 429 00:25:20,470 --> 00:25:23,230 innego, mam zamiar wrócić FAŁSZ. 430 00:25:23,230 --> 00:25:24,870 Więc pozwól mi iść do przodu i określenie tego. 431 00:25:24,870 --> 00:25:30,600 432 00:25:30,600 --> 00:25:34,550 >> A teraz mam zamiar uruchomić bounded.compare 3. 433 00:25:34,550 --> 00:25:39,150 Tak mówi się 3 mniej than-- jest większa niż 3 5. 434 00:25:39,150 --> 00:25:41,830 Nie, to nie jest tak FAŁSZ. 435 00:25:41,830 --> 00:25:46,550 >> I bounded.compare 3 i zamierzam porównać go za pomocą równa 2. 436 00:25:46,550 --> 00:25:50,700 Więc teraz mówię tak, teraz ja chcą być coś innego. 437 00:25:50,700 --> 00:25:52,750 Więc mam zamiar powiedzieć, powinny być dwa. 438 00:25:52,750 --> 00:25:56,640 >> Mogę albo zrobić tego rodzaju Zapis lub mówię równa 2. 439 00:25:56,640 --> 00:25:58,720 To jest bardziej czytelny na tym, że kiedy jesteś 440 00:25:58,720 --> 00:26:01,450 patrząc na naprawdę te skomplikowane funkcje, które 441 00:26:01,450 --> 00:26:08,110 podjąć i to wielokrotnego arguments-- może być tylko, że dziesiątki oftentimes-- 442 00:26:08,110 --> 00:26:11,140 równa 2 jest bardziej czytelny dla Ci więc, że później w przyszłości 443 00:26:11,140 --> 00:26:13,020 będziesz wiedzieć, co robisz. 444 00:26:13,020 --> 00:26:17,120 >> Więc w tym przypadku, jestem powiedzenie 3 większy niż 2. 445 00:26:17,120 --> 00:26:18,270 Tak to jest. 446 00:26:18,270 --> 00:26:22,350 I podobnie, może po prostu usunąć to i powiedzieć, jest większa niż 2 3 447 00:26:22,350 --> 00:26:23,440 gdzie wynosi 2. 448 00:26:23,440 --> 00:26:26,230 I to jest również prawdą. 449 00:26:26,230 --> 00:26:26,730 Tak? 450 00:26:26,730 --> 00:26:29,670 >> PUBLICZNOŚCI: Czy ty wykonywanie linia po linii? 451 00:26:29,670 --> 00:26:30,670 >> DUSTIN TRAN: Tak, jestem. 452 00:26:30,670 --> 00:26:33,900 Więc to, co robię tutaj jest biorąc ten tekst document-- 453 00:26:33,900 --> 00:26:39,825 i co to wielki temat rstudio jest to, że Mogę tylko uruchomić short-- klawisz skrótu. 454 00:26:39,825 --> 00:26:41,820 Więc robię sterowania-Enter. 455 00:26:41,820 --> 00:26:44,850 >> A potem zabieram linia w dokumencie tekstowym 456 00:26:44,850 --> 00:26:46,710 a następnie umieszczenie w konsoli. 457 00:26:46,710 --> 00:26:50,800 Więc mówię, bounded.compare i robię Control-X. 458 00:26:50,800 --> 00:26:52,540 Więc może po prostu nie działają również tutaj. 459 00:26:52,540 --> 00:26:54,920 A potem, że wezmę linii, a następnie umieścić go tutaj. 460 00:26:54,920 --> 00:26:57,900 I wtedy podobnie, mogę działają tutaj. 461 00:26:57,900 --> 00:27:04,630 I to będzie po prostu zachować definiowania linie do konsoli tak. 462 00:27:04,630 --> 00:27:10,690 >> A jeśli również zauważyć kręcone szelki są tam podobnie jak w składni C. 463 00:27:10,690 --> 00:27:13,910 X-- jeśli jeśli warunek jest również zamiar użyć nawiasów, a następnie 464 00:27:13,910 --> 00:27:15,350 możesz użyć innego. 465 00:27:15,350 --> 00:27:17,496 Kolejnym z nich jest inny, jeśli. 466 00:27:17,496 --> 00:27:21,440 Więc to będzie x wynosi równa, na przykład. 467 00:27:21,440 --> 00:27:24,190 468 00:27:24,190 --> 00:27:26,350 A potem będę coś tu wrócić. 469 00:27:26,350 --> 00:27:29,490 >> Zauważ, że istnieją dwa różne rzeczy tutaj, że się dzieje. 470 00:27:29,490 --> 00:27:34,360 Jednym z nich jest, że tu jestem, określając Zwraca wartość PRAWDA. 471 00:27:34,360 --> 00:27:35,950 Tutaj Mówię tylko x. 472 00:27:35,950 --> 00:27:39,970 Więc R będzie zazwyczaj domyślnie przyjąć ostatnią arguments-- 473 00:27:39,970 --> 00:27:43,510 lub podjąć ostatnią linię kodu, i to będzie, co to wrócił. 474 00:27:43,510 --> 00:27:46,920 Więc to same coś jak robi powrotu x. 475 00:27:46,920 --> 00:27:49,450 476 00:27:49,450 --> 00:27:50,540 >> I po prostu pokazać. 477 00:27:50,540 --> 00:27:54,000 478 00:27:54,000 --> 00:27:57,052 A potem, to będzie działać tak po prostu. 479 00:27:57,052 --> 00:27:58,260 Więc pozwól mi kontynuować ten. 480 00:27:58,260 --> 00:28:00,630 >> Więc else if. 481 00:28:00,630 --> 00:28:04,060 I naprawdę, mogę wrócić coś, chciałbym. 482 00:28:04,060 --> 00:28:06,680 Tak więc nie trzeba nawet powrotne Boolean cały czas, 483 00:28:06,680 --> 00:28:08,410 Może po prostu coś innego powrócić. 484 00:28:08,410 --> 00:28:10,670 Więc mogę zrobić niedźwiedzia powrotu. 485 00:28:10,670 --> 00:28:12,989 >> Więc jeśli x równa jest równa, to będzie powrót misia. 486 00:28:12,989 --> 00:28:14,530 W przeciwnym razie, to się zwróci TRUE. 487 00:28:14,530 --> 00:28:19,310 Mogę też zrobić wektor czy naprawdę coś. 488 00:28:19,310 --> 00:28:22,210 >> I zwykle w statycznie Języki na maszynie, 489 00:28:22,210 --> 00:28:23,840 trzeba by określić typ tutaj. 490 00:28:23,840 --> 00:28:25,750 I zauważ, że to może być po prostu nic. 491 00:28:25,750 --> 00:28:32,400 I R jest na tyle inteligentny, że to po prostu to zrobić i będzie dobrze. 492 00:28:32,400 --> 00:28:33,620 >> Więc pozwól, że określenie tego. 493 00:28:33,620 --> 00:28:39,460 494 00:28:39,460 --> 00:28:41,230 Unexpected-- och przepraszam. 495 00:28:41,230 --> 00:28:44,336 Powinno tu być nawias klamrowy. 496 00:28:44,336 --> 00:28:44,836 OK. 497 00:28:44,836 --> 00:28:45,336 Cool. 498 00:28:45,336 --> 00:28:52,580 499 00:28:52,580 --> 00:28:54,530 Dobrze. 500 00:28:54,530 --> 00:28:58,250 Teraz porównajmy 3 i wynosi 3. 501 00:28:58,250 --> 00:29:01,860 Tak powinno return-- yeah-- niedźwiedzia wartości. 502 00:29:01,860 --> 00:29:06,740 >> Więc teraz bardziej ogólnego, jest to, jak co z innymi strukturami danych. 503 00:29:06,740 --> 00:29:09,110 Więc trzeba tę funkcję. 504 00:29:09,110 --> 00:29:15,360 To będzie działać na każdym rodzaju wartości jak 3 lub numeryczne, 505 00:29:15,360 --> 00:29:17,500 innymi słowy, podwójne. 506 00:29:17,500 --> 00:29:19,330 >> Ale to, co o czymś takim wektorze. 507 00:29:19,330 --> 00:29:27,750 Więc co się dzieje, jeśli do-- więc jestem zamierza przypisać val do, powiedzmy, 4 do 6. 508 00:29:27,750 --> 00:29:31,640 Więc jeśli wrócę to, to jest wektor z 4, 5, 6. 509 00:29:31,640 --> 00:29:34,935 >> Teraz zobaczmy, co się stanie, jeśli to zrobię bounded.compare val. 510 00:29:34,935 --> 00:29:37,680 511 00:29:37,680 --> 00:29:42,450 Więc to jest zamiar dać 15 1251. 512 00:29:42,450 --> 00:29:46,440 Więc innymi słowy, to mówi jeśli spojrzeć na tego warunku 513 00:29:46,440 --> 00:29:50,040 tak mówi x jest mniejsza niż lub czegoś. 514 00:29:50,040 --> 00:29:51,880 Więc to jest trochę mylące, bo teraz 515 00:29:51,880 --> 00:29:53,379 po prostu nie wiem, co się dzieje. 516 00:29:53,379 --> 00:29:58,690 Sądzę więc, że jedną rzecz, która jest naprawdę dobrze tylko próbuje debug 517 00:29:58,690 --> 00:30:04,600 jest to, że można po prostu zrobić val jest większa ni i zobaczyć, co się tam dzieje. 518 00:30:04,600 --> 00:30:09,720 >> Więc val-- jest domyślnie 5 tak Zróbmy Val większy niż 5. 519 00:30:09,720 --> 00:30:14,280 Więc to jest wektor false false PRAWDA. 520 00:30:14,280 --> 00:30:17,206 Więc teraz, kiedy patrzysz na tego, to będzie powiedzieć, czy, 521 00:30:17,206 --> 00:30:20,080 i wtedy to będzie ci to dać jest wektorem false false PRAWDA. 522 00:30:20,080 --> 00:30:23,450 >> Więc kiedy przechodzą to na R, R nie ma pojęcia, co robisz. 523 00:30:23,450 --> 00:30:26,650 Dlatego, że spodziewa się, jeden singiel Wartość, która jest logiczna, a teraz 524 00:30:26,650 --> 00:30:29,420 dajesz mu wektor logicznych. 525 00:30:29,420 --> 00:30:31,970 Więc domyślnie R jest po prostu powiedzieć, co do cholery, 526 00:30:31,970 --> 00:30:35,440 Mam zamiar założyć, że jesteś zamiar wziąć pierwszy element tutaj. 527 00:30:35,440 --> 00:30:38,320 Więc mam zamiar say-- idę przyjąć, że jest to FAŁSZ. 528 00:30:38,320 --> 00:30:40,890 Tak to się mówi Nie, to nie jest w porządku. 529 00:30:40,890 --> 00:30:45,246 >> Podobnie, to będzie być równa równa val. 530 00:30:45,246 --> 00:30:47,244 Nie, przykro 5. 531 00:30:47,244 --> 00:30:48,910 I to też będzie fałszywe, jak również. 532 00:30:48,910 --> 00:30:52,410 Więc to będzie, że nie, To nieprawda, jak również tak, że to 533 00:30:52,410 --> 00:30:53,680 powróci ten ostatni. 534 00:30:53,680 --> 00:30:56,420 535 00:30:56,420 --> 00:31:01,360 >> Więc to jest albo dobre albo złe rzeczy, w zależności od sposobu go zobaczyć. 536 00:31:01,360 --> 00:31:05,104 Bo gdy jesteś tworzenia tych funkcji, 537 00:31:05,104 --> 00:31:06,770 w rzeczywistości nie wiedzą, co się dzieje. 538 00:31:06,770 --> 00:31:10,210 Więc czasami, że chcesz błąd, a może chcesz po prostu ostrzeżenie. 539 00:31:10,210 --> 00:31:12,160 W tym przypadku, R nie zrobić. 540 00:31:12,160 --> 00:31:14,300 Więc to jest naprawdę do Ci, co opiera się 541 00:31:14,300 --> 00:31:17,310 myślisz, że język powinien zrobić w tym przypadku 542 00:31:17,310 --> 00:31:22,920 jeśli przekażemy wektora logicznych kiedy robisz, jeśli stanie. 543 00:31:22,920 --> 00:31:31,733 >> Więc powiedzmy, że masz oryginalny jednym z, jeśli inny TRUE i jesteś 544 00:31:31,733 --> 00:31:34,190 powróci FAŁSZ. 545 00:31:34,190 --> 00:31:39,300 Tak więc jednym ze sposobów abstrahowania to znaczy ja 546 00:31:39,300 --> 00:31:41,530 nie trzeba nawet tego warunku rzeczy. 547 00:31:41,530 --> 00:31:47,220 Inną rzeczą, jaką mogę zrobić, to po prostu powrót samych wartości. 548 00:31:47,220 --> 00:31:53,240 Tak więc, jeśli zauważy, jeśli Ciebie Czy Val jest większa niż 5, 549 00:31:53,240 --> 00:31:56,350 to będzie powrót wektor false false PRAWDA. 550 00:31:56,350 --> 00:31:58,850 >> Być może to jest to, czego chcą za bounded.compare. 551 00:31:58,850 --> 00:32:02,940 Chcesz zwrócić wektor logicznych gdzie porównuje każdej wartości 552 00:32:02,940 --> 00:32:04,190 do siebie. 553 00:32:04,190 --> 00:32:11,165 Więc może po prostu nie bounded.compare Funkcja x, wynosi 5. 554 00:32:11,165 --> 00:32:13,322 555 00:32:13,322 --> 00:32:15,363 I wtedy zamiast robić tego, czy stan inny, 556 00:32:15,363 --> 00:32:21,430 Idę do powrotu x jest większe niż 5. 557 00:32:21,430 --> 00:32:23,620 Więc jeśli to prawda, to to się zwróci TRUE. 558 00:32:23,620 --> 00:32:26,830 A jeśli nie, to powróci FAŁSZ. 559 00:32:26,830 --> 00:32:30,880 >> I to będzie pracować dla każda z tych struktur. 560 00:32:30,880 --> 00:32:41,450 Więc mogę bounded.compare c 1 6 lub 9 i mam zamiar powiedzieć, równa 6, 561 00:32:41,450 --> 00:32:42,799 na przykład. 562 00:32:42,799 --> 00:32:44,840 I wtedy to będzie daje prawo Boolean 563 00:32:44,840 --> 00:32:48,240 Wektor, że jesteś projektowania. 564 00:32:48,240 --> 00:32:50,660 >> To są tylko funkcje a teraz niech mi tylko 565 00:32:50,660 --> 00:32:54,980 pokazać kilka interaktywne wizualizacje. 566 00:32:54,980 --> 00:32:59,700 Nie sądzę, że rzeczywiście mają Wi-Fi tutaj tak powiem po prostu iść do przodu 567 00:32:59,700 --> 00:33:01,970 i pominąć ten jeden chyba. 568 00:33:01,970 --> 00:33:05,260 >> Ale jedna rzecz, która jest cool jest jednak, że jeśli tylko 569 00:33:05,260 --> 00:33:09,600 chcemy przetestować kilka różne komendy danych, 570 00:33:09,600 --> 00:33:13,320 istnieje kilka różnych zestawów danych które są już fabrycznie w R. 571 00:33:13,320 --> 00:33:15,770 Tak więc jednym z nich jest zwany zestaw danych tęczówki. 572 00:33:15,770 --> 00:33:18,910 Jest to jeden z najbardziej znanych te w uczeniu maszynowym. 573 00:33:18,910 --> 00:33:23,350 Będziesz zazwyczaj po prostu zrobić jakąś przypadki testowe, aby sprawdzić, czy kod działa. 574 00:33:23,350 --> 00:33:27,520 Więc po prostu sprawdzić, co tęczówka. 575 00:33:27,520 --> 00:33:33,130 >> Więc to, co się dzieje jako ramka danych. 576 00:33:33,130 --> 00:33:36,000 A to niby długo, ponieważ Ja po prostu wydrukować tęczówkę. 577 00:33:36,000 --> 00:33:38,810 To drukowanie całą rzecz. 578 00:33:38,810 --> 00:33:42,830 Więc to ma te wszystkie różne nazwy. 579 00:33:42,830 --> 00:33:45,505 Więc tęczówka kolekcji różnych kwiatów. 580 00:33:45,505 --> 00:33:48,830 W tym przypadku, to mówi Ci gatunki nim, 581 00:33:48,830 --> 00:33:54,760 wszystkich tych różnych szerokościach Długości Sepal i płatka. 582 00:33:54,760 --> 00:33:58,880 >> I tak zazwyczaj, gdy chcesz wydrukować tęczówki, 583 00:33:58,880 --> 00:34:03,680 na przykład, że nie chcesz go mieć to wszystko dlatego, że może przejąć 584 00:34:03,680 --> 00:34:05,190 cała konsola. 585 00:34:05,190 --> 00:34:09,280 Więc jedna rzecz, która jest naprawdę miło jest funkcja głowy. 586 00:34:09,280 --> 00:34:12,929 Więc jeśli po prostu zrobić głowę tęczówki, to daje 587 00:34:12,929 --> 00:34:17,389 pierwsze pięć rzędów lub sześciu myślę. 588 00:34:17,389 --> 00:34:19,909 A potem jak ci, można po prostu określić tutaj. 589 00:34:19,909 --> 00:34:22,914 Więc 20-- to daje Ci pierwsi 20 wierszy. 590 00:34:22,914 --> 00:34:24,830 I rzeczywiście było trochę zaskoczony, że ten 591 00:34:24,830 --> 00:34:28,770 dał mi sześć, więc pozwól mi iść do przodu i sprawdzić iris-- lub głowy, przepraszam. 592 00:34:28,770 --> 00:34:31,699 593 00:34:31,699 --> 00:34:34,960 A tutaj to daje Ci dokumentację 594 00:34:34,960 --> 00:34:37,960 z tego, co robi szef wartość. 595 00:34:37,960 --> 00:34:40,839 Tak zwraca pierwszy lub ostatni obiektu. 596 00:34:40,839 --> 00:34:42,630 A potem będę spojrzeć na domyślne. 597 00:34:42,630 --> 00:34:47,340 A potem mówi domyślną Metoda głowy x i n wynosi 6L. 598 00:34:47,340 --> 00:34:50,620 Więc ta zwraca pierwsze sześć elementów. 599 00:34:50,620 --> 00:34:55,050 I podobnie, jeśli zauważy się tutaj, nie trzeba określać n wynosi 6. 600 00:34:55,050 --> 00:34:56,840 Domyślnie używa sześć, tak myślę. 601 00:34:56,840 --> 00:35:00,130 A potem, jeśli chcę, aby określić pewne wartości, to mogę zobaczyć, że dobrze. 602 00:35:00,130 --> 00:35:02,970 603 00:35:02,970 --> 00:35:10,592 >> Tak, że jest kilka prostych poleceń i tu jest inny, że to just-- dobrze, 604 00:35:10,592 --> 00:35:12,550 I can-- to jest rzeczywiście nieco bardziej skomplikowane, 605 00:35:12,550 --> 00:35:17,130 ale będzie to po prostu wziąć klasę każdej kolumny zestawu danych tęczówki. 606 00:35:17,130 --> 00:35:20,910 Więc będzie to pokazuje, co każdy z nich Kolumny są pod względem ich typów. 607 00:35:20,910 --> 00:35:23,665 Tak Długość sepal jest numeryczne, Szerokość sepal jest numeryczne. 608 00:35:23,665 --> 00:35:26,540 Wszystkie te wartości są tylko numeryczny bo można powiedzieć z tych danych 609 00:35:26,540 --> 00:35:29,440 Są to struktury wszystko będzie numeryczne. 610 00:35:29,440 --> 00:35:34,310 >> Gatunek i kolumny będzie czynnikiem. 611 00:35:34,310 --> 00:35:37,270 Tak normalnie, można by pomyśleć, że to jest jak łańcuch znaków. 612 00:35:37,270 --> 00:35:48,830 Ale jeśli po prostu zrobić irisSpecies, i mam zamiar zrobić głowę 5, 613 00:35:48,830 --> 00:35:51,820 i to będzie drukować z pierwszych pięciu wartości. 614 00:35:51,820 --> 00:35:54,150 >> I wtedy zauważył to poziomy. 615 00:35:54,150 --> 00:35:58,870 Więc to jest saying-- R jest sposobem na posiadania zmiennych kategorycznych. 616 00:35:58,870 --> 00:36:03,765 Zamiast więc mając ciągi znaków, 617 00:36:03,765 --> 00:36:06,740 ma poziomy określające które z tych rzeczy. 618 00:36:06,740 --> 00:36:12,450 >> Więc powiedzmy irisSpecies 1. 619 00:36:12,450 --> 00:36:17,690 Więc to, co chcesz zrobić, o to, że jestem podzbiorów tej kolumnie gatunków. 620 00:36:17,690 --> 00:36:21,480 Więc to ma Gatunek i kolumny 621 00:36:21,480 --> 00:36:23,820 indeksy, aby zdobyć pierwszy element. 622 00:36:23,820 --> 00:36:27,140 Tak to powinno dać setosa. 623 00:36:27,140 --> 00:36:28,710 I to daje również poziomy tutaj. 624 00:36:28,710 --> 00:36:32,812 >> Więc możesz także porównać to do Setosa znaków 625 00:36:32,812 --> 00:36:34,645 i to nie będzie PRAWDA, ponieważ jednym 626 00:36:34,645 --> 00:36:37,940 jest innego typu niż inne. 627 00:36:37,940 --> 00:36:40,590 Albo Myślę, że to prawda, ponieważ R jest bardziej inteligentny niż ten. 628 00:36:40,590 --> 00:36:45,420 I wygląda na to, a następnie mówi, może to jest to, co chcesz. 629 00:36:45,420 --> 00:36:51,860 Więc to będzie powiedzieć, charakter Ciąg setosa jest taki sam, jak ten. 630 00:36:51,860 --> 00:37:01,290 I wtedy podobnie, można również po prostu chwyć je jak tak dalej. 631 00:37:01,290 --> 00:37:05,580 >> Tak, że to tylko jakiś szybkie komendy do zbioru danych. 632 00:37:05,580 --> 00:37:08,030 Więc oto kilka eksploracji danych. 633 00:37:08,030 --> 00:37:11,360 Więc to jest trochę więcej zaangażowany w analizie danych. 634 00:37:11,360 --> 00:37:18,340 I jest pobierana z kilku Bootcamp w badania w Berkeley. 635 00:37:18,340 --> 00:37:20,790 >> Więc biblioteki zagranicznej. 636 00:37:20,790 --> 00:37:24,880 Więc idę, aby załadować biblioteka, która się nazywa zagranicznych. 637 00:37:24,880 --> 00:37:32,460 Więc to ma dać mi read.dta więc zakładać, że mam ten zestaw danych. 638 00:37:32,460 --> 00:37:39,000 Ta jest przechowywana w prąd katalog mojej konsoli pracy. 639 00:37:39,000 --> 00:37:42,190 Więc po prostu zobaczyć, co katalog roboczy jest. 640 00:37:42,190 --> 00:37:44,620 >> Tak tu jest mój katalog roboczy. 641 00:37:44,620 --> 00:37:50,040 I odczytu danych dot, to rzeczą, mówi ten plik 642 00:37:50,040 --> 00:37:54,650 znajduje się w folderze danych to bieżący katalog roboczy. 643 00:37:54,650 --> 00:38:00,520 I read.dta to nie jest Polecenie domyślne. 644 00:38:00,520 --> 00:38:02,760 Myślę, że to się już załadowany. 645 00:38:02,760 --> 00:38:04,750 Romantyk zakłada załadowałem to na już. 646 00:38:04,750 --> 00:38:08,115 >> Ale tak read.dta nie będzie za polecenie domyślne. 647 00:38:08,115 --> 00:38:11,550 I dlatego będziesz mieć załadować w tej bibliotece package-- 648 00:38:11,550 --> 00:38:14,500 ten pakiet nazywa zagranicznych. 649 00:38:14,500 --> 00:38:16,690 A jeśli nie masz Pakiet, myślę, że 650 00:38:16,690 --> 00:38:19,180 obcych jest jednym z wbudowanych nich. 651 00:38:19,180 --> 00:38:31,150 W przeciwnym razie, można również zrobić install.packages 652 00:38:31,150 --> 00:38:33,180 i to będzie zainstalować pakiet. 653 00:38:33,180 --> 00:38:36,878 A to daje R. Uh, nie. 654 00:38:36,878 --> 00:38:39,830 655 00:38:39,830 --> 00:38:43,140 I wtedy ja po prostu się zatrzymać to dlatego, że mam już to. 656 00:38:43,140 --> 00:38:46,920 >> Ale to, co naprawdę miło o R jest to, że do zarządzania pakietami 657 00:38:46,920 --> 00:38:48,510 System jest bardzo elegancki. 658 00:38:48,510 --> 00:38:52,470 Bo to wszystko przechowujesz bardzo ładnie dla Ciebie. 659 00:38:52,470 --> 00:38:59,780 Więc w tym przypadku, to będzie do przechowywania to się, jak sądzę, biblioteka ta tutaj. 660 00:38:59,780 --> 00:39:02,390 >> Więc kiedy tylko chcesz instalacji nowych pakietów, 661 00:39:02,390 --> 00:39:04,980 to tak samo proste, jak robi install.packages 662 00:39:04,980 --> 00:39:07,500 i R będą zarządzać pakiety dla Ciebie. 663 00:39:07,500 --> 00:39:12,900 Więc nie musisz coś zrobić Python, gdzie masz pakiet zewnętrzny 664 00:39:12,900 --> 00:39:15,330 menedżerowie jak papier Anakonda, gdzie jesteś 665 00:39:15,330 --> 00:39:18,310 doing-- zainstalowaniu pakiety poza Pythonie 666 00:39:18,310 --> 00:39:20,940 a następnie spróbuj uruchomić je samodzielnie. 667 00:39:20,940 --> 00:39:22,210 Więc to jest naprawdę dobry sposób. 668 00:39:22,210 --> 00:39:25,590 >> I install.packages wymaga Internetu. 669 00:39:25,590 --> 00:39:31,950 Zajmuje go z serwera oraz repozytorium, które 670 00:39:31,950 --> 00:39:33,960 zbiera wszystkie Pakiety nazywa CRAN. 671 00:39:33,960 --> 00:39:40,690 I można określić, który rodzaj lustra chcesz pobrać pakiety. 672 00:39:40,690 --> 00:39:43,420 >> Więc biorę ten zestaw danych. 673 00:39:43,420 --> 00:39:46,240 Czytam go przy użyciu tej funkcji. 674 00:39:46,240 --> 00:39:49,360 Więc pozwól mi iść do przodu i zrobić. 675 00:39:49,360 --> 00:39:52,900 >> Więc załóżmy, że masz ten zestaw danych 676 00:39:52,900 --> 00:39:55,550 i masz absolutnie nie wiem co to jest. 677 00:39:55,550 --> 00:39:58,560 I to rzeczywiście wyjdzie dość często w przemyśle 678 00:39:58,560 --> 00:40:00,910 gdzie po prostu trzeba je tony i tony brudnych rzeczy 679 00:40:00,910 --> 00:40:02,890 i są one niezwykle bez etykiety. 680 00:40:02,890 --> 00:40:06,380 Więc mam to Zbiór danych i nie wiem 681 00:40:06,380 --> 00:40:08,400 co to jest, więc jestem pokazując, aby to sprawdzić. 682 00:40:08,400 --> 00:40:10,620 >> Więc mam zamiar zrobić najpierw głową. 683 00:40:10,620 --> 00:40:14,190 Więc sprawdzić pierwsze sześć kolumny, co ten zestaw danych jest. 684 00:40:14,190 --> 00:40:21,730 Więc to jest stan, pres04, a następnie te wszystkie różne rodzaj kolumn. 685 00:40:21,730 --> 00:40:25,612 I co ciekawe tu, jak sądzę, jest to, że Ciebie 686 00:40:25,612 --> 00:40:27,945 by przypuszczać, że to wygląda jak jakiś wyborów. 687 00:40:27,945 --> 00:40:30,482 688 00:40:30,482 --> 00:40:32,190 I chyba tylko z patrząc na pliku 689 00:40:32,190 --> 00:40:41,070 nazwa ta jest pewnego rodzaju kolekcji danych dotyczących kandydatów lub wyborców 690 00:40:41,070 --> 00:40:44,920 którzy głosowali na poszczególnych prezydentów lub kandydatów prezydenta 691 00:40:44,920 --> 00:40:46,550 w wyborach w 2004 roku. 692 00:40:46,550 --> 00:40:52,920 >> Więc o wartości 1, 2 więc jeden sposób przechowywania 693 00:40:52,920 --> 00:40:56,540 kandydaci prezydent są ich nazwy. 694 00:40:56,540 --> 00:40:59,780 W tym przypadku wygląda na to, są wartości tylko całkowite. 695 00:40:59,780 --> 00:41:04,030 Więc roku 2004, to był Bush kontra Kerry wierzę. 696 00:41:04,030 --> 00:41:09,010 A teraz, powiedzmy, że po prostu nie wiem czy 1 odpowiada Bush lub 2 697 00:41:09,010 --> 00:41:11,703 odpowiada Kerry lub i tak dalej, i tak dalej, prawda? 698 00:41:11,703 --> 00:41:15,860 >> I to jest, po prostu do mnie, dość powszechny problem. 699 00:41:15,860 --> 00:41:18,230 Więc co można zrobić w tym przypadku? 700 00:41:18,230 --> 00:41:20,000 Warto więc sprawdzić wszystkie te inne rzeczy. 701 00:41:20,000 --> 00:41:22,790 >> Państwo, jestem przy założeniu tego pochodzą z różnych państw. 702 00:41:22,790 --> 00:41:25,100 partyid dochody. 703 00:41:25,100 --> 00:41:27,710 Spójrzmy na partyid. 704 00:41:27,710 --> 00:41:32,800 Więc może jedno można zrobić, to patrzymy na siebie uwag 705 00:41:32,800 --> 00:41:36,250 które mają partyid z Republikańskiej czy demokrata czy coś. 706 00:41:36,250 --> 00:41:38,170 Więc po prostu patrzeć na to, co partyid jest. 707 00:41:38,170 --> 00:41:41,946 >> Więc mam zamiar podjąć dat i idę 708 00:41:41,946 --> 00:41:47,960 zrobić, to znak dolara Operator że zrobiłem wcześniej 709 00:41:47,960 --> 00:41:50,770 i to będzie podzbiór tej kolumny. 710 00:41:50,770 --> 00:41:57,760 A potem mam zamiar udać się to w 20, żeby zobaczyć, jak to wygląda. 711 00:41:57,760 --> 00:42:00,170 >> Więc to jest tylko kilka agencji krajowych. 712 00:42:00,170 --> 00:42:02,800 Tak więc, innymi słowy, trzeba brakuje danych na temat tych facetów. 713 00:42:02,800 --> 00:42:08,100 Ale można zauważyć również w tym dat partyid jest czynnikiem 714 00:42:08,100 --> 00:42:10,030 więc to daje różne kategorie. 715 00:42:10,030 --> 00:42:14,170 Tak więc, innymi słowy, może partyid Demokrata, republikanin, Niezależny, 716 00:42:14,170 --> 00:42:16,640 lub coś innego. 717 00:42:16,640 --> 00:42:23,940 >> Więc idź i niech sprawdzić, które z nich is-- och, OK. 718 00:42:23,940 --> 00:42:28,480 Więc mam zamiar podzbiór do partyid a następnie 719 00:42:28,480 --> 00:42:32,780 spójrz na te, które są Demokrata, na przykład. 720 00:42:32,780 --> 00:42:37,150 To się daje wartość logiczną, Ogromny Boolean z Trues i FALSEs. 721 00:42:37,150 --> 00:42:41,630 >> A teraz załóżmy, że chcę do podzbioru tych facetów. 722 00:42:41,630 --> 00:42:47,260 Więc to zajmie moje DAT i podzbiór rzecz tego obserwacje 723 00:42:47,260 --> 00:42:48,910 mają partyid równych równa demokrata. 724 00:42:48,910 --> 00:42:52,830 725 00:42:52,830 --> 00:42:55,180 I to jest dość długi, bo jest tak wiele z nich. 726 00:42:55,180 --> 00:42:59,060 Więc teraz, mam zamiar udać się to w 20. 727 00:42:59,060 --> 00:43:05,690 728 00:43:05,690 --> 00:43:11,270 >> I, jak można zauważyć, równa równych jest interesująca, że ​​jesteś 729 00:43:11,270 --> 00:43:13,250 already-- jesteś również w tym NAS. 730 00:43:13,250 --> 00:43:19,010 Więc w tym przypadku, nadal nie można uzyskać wszelkie informacje, bo teraz masz NAS 731 00:43:19,010 --> 00:43:22,650 i po prostu chcesz zobaczyć, które z Obserwacja odpowiadają Demokratów 732 00:43:22,650 --> 00:43:24,670 i nie brakuje tych samych wartości. 733 00:43:24,670 --> 00:43:27,680 Więc w jaki sposób pozbyć się tych agencji krajowych? 734 00:43:27,680 --> 00:43:36,410 >> Więc tutaj jestem tylko za pomocą przycisku na moim kursor, a następnie mówiąc poruszania się. 735 00:43:36,410 --> 00:43:39,778 I to tutaj jestem po prostu powiedzieć is.na datpartyid. 736 00:43:39,778 --> 00:43:48,970 737 00:43:48,970 --> 00:43:52,720 Więc to i i podejmie dwa różne wektory logiczne 738 00:43:52,720 --> 00:43:57,160 i powiedzieć, że będzie PRAWDA i FAŁSZ na przykład. 739 00:43:57,160 --> 00:43:59,190 Więc to będzie zrobić ten składnik mądry. 740 00:43:59,190 --> 00:44:02,910 Więc mówię zabiorą ramka danych, podzbiór 741 00:44:02,910 --> 00:44:10,170 do tych, które odpowiadają demokrata, i usuń któryś z nich, które nie są na. 742 00:44:10,170 --> 00:44:13,540 >> Więc to will-- powinny dać ci coś. 743 00:44:13,540 --> 00:44:16,540 744 00:44:16,540 --> 00:44:17,600 Zobaczmy is.na. 745 00:44:17,600 --> 00:44:24,670 746 00:44:24,670 --> 00:44:27,690 Spróbujmy is.na datpartyid. 747 00:44:27,690 --> 00:44:36,290 748 00:44:36,290 --> 00:44:45,290 I to powinno dać you-- sorry-- tylko logiczną wektor. 749 00:44:45,290 --> 00:44:49,260 A potem, bo to tak długo, Idę do podzbioru do 20. 750 00:44:49,260 --> 00:44:49,760 OK. 751 00:44:49,760 --> 00:44:51,570 Tak to powinno działać. 752 00:44:51,570 --> 00:44:54,700 >> A ten będzie również Trues. 753 00:44:54,700 --> 00:45:01,830 Ach, tak, mój błąd jest to, że I'm-- I C ++ i używać zamiennie, więc R się 754 00:45:01,830 --> 00:45:03,590 ten błąd cały czas. 755 00:45:03,590 --> 00:45:05,807 I operator jest faktycznie, który chcesz. 756 00:45:05,807 --> 00:45:08,140 Nie chcesz używać dwóch znaków handlowego, tylko jednym. 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 >> Zobaczmy więc. 760 00:45:18,140 --> 00:45:20,930 761 00:45:20,930 --> 00:45:23,920 Więc subsetted się partyid gdzie jesteś demokratą 762 00:45:23,920 --> 00:45:25,300 i nie brakuje wartości. 763 00:45:25,300 --> 00:45:27,690 A teraz spójrzmy na które z nich są głosowali. 764 00:45:27,690 --> 00:45:31,530 Tak więc wydaje się, że najbardziej z nich głosowało na 1. 765 00:45:31,530 --> 00:45:36,090 Więc mam zamiar iść do przodu i powiedzieć, że jest Kerry. 766 00:45:36,090 --> 00:45:39,507 >> I podobnie, można również udać się do Republikanów 767 00:45:39,507 --> 00:45:41,090 i miejmy nadzieję, powinno to dać 2. 768 00:45:41,090 --> 00:45:49,730 769 00:45:49,730 --> 00:45:51,770 To tylko kilka różnych kolumn. 770 00:45:51,770 --> 00:45:53,070 I rzeczywiście, to dwa. 771 00:45:53,070 --> 00:45:55,750 Więc partyid wszystkich republikanów, większość z nich głosują na 2. 772 00:45:55,750 --> 00:45:58,390 >> Tak więc wydaje się, po prostu patrząc na to, 773 00:45:58,390 --> 00:46:00,600 Republikańska będzie very-- lub partyid 774 00:46:00,600 --> 00:46:02,790 będzie bardzo ważnym czynnikiem w określaniu 775 00:46:02,790 --> 00:46:05,420 które kandydat oni zamierza głosować. 776 00:46:05,420 --> 00:46:07,120 I jest to oczywiście prawda, w ogóle. 777 00:46:07,120 --> 00:46:10,139 I to pasuje do Intuicja, oczywiście. 778 00:46:10,139 --> 00:46:11,930 Tak więc wydaje się, że jestem kończy się czas, więc 779 00:46:11,930 --> 00:46:17,040 pozwól mi tylko powinny iść do przodu i pokazać kilka szybkich zdjęć. 780 00:46:17,040 --> 00:46:21,120 Więc tutaj jest coś, co jest lekko bardziej skomplikowane z wizualizacją. 781 00:46:21,120 --> 00:46:26,450 A więc w tym przypadku jest bardzo Prosta analiza tylko sprawdzam, co 782 00:46:26,450 --> 00:46:28,500 prezes '04 jest. 783 00:46:28,500 --> 00:46:33,920 >> Więc w tym przypadku, powiedzmy, chciał odpowiedzieć na to pytanie. 784 00:46:33,920 --> 00:46:38,540 Więc załóżmy, że chciał wiedzieć głosowania Zachowanie w wyborach prezydenta 2004 785 00:46:38,540 --> 00:46:41,170 i jak to zależy od rasy. 786 00:46:41,170 --> 00:46:44,380 Więc nie tylko chcesz zobacz zachowanie głosowania, 787 00:46:44,380 --> 00:46:47,860 ale chcesz podzbiorem każdego rasa i rodzaj podsumowania tego. 788 00:46:47,860 --> 00:46:50,770 I można tylko powiedzieć tego złożonego zapisu 789 00:46:50,770 --> 00:46:52,580 że jest to rodzaj coraz mgliste. 790 00:46:52,580 --> 00:46:56,390 >> Tak więc jednym z bardziej zaawansowanych badań pakiety to też rodzaj ostatnie 791 00:46:56,390 --> 00:47:00,070 nazywa dplyr. 792 00:47:00,070 --> 00:47:03,060 Więc to jest ta właśnie tutaj. 793 00:47:03,060 --> 00:47:08,080 I ggg-- ggplot2 jest po prostu ładny sposób robi lepsze wizualizacje 794 00:47:08,080 --> 00:47:09,400 niż wbudowany w jednym. 795 00:47:09,400 --> 00:47:11,108 >> Więc idę do załadowania te dwie biblioteki. 796 00:47:11,108 --> 00:47:13,200 797 00:47:13,200 --> 00:47:16,950 A potem, mam zamiar iść dalej i uruchomić to polecenie. 798 00:47:16,950 --> 00:47:19,050 Możesz po prostu traktują to jako czarna skrzynka. 799 00:47:19,050 --> 00:47:23,460 >> Co się dzieje, jest to, że tej rury Operator przechodzi w tym argumencie 800 00:47:23,460 --> 00:47:24,110 się tutaj. 801 00:47:24,110 --> 00:47:28,070 Więc mówię grupę, dat rasy, a następnie prezesem 04. 802 00:47:28,070 --> 00:47:31,530 A potem, przez te wszystkie inne polecenia blokujemy i podsumowujący 803 00:47:31,530 --> 00:47:34,081 gdzie robię liczyć i to ja jestem wykreślenie go tutaj. 804 00:47:34,081 --> 00:47:39,980 805 00:47:39,980 --> 00:47:42,500 OK, fajnie. 806 00:47:42,500 --> 00:47:44,620 Więc śmiało i zobaczyć, jak to wygląda. 807 00:47:44,620 --> 00:47:52,280 808 00:47:52,280 --> 00:47:57,290 >> Więc co tu się dzieje jest to, że po prostu wykreślić każdej z ras, a następnie 809 00:47:57,290 --> 00:47:59,670 które z nich są głosowali. 810 00:47:59,670 --> 00:48:03,492 A te dwa różne Wartości odpowiadają 2 i 1. 811 00:48:03,492 --> 00:48:05,325 Jeśli chcesz być bardziej Elegancki, można również 812 00:48:05,325 --> 00:48:11,770 wystarczy wskazać, że 2 jest Kerry-- lub 2 Bush, a następnie 1 Kerry. 813 00:48:11,770 --> 00:48:13,700 I można również że w swojej legendy. 814 00:48:13,700 --> 00:48:17,410 >> I można również podzielić te wykresy słupkowe. 815 00:48:17,410 --> 00:48:19,480 Bo jedno jest że, jeśli zauważysz, 816 00:48:19,480 --> 00:48:24,560 nie jest to bardzo proste do określenia która z tych dwóch wartości jest większa. 817 00:48:24,560 --> 00:48:27,920 Więc jedna rzecz, którą chcesz zrobić, to ten niebieski obszar 818 00:48:27,920 --> 00:48:31,855 i po prostu przenieść go tutaj tak Ciebie Można porównać te dwa obok siebie. 819 00:48:31,855 --> 00:48:34,480 I myślę, że to coś, czego nie mają czasu, aby zrobić już teraz, 820 00:48:34,480 --> 00:48:36,660 ale to jest bardzo łatwe do zrobienia. 821 00:48:36,660 --> 00:48:40,310 Możesz po prostu zajrzeć do strony man z ggplot. 822 00:48:40,310 --> 00:48:47,170 Więc może po prostu nie ggplot jak że i czytać na tej stronie podręcznika. 823 00:48:47,170 --> 00:48:51,920 >> Więc niech mi tylko szybko pokazać kilka fajnych rzeczy. 824 00:48:51,920 --> 00:48:57,610 Idziemy dalej i przejść to-- tylko Zastosowanie uczenia maszynowego. 825 00:48:57,610 --> 00:49:02,450 Więc powiedzmy, że mamy te trzy opakowaniach, tak mam zamiar załadować je w. 826 00:49:02,450 --> 00:49:05,500 827 00:49:05,500 --> 00:49:09,170 Więc to po prostu wypisuje niektóre Informacje po I załadowany do rzeczy. 828 00:49:09,170 --> 00:49:15,220 Więc mówię to read.csv, Ten zestaw danych, a teraz 829 00:49:15,220 --> 00:49:18,940 Mam zamiar iść do przodu i patrzeć i zobaczyć, co jest w środku zbioru danych. 830 00:49:18,940 --> 00:49:22,080 >> Więc pierwsze 20 obserwacji. 831 00:49:22,080 --> 00:49:27,190 Więc mam tylko x1, x2, i Y. Tak więc Wydaje się, jak kilka tych wartości 832 00:49:27,190 --> 00:49:31,640 Może są w zakresie od 20 do 80 lub tak. 833 00:49:31,640 --> 00:49:37,700 A potem podobnie dla X2, a następnie Y to wydaje się, że etykiety 0 i 1. 834 00:49:37,700 --> 00:49:49,500 >> Aby to sprawdzić, mogę po prostu zrobić X1 podsumowanie danych. 835 00:49:49,500 --> 00:49:51,660 A potem podobnie dla te wszystkie inne kolumny. 836 00:49:51,660 --> 00:49:55,300 Więc podsumowanie jest szybki sposób po prostu pokazując szybkich wartości. 837 00:49:55,300 --> 00:49:56,330 Och, przepraszam. 838 00:49:56,330 --> 00:49:58,440 Ten powinien być Y. 839 00:49:58,440 --> 00:50:03,420 >> A więc w tym przypadku, wydaje quantiles, mediany, maxes również. 840 00:50:03,420 --> 00:50:07,130 W tym przypadku, dataY można zobaczyć że to tylko będzie 0 i 1. 841 00:50:07,130 --> 00:50:10,100 Również średnia mówi 0.6, po prostu oznacza, że ​​to 842 00:50:10,100 --> 00:50:13,380 Wydaje się, że mam więcej niż 1s 0s. 843 00:50:13,380 --> 00:50:16,160 >> Więc pozwól mi iść do przodu i pokaż Ci, jak to wygląda. 844 00:50:16,160 --> 00:50:17,470 Więc jestem po prostu wykreślić ten. 845 00:50:17,470 --> 00:50:22,852 846 00:50:22,852 --> 00:50:24,636 Zobaczmy, jak to wyjaśnić. 847 00:50:24,636 --> 00:50:30,492 848 00:50:30,492 --> 00:50:31,468 Och OK. 849 00:50:31,468 --> 00:50:35,840 850 00:50:35,840 --> 00:50:36,340 OK. 851 00:50:36,340 --> 00:50:37,590 >> Tak to jest, jak to wygląda. 852 00:50:37,590 --> 00:50:46,310 Tak więc wydaje się, że żółcie I określonych jako 0, a następnie czerwony I określono jako 1s. 853 00:50:46,310 --> 00:50:52,190 Więc wygląda na to, etykieta i jej punkty 854 00:50:52,190 --> 00:50:56,410 Wygląda na to, że chciałeś tylko niektóre rodzaj grupowania na ten temat. 855 00:50:56,410 --> 00:51:01,020 >> I niech mi tylko iść do przodu i pokaż Ci niektóre z tych funkcji wbudowanych. 856 00:51:01,020 --> 00:51:03,580 Więc tutaj jest lm. 857 00:51:03,580 --> 00:51:06,060 Więc to jest po prostu staramy aby dopasować linię do tego. 858 00:51:06,060 --> 00:51:08,640 Więc co jest najlepszym sposobem że mogę zmieścić linii takich 859 00:51:08,640 --> 00:51:14,020 że będzie to najlepiej rozdzielić tego rodzaju klastrów. 860 00:51:14,020 --> 00:51:21,790 A najlepiej, można po prostu zobaczyć że po prostu uruchomić wszystkie te polecenia 861 00:51:21,790 --> 00:51:25,450 a następnie, zamierzam dalej i dodać linię. 862 00:51:25,450 --> 00:51:28,970 >> Tak więc wydaje się, że najlepszym odgadnięcia. 863 00:51:28,970 --> 00:51:34,150 To biorąc najlepszy, który minimalizuje Błąd próbuje dopasować tę linię. 864 00:51:34,150 --> 00:51:40,000 Oczywiście, to wygląda na rodzaj dobre, ale to nie jest najlepszy. 865 00:51:40,000 --> 00:51:43,130 I modele liniowe, w Ogólnie rzecz biorąc, będą 866 00:51:43,130 --> 00:51:46,811 naprawdę wielki dla teorii i właśnie rodzaj fundamentów budowlanych maszyny 867 00:51:46,811 --> 00:51:47,310 uczenia się. 868 00:51:47,310 --> 00:51:50,330 Jednak w praktyce, będziesz chcesz zrobić coś bardziej ogólnego. 869 00:51:50,330 --> 00:51:54,280 >> Więc może po prostu spróbuj uruchomić coś, co nazywa się sieci neuronowej. 870 00:51:54,280 --> 00:51:57,110 Te rzeczy są coraz bardziej powszechne. 871 00:51:57,110 --> 00:52:00,530 I po prostu działa fantastycznie dla dużych zbiorów danych. 872 00:52:00,530 --> 00:52:07,080 Więc w tym przypadku, tylko have-- niech see-- mamy nrow. 873 00:52:07,080 --> 00:52:09,010 Więc nrow jest tylko, że liczbę wierszy. 874 00:52:09,010 --> 00:52:11,790 Więc w tym przypadku, że masz 100 uwag. 875 00:52:11,790 --> 00:52:15,010 >> Więc pozwól mi iść do przodu i dokonać sieci neuronowej. 876 00:52:15,010 --> 00:52:18,620 Więc to jest naprawdę ładne bo mogę tylko powiedzieć nnet 877 00:52:18,620 --> 00:52:21,767 i jestem cofa Y. Y tak, że kolumny. 878 00:52:21,767 --> 00:52:23,850 A potem cofa go na dwa pozostałe zmienne. 879 00:52:23,850 --> 00:52:27,360 Więc to jest krótsza Zapis dla X1 i X2. 880 00:52:27,360 --> 00:52:29,741 >> Więc idź naprzód i uruchomić to. 881 00:52:29,741 --> 00:52:30,240 Och, przepraszam. 882 00:52:30,240 --> 00:52:32,260 Trzeba uruchomić te wszystkie rzeczy. 883 00:52:32,260 --> 00:52:37,500 I to jest właśnie drukowania notacji do tego, jak szybko to szybko czy nie 884 00:52:37,500 --> 00:52:38,460 konwergentnych. 885 00:52:38,460 --> 00:52:41,420 Wygląda więc na to, że nie są zbieżne. 886 00:52:41,420 --> 00:52:44,970 Więc pozwól mi iść do przodu i do druku się, jak to wygląda. 887 00:52:44,970 --> 00:52:51,260 >> Zobacz tutaj jest obraz i tu jest Kontur pokazując, jak dobrze pasuje. 888 00:52:51,260 --> 00:52:56,380 I to jest just-- widać to, że jest to bardzo, bardzo ładne. 889 00:52:56,380 --> 00:52:59,400 To może być nawet przeuczenia, ale można też 890 00:52:59,400 --> 00:53:03,390 Wyjaśniając to z innymi Techniki takie jak krzyżowego. 891 00:53:03,390 --> 00:53:06,180 A te są wbudowane w R. 892 00:53:06,180 --> 00:53:09,170 >> I niech mi tylko pokazać, Maszyna wektorów nośnych. 893 00:53:09,170 --> 00:53:12,470 Jest to kolejny bardzo powszechne technika uczenia maszynowego. 894 00:53:12,470 --> 00:53:18,550 Jest to bardzo podobne do modelu liniowej, lecz używa tego, co się nazywa metoda jądra. 895 00:53:18,550 --> 00:53:22,790 I zobaczymy, jak dobrze, że jest. 896 00:53:22,790 --> 00:53:26,430 Więc ten jest bardzo podobny do tego, jak oraz sieć neuronowa wykonuje, 897 00:53:26,430 --> 00:53:27,900 ale jest znacznie bardziej płynny. 898 00:53:27,900 --> 00:53:35,740 I to jest na off z what-- jak działają SVMs. 899 00:53:35,740 --> 00:53:40,250 >> Więc jest to tylko bardzo krótki przegląd niektórych 900 00:53:40,250 --> 00:53:43,822 z wbudowanych funkcji możesz zrobić a także niektóre z eksploracji danych. 901 00:53:43,822 --> 00:53:45,905 Pozwólcie mi iść do przodu i wrócić do zjeżdżalni. 902 00:53:45,905 --> 00:53:50,290 903 00:53:50,290 --> 00:53:53,670 >> Tak oczywiście, jest nie bardzo obszerny. 904 00:53:53,670 --> 00:53:57,140 I to jest naprawdę tylko teaser pokazując, co naprawdę można zrobić w R. 905 00:53:57,140 --> 00:53:59,100 Więc gdybyś tak jak Aby dowiedzieć się więcej, tutaj 906 00:53:59,100 --> 00:54:01,210 jest kilka różnych zasobów. 907 00:54:01,210 --> 00:54:06,890 >> Więc jeśli jesteś lubiący podręczników lub jesteś po prostu lubią czytać rzeczy w sieci, 908 00:54:06,890 --> 00:54:09,670 to jest fantastyczne jeden po Hadley Wickham, 909 00:54:09,670 --> 00:54:13,010 który również stworzył wszystko naprawdę fajne pakiety. 910 00:54:13,010 --> 00:54:17,420 Jeśli lubi filmy, a następnie Berkeley ma niesamowite bootcamp 911 00:54:17,420 --> 00:54:21,060 to several--, że trochę długo. 912 00:54:21,060 --> 00:54:24,210 I będzie to nauczy cię prawie wszystko co chcesz wiedzieć o R. 913 00:54:24,210 --> 00:54:27,770 >> I podobnie, nie Codeacademy i wszystko to inny rodzaj 914 00:54:27,770 --> 00:54:29,414 interaktywnych stron internetowych. 915 00:54:29,414 --> 00:54:31,580 Są one również coraz common-- bardziej powszechne. 916 00:54:31,580 --> 00:54:33,749 Więc to jest bardzo podobne do Codeacademy. 917 00:54:33,749 --> 00:54:35,790 I wreszcie, jeśli tylko chcą Wspólnotę i pomoc, 918 00:54:35,790 --> 00:54:38,800 to banda rzeczy można przejść. 919 00:54:38,800 --> 00:54:40,880 Oczywiście, nadal używać list, po prostu 920 00:54:40,880 --> 00:54:44,860 jak prawie każdy inny Społeczność język programowania. 921 00:54:44,860 --> 00:54:47,880 I #rstats, jest naszej społeczności Twitter. 922 00:54:47,880 --> 00:54:49,580 To rzeczywiście dość powszechne. 923 00:54:49,580 --> 00:54:50,850 A potem użytkownika! 924 00:54:50,850 --> 00:54:52,340 Jest po prostu nasza konferencja. 925 00:54:52,340 --> 00:54:55,390 >> A potem, oczywiście, można wykorzystać wszystkie te inne rzeczy, Q & A, 926 00:54:55,390 --> 00:54:57,680 jak przepełnienie stosu, Google, a następnie GitHub. 927 00:54:57,680 --> 00:55:00,490 Ponieważ większość z tych pakietów, i wiele społeczności 928 00:55:00,490 --> 00:55:03,420 będzie wokół rozwoju Kod ponieważ jest open source. 929 00:55:03,420 --> 00:55:05,856 I to tylko naprawdę ładne na GitHub. 930 00:55:05,856 --> 00:55:08,730 I wreszcie, możesz skontaktować się ze mną, jeśli po prostu masz jakieś krótkie pytania. 931 00:55:08,730 --> 00:55:13,530 Więc możesz mnie znaleźć na Twitterze tutaj moja strona internetowa, i po prostu mój e-mail. 932 00:55:13,530 --> 00:55:17,840 Więc mam nadzieję, że był something-- tylko krótki zwiastun 933 00:55:17,840 --> 00:55:20,900 czego R jest naprawdę zdolny. 934 00:55:20,900 --> 00:55:23,990 I miejmy nadzieję, że po prostu sprawdzić te trzy linki 935 00:55:23,990 --> 00:55:25,760 i zobaczyć, co można zrobić więcej. 936 00:55:25,760 --> 00:55:28,130 I myślę, że to właśnie o nim. 937 00:55:28,130 --> 00:55:28,630 Dzięki. 938 00:55:28,630 --> 00:55:30,780 >> [APPLAUSE] 939 00:55:30,780 --> 00:55:31,968