1 00:00:00,000 --> 00:00:05,691 2 00:00:05,691 --> 00:00:07,690 Коннор Харріс: Проте я думаю деякого захоплюючого відео 3 00:00:07,690 --> 00:00:12,570 проводиться за допомогою професійного консультування який використовує R багато у своїй роботі. 4 00:00:12,570 --> 00:00:16,329 >> Оповідач: Що за статистикою, аналітика, і візуалізація 5 00:00:16,329 --> 00:00:19,770 яскраві вчені даних, що сьогоднішні і бізнес-лідери покладаються на 6 00:00:19,770 --> 00:00:22,012 зробити потужні рішення? 7 00:00:22,012 --> 00:00:23,540 Ви не можете завжди бачити його. 8 00:00:23,540 --> 00:00:24,790 Але вона є. 9 00:00:24,790 --> 00:00:29,460 Це називається R, з відкритим вихідним кодом r-- Статистична мова програмування 10 00:00:29,460 --> 00:00:32,630 що експерти даних світові за використанням для всього 11 00:00:32,630 --> 00:00:35,350 від широких соціальних карт і маркетингові тенденції онлайн 12 00:00:35,350 --> 00:00:39,210 до розробки фінансових і клімат Моделі, які допомагають керувати наших економік 13 00:00:39,210 --> 00:00:40,780 і спільноти. 14 00:00:40,780 --> 00:00:44,910 >> Але те, що саме R і де R почати? 15 00:00:44,910 --> 00:00:48,620 Ну спочатку, R почав тут з двома професорами 16 00:00:48,620 --> 00:00:51,950 хто хотів краще статистичний Платформа для своїх студентів. 17 00:00:51,950 --> 00:00:56,030 Таким чином, вони створили один моделюється після статистичної мові С. 18 00:00:56,030 --> 00:01:00,480 Вони, поряд з багатьма іншими, продовжував працювати і за допомогою R, 19 00:01:00,480 --> 00:01:05,489 створення інструментів для R і знайти нові програми для R щодня. 20 00:01:05,489 --> 00:01:07,750 >> Завдяки цьому є по всьому світу зусилля спільноти, 21 00:01:07,750 --> 00:01:11,850 R росла з тисячами створених користувачем бібліотек, побудованих 22 00:01:11,850 --> 00:01:15,500 для розширення функціональності і R Натовп-джерел перевірки якості 23 00:01:15,500 --> 00:01:19,740 та підтримка найбільш визнаних лідерами галузі в кожній області, що 24 00:01:19,740 --> 00:01:25,040 використовує Р. І це здорово, тому що R є кращим, що він робить. 25 00:01:25,040 --> 00:01:28,540 Швидко Багатообіцяюча експертів і легко інтерпретувати, взаємодіяти, 26 00:01:28,540 --> 00:01:33,790 і візуалізувати дані, що показують, їх швидко зростаюче співтовариство користувачів по всьому світу R 27 00:01:33,790 --> 00:01:36,380 і подивитися, як з відкритим вихідним кодом R продовжує формувати 28 00:01:36,380 --> 00:01:39,340 майбутнє статистичний аналіз і наука даних. 29 00:01:39,340 --> 00:01:44,660 30 00:01:44,660 --> 00:01:47,710 >> Коннор Харріс: ОК, відмінно. 31 00:01:47,710 --> 00:01:50,360 Так моєї презентації буде трохи більш тверезим. 32 00:01:50,360 --> 00:01:54,380 Це не буде включати так багато захоплюючою фонової музики. 33 00:01:54,380 --> 00:01:59,160 Але, як ви бачили у відео, R є свого роду мови загального призначення програми. 34 00:01:59,160 --> 00:02:03,720 Але вона була створена в основному для статистичної роботи. 35 00:02:03,720 --> 00:02:07,980 >> Так він призначений для статистики, для аналізу даних, для аналізу даних. 36 00:02:07,980 --> 00:02:12,420 І таким чином Ви можете бачити це у великій кількості вибір дизайну, що творці R 37 00:02:12,420 --> 00:02:13,320 зробив. 38 00:02:13,320 --> 00:02:15,472 Це значною мірою призначені для, люди, які не 39 00:02:15,472 --> 00:02:17,930 Експерти в області програмування, які просто піднімаючи програмування 40 00:02:17,930 --> 00:02:23,460 на стороні, так що вони можуть зробити свою роботу в соціальній науці або в статистиці 41 00:02:23,460 --> 00:02:25,440 або щось. 42 00:02:25,440 --> 00:02:27,850 >> Вона має багато дуже важливі відмінності від С. 43 00:02:27,850 --> 00:02:33,200 Але синтаксис і парадигми що він використовує в цілому те ж саме. 44 00:02:33,200 --> 00:02:36,830 І ви повинні відчувати себе досить як вдома прямо з місця в кар'єр. 45 00:02:36,830 --> 00:02:38,520 Це імперативний мову. 46 00:02:38,520 --> 00:02:40,260 >> Не турбуйтеся надто багато про те, що якщо ви не знаєте, термін. 47 00:02:40,260 --> 00:02:42,676 Але є відмінність між імперативним, декларативний, 48 00:02:42,676 --> 00:02:43,810 і функціональний. 49 00:02:43,810 --> 00:02:47,600 Імператив просто означає, що ви зробити заяви, які в основному команди. 50 00:02:47,600 --> 00:02:52,340 І тоді інтерпретатор або Комп'ютер слід їх по одному. 51 00:02:52,340 --> 00:02:56,630 Це слабо набрали, є немає опису типу в R. 52 00:02:56,630 --> 00:02:59,130 >> А потім лінії між різними типами 53 00:02:59,130 --> 00:03:03,920 трохи більш вільно, ніж вони знаходяться в C, наприклад. 54 00:03:03,920 --> 00:03:06,450 І, як я сказав, що є дуже широкі можливості 55 00:03:06,450 --> 00:03:15,610 для побудови графіків, в статистичних аналіз, для видобутку даних. 56 00:03:15,610 --> 00:03:19,540 Вони обидва вбудовані в мову, і, як сказав відео, 57 00:03:19,540 --> 00:03:23,680 тисячі бібліотек сторонніх виробників, Ви можете завантажити і використовувати безкоштовно 58 00:03:23,680 --> 00:03:25,340 з дуже сипучих ліцензійних умов. 59 00:03:25,340 --> 00:03:28,800 60 00:03:28,800 --> 00:03:31,500 >> Таким чином, загалом, я рекомендую що ви дивитеся на цих двох книг 61 00:03:31,500 --> 00:03:34,610 якщо ви збираєтеся працювати на Р. One з них є офіційним R початківців 62 00:03:34,610 --> 00:03:35,110 направляти. 63 00:03:35,110 --> 00:03:38,660 Це підтримується Основні розробники R. 64 00:03:38,660 --> 00:03:42,400 Ви можете завантажити його знову, без зарядки і юридично на цим посиланням там. 65 00:03:42,400 --> 00:03:45,430 66 00:03:45,430 --> 00:03:49,869 Всі ці слайди збирається йти на Інтернет, на сайті CS50 67 00:03:49,869 --> 00:03:50,660 після цього робиться. 68 00:03:50,660 --> 00:03:53,690 Так що не треба копіювати речі вниз відчайдушно. 69 00:03:53,690 --> 00:03:56,800 >> Іншою є підручник Cosma Шалізі, 70 00:03:56,800 --> 00:04:00,100 який є професором статистики в Карнегі-Меллона, називається Advanced Data 71 00:04:00,100 --> 00:04:02,160 Аналіз із Початкова точка зору. 72 00:04:02,160 --> 00:04:04,010 Це не принципово таке г Книга. 73 00:04:04,010 --> 00:04:07,130 Це статистика книга і це книга для аналізу даних. 74 00:04:07,130 --> 00:04:11,990 Але це дуже доступним для людей, які є крапельку статистики знань. 75 00:04:11,990 --> 00:04:13,750 >> Я ніколи не брав формального курсу. 76 00:04:13,750 --> 00:04:17,269 Я просто знаю, біти і шматки з різних союзних суб'єктів 77 00:04:17,269 --> 00:04:18,579 що я пройшла курси в. 78 00:04:18,579 --> 00:04:21,839 І я був в змозі зрозуміти це прекрасно. 79 00:04:21,839 --> 00:04:25,630 >> Всі цифри наведені в R. Вони виконані в R 80 00:04:25,630 --> 00:04:30,280 і вони також мають лістингів нижче кожної фігури, що вам сказати, 81 00:04:30,280 --> 00:04:33,270 як ви робите кожну фігуру з R коду. 82 00:04:33,270 --> 00:04:37,400 І це дуже корисно, якщо Ви намагаєтеся наслідувати 83 00:04:37,400 --> 00:04:38,650 деякі фігури ви бачите в книзі. 84 00:04:38,650 --> 00:04:47,840 >> І знову завантажити безкоштовно stat.cmu.edu/cshalizi/ жаль, 85 00:04:47,840 --> 00:04:50,230 які повинні бути слеш тильди cshalizi. 86 00:04:50,230 --> 00:04:53,150 Я простежу, щоб виправити те, що коли офіційні слайди вгору. 87 00:04:53,150 --> 00:04:57,000 / ADAfaEPoV який є тільки акронім назви книги. 88 00:04:57,000 --> 00:04:59,850 89 00:04:59,850 --> 00:05:02,500 >> Так взагалі caveats-- R є багато можливостей. 90 00:05:02,500 --> 00:05:05,331 Я тільки буде в змозі покрити поверхню багато речей. 91 00:05:05,331 --> 00:05:08,580 Крім того, перша частина семінару буде щось з дампа. 92 00:05:08,580 --> 00:05:11,437 Я абсолютно шкодую про це. 93 00:05:11,437 --> 00:05:13,770 В принципі, я збираюся познайомити вас з великою кількістю речей, 94 00:05:13,770 --> 00:05:15,350 з місця в кар'єр, збирається якомога швидше. 95 00:05:15,350 --> 00:05:17,058 І тоді ми отримуємо кумедна частина, яка 96 00:05:17,058 --> 00:05:20,570 демо, де я можу показати вам все, що ми говорили про на екрані. 97 00:05:20,570 --> 00:05:23,321 І ви можете пограти самостійно. 98 00:05:23,321 --> 00:05:26,070 Так що буде багато технічні речі кинуті на тут. 99 00:05:26,070 --> 00:05:28,060 Не хвилюйтеся про копіювання все, що вниз. 100 00:05:28,060 --> 00:05:31,740 Тому що, ви можете отримати всі матеріал на сайті CS50 пізніше. 101 00:05:31,740 --> 00:05:37,780 І B, це не так важливо запам'ятати цього від слайдів. 102 00:05:37,780 --> 00:05:40,462 Це більш важливо, що ви отримаєте деякі інтуїтивно об'єкт з нею 103 00:05:40,462 --> 00:05:44,220 і, що виходить від просто грати навколо. 104 00:05:44,220 --> 00:05:45,720 >> Так навіщо використовувати R? 105 00:05:45,720 --> 00:05:49,440 В принципі, якщо у вас є проект, який включає в себе видобуток великих наборів даних, даних 106 00:05:49,440 --> 00:05:52,664 візуалізації, ви слід використовувати R. Якщо ви 107 00:05:52,664 --> 00:05:55,830 робити складні статистичні аналізи, що буде важко в Excel, 108 00:05:55,830 --> 00:05:58,010 Наприклад, було б також good-- також 109 00:05:58,010 --> 00:06:00,506 якщо ви робите статистичний Аналіз, який автоматизований. 110 00:06:00,506 --> 00:06:02,130 Скажімо, ви підтримання веб-сайту. 111 00:06:02,130 --> 00:06:06,320 І ви хочете, щоб прочитати журнал сервера кожен день, і скомпілювати список, 112 00:06:06,320 --> 00:06:10,320 як провідних країн, що Ваші користувачі з, 113 00:06:10,320 --> 00:06:15,100 деякі зведені статистичні дані про те, як довго вони витрачають на свій веб-сайт або щось. 114 00:06:15,100 --> 00:06:16,910 І ви хочете, щоб запустити це кожен день. 115 00:06:16,910 --> 00:06:20,280 >> Тепер, якщо ви робите це в Excel, Ви повинні були б піти в журнал сервера, 116 00:06:20,280 --> 00:06:23,490 імпортувати, що в Excel таблиці даних, 117 00:06:23,490 --> 00:06:24,910 запустити весь процес аналізу вручну. 118 00:06:24,910 --> 00:06:27,100 З R, ви можете просто написати один сценарій. 119 00:06:27,100 --> 00:06:29,520 Графік його для запуску щодня від вашої операційної системи. 120 00:06:29,520 --> 00:06:33,657 А потім щовечора в 2:00, або коли ви планувати його запустити, 121 00:06:33,657 --> 00:06:35,990 це буде виглядати через ваш інтернет-трафік для цього дня. 122 00:06:35,990 --> 00:06:39,010 І тоді на наступний день, ви будете Тобто цей блискучий, новий доповідь 123 00:06:39,010 --> 00:06:41,710 або щось з усіма Інформація, яку ви просили. 124 00:06:41,710 --> 00:06:44,960 125 00:06:44,960 --> 00:06:50,217 >> Так в основному R для Cisco програмування в порівнянні з аналізом Cisco. 126 00:06:50,217 --> 00:06:51,050 Попередній робиться. 127 00:06:51,050 --> 00:06:53,104 Давайте в реальних речах. 128 00:06:53,104 --> 00:06:55,020 Таким чином, є три реальні типи в мові. 129 00:06:55,020 --> 00:06:56,120 Там же числовий тип. 130 00:06:56,120 --> 00:07:01,250 Там начебто різниця між цілі і плаваючі точки, 131 00:07:01,250 --> 00:07:02,769 але не зовсім. 132 00:07:02,769 --> 00:07:04,560 Там це персонаж введіть, яка струни. 133 00:07:04,560 --> 00:07:07,100 І є логічне введіть, яка Booleans. 134 00:07:07,100 --> 00:07:11,080 >> І ви можете конвертувати між типами за допомогою цих функцій, як цифрова, 135 00:07:11,080 --> 00:07:15,220 як характер, як логічно. 136 00:07:15,220 --> 00:07:17,510 Якщо ви зателефонуєте, наприклад, як числовий на рядок, 137 00:07:17,510 --> 00:07:20,030 він намагатиметься читати цей рядок як число, так само, 138 00:07:20,030 --> 00:07:25,897 що a2i і зсапЕ робити, і C. Якщо Ви називаєте як числовий на істинним чи хибним 139 00:07:25,897 --> 00:07:26,980 він буде конвертувати в 1 або 0. 140 00:07:26,980 --> 00:07:29,110 Якщо ви зателефонуєте в характері на що-небудь це буде 141 00:07:29,110 --> 00:07:32,550 конвертувати, що в Строкове представлення. 142 00:07:32,550 --> 00:07:34,990 >> І тоді є вектори і матриці. 143 00:07:34,990 --> 00:07:37,580 Так вектори основному 1 масиви. 144 00:07:37,580 --> 00:07:40,600 Вони, що ми називаємо масивів у С. Матриці, 2 одномірні масиви. 145 00:07:40,600 --> 00:07:42,350 А потім вище масиви ви можете 146 00:07:42,350 --> 00:07:48,560 є 3, 4, 5 або всі розміри числових значень, рядків, 147 00:07:48,560 --> 00:07:52,860 логічних значень. 148 00:07:52,860 --> 00:07:55,380 >> У вас також є списки, які свого роду асоціативного масиву. 149 00:07:55,380 --> 00:07:57,390 Я отримаю в цьому трохи. 150 00:07:57,390 --> 00:07:59,390 Так одна важлива річ, що поїздки людей в R 151 00:07:59,390 --> 00:08:01,470 не те, що їсти не реальні чисті атомні, типи. 152 00:08:01,470 --> 00:08:05,870 Там немає ніякого фактичного відмінність між число, як числове значення, 153 00:08:05,870 --> 00:08:07,920 і список числових значень. 154 00:08:07,920 --> 00:08:12,370 Числові значення фактично так само, як вектори довжини 1. 155 00:08:12,370 --> 00:08:14,959 І це має ряд важливі наслідки. 156 00:08:14,959 --> 00:08:17,500 Один з них, це означає, що ви можете зробити, речі дуже легко, які включають 157 00:08:17,500 --> 00:08:21,037 як додати номер вектора. 158 00:08:21,037 --> 00:08:23,120 R буде в основному фігура те, що Ви маєте на увазі. 159 00:08:23,120 --> 00:08:24,610 І я повернуся до цього в секунду. 160 00:08:24,610 --> 00:08:27,930 Це також означає, що немає ніякого способу для типу checker-- до такої міри, 161 00:08:27,930 --> 00:08:30,530 що щось подібне існує в r-- сказати 162 00:08:30,530 --> 00:08:33,780 коли ви пройшли в одному значенні коли він очікує масив або навпаки. 163 00:08:33,780 --> 00:08:39,159 А що може викликати деякі дивним неприємності, які я зіткнувся, коли 164 00:08:39,159 --> 00:08:42,252 Я використовував R під час мого річної роботи. 165 00:08:42,252 --> 00:08:43,710 І немає масиви змішаного типу. 166 00:08:43,710 --> 00:08:46,543 Таким чином, ви не можете мати масив були Перші елементи, я не знаю 167 00:08:46,543 --> 00:08:49,332 рядок "Джон" і Другим елементом є число 42. 168 00:08:49,332 --> 00:08:52,540 Якщо ви спробуєте це зробити, то ви отримаєте все просто перетворюється в рядок. 169 00:08:52,540 --> 00:08:54,760 Отже, ми маємо рядок Джон, рядок 42. 170 00:08:54,760 --> 00:08:58,250 171 00:08:58,250 --> 00:09:02,025 >> Так незвично синтаксичний features-- найбільш з R синтаксис дуже схожий на C. 172 00:09:02,025 --> 00:09:04,690 Є кілька важливих відмінностей. 173 00:09:04,690 --> 00:09:05,620 Введення дуже слабка. 174 00:09:05,620 --> 00:09:07,360 Так немає опису змінних. 175 00:09:07,360 --> 00:09:12,670 Призначення використовує дивний Оператор помилка менше, ніж дефіса. 176 00:09:12,670 --> 00:09:15,340 Коментарі є з хеш-мітки. 177 00:09:15,340 --> 00:09:19,230 Я думаю, тепер дні ми називаємо це хештегом хоча це насправді не accurate-- НЕ 178 00:09:19,230 --> 00:09:21,810 подвійний слеш. 179 00:09:21,810 --> 00:09:24,710 >> Модульні залишки з %% знаків. 180 00:09:24,710 --> 00:09:30,172 Ціле поділ з% /%, що дуже важко читати, коли він проектується 181 00:09:30,172 --> 00:09:30,880 на екрані. 182 00:09:30,880 --> 00:09:34,150 183 00:09:34,150 --> 00:09:37,200 Ви можете отримати діапазони цілі числа, в товстій кишці. 184 00:09:37,200 --> 00:09:41,840 Так 2,5 дасть вам вектор всіх чисел від 2 до 5. 185 00:09:41,840 --> 00:09:44,530 >> Масиви один індекс, який гвинтів багато людей 186 00:09:44,530 --> 00:09:47,540 , Якщо вони з більш типові мови програмування, 187 00:09:47,540 --> 00:09:50,450 як C, де більшість речі нульовий проіндексовані. 188 00:09:50,450 --> 00:09:54,420 Знову ж, це де спадщина R в як мова для що не 189 00:09:54,420 --> 00:09:56,560 професійні програмісти входить. 190 00:09:56,560 --> 00:09:59,680 Якщо ви соціолог або економіст або щось 191 00:09:59,680 --> 00:10:01,980 і ви намагаєтеся використовувати R в основному як доповнення 192 00:10:01,980 --> 00:10:03,832 щоб ваш важливіше професійна робота, 193 00:10:03,832 --> 00:10:06,040 Ви збираєтеся знайти одна індексації трохи більш природним. 194 00:10:06,040 --> 00:10:09,890 Тому що ви почати відлік на 1 в повсякденному житті, а не 0. 195 00:10:09,890 --> 00:10:13,260 >> Для-петлі, це схоже на Еогеасп побудувати в PHP, 196 00:10:13,260 --> 00:10:17,090 які ви отримаєте, щоб дізнатися in-- досить скоро. 197 00:10:17,090 --> 00:10:22,540 Що за цінність в вектор і то ви можете зробити щось зі значенням. 198 00:10:22,540 --> 00:10:24,040 АУДИТОРІЯ: Це придумали в лекції. 199 00:10:24,040 --> 00:10:26,248 Коннор Харріс: О, це придумати лекцію, відмінно. 200 00:10:26,248 --> 00:10:29,815 Аудиторія: призначення, це Передбачається, вказують справа наліво? 201 00:10:29,815 --> 00:10:31,440 Коннор Харріс: Справа наліво, так. 202 00:10:31,440 --> 00:10:34,720 Ви можете думати про нього, як про вартість право сунув у змінній 203 00:10:34,720 --> 00:10:36,240 зліва. 204 00:10:36,240 --> 00:10:36,781 АУДИТОРІЯ: ОК. 205 00:10:36,781 --> 00:10:39,770 206 00:10:39,770 --> 00:10:42,330 >> Коннор Харріс: І, нарешті Синтаксис функції трохи дивно. 207 00:10:42,330 --> 00:10:48,460 У вас є ім'я функції Foo, призначений щоб це ключове слово функції, а потім 208 00:10:48,460 --> 00:10:51,530 по всіх аргументів, а потім Тіло функції після цього. 209 00:10:51,530 --> 00:10:53,280 Знову ці речі можуть здається трохи дивним. 210 00:10:53,280 --> 00:10:57,181 Вони стали другою натурою після Ви працюєте з мовою для трохи. 211 00:10:57,181 --> 00:10:58,930 Так векторів, так Ви побудувати вектор 212 00:10:58,930 --> 00:11:04,550 це ви типу С, який є ключовим словом, то всі номери, які ви хочете або рядки 213 00:11:04,550 --> 00:11:06,490 або щось. 214 00:11:06,490 --> 00:11:07,995 Аргументи також вектори. 215 00:11:07,995 --> 00:11:09,620 Але результуючий масив отримує сплющені. 216 00:11:09,620 --> 00:11:14,385 Таким чином, ви не можете мати масиви де це деякі елементи є однієї цифри 217 00:11:14,385 --> 00:11:17,010 і деякі елементи самі є масивами. 218 00:11:17,010 --> 00:11:20,010 >> Так що, якщо ви намагаєтеся побудувати Масив були перший елемент 4 219 00:11:20,010 --> 00:11:22,370 а другий елемент це масив 3,5 ви 220 00:11:22,370 --> 00:11:25,890 просто отримати масив з трьох елементів, 4,3,5. 221 00:11:25,890 --> 00:11:27,760 Вони не можуть бути змішаного типу. 222 00:11:27,760 --> 00:11:32,290 Якщо ви спробуєте прочитати або написати поза межами вектора 223 00:11:32,290 --> 00:11:36,640 Ви отримаєте це значення називається Н.А. яка виступає за відсутнє значення. 224 00:11:36,640 --> 00:11:39,900 І це призначено для як статистиків, 225 00:11:39,900 --> 00:11:43,080 працюють з неповними набори даних. 226 00:11:43,080 --> 00:11:46,460 >> Якщо застосувати функцію, яка, як передбачається взяти тільки один номер на масив 227 00:11:46,460 --> 00:11:49,220 те, що ви отримаєте, тим Функція буде відображати по масиву. 228 00:11:49,220 --> 00:11:52,130 Так що, якщо ваша функція, скажімо, приймає число і повертає його площі. 229 00:11:52,130 --> 00:11:58,170 Ви застосовуєте, що в масив 2,3,5 Те, що ви отримаєте це масив 4,9,25. 230 00:11:58,170 --> 00:12:00,010 >> І, що дуже корисно тому що це означає, що ви 231 00:12:00,010 --> 00:12:03,374 не потрібно писати для петель для робить дуже прості речі, як застосування 232 00:12:03,374 --> 00:12:05,040 функція для всіх членів набору даних. 233 00:12:05,040 --> 00:12:08,557 Які, якщо ви працюєте з великим набори даних, що вам потрібно зробити багато. 234 00:12:08,557 --> 00:12:10,390 Бінарні функції прикладне запис за записом. 235 00:12:10,390 --> 00:12:12,430 Я отримаю на це. 236 00:12:12,430 --> 00:12:16,750 Ви можете отримати доступ до їх масивів або вектори в квадратних дужках. 237 00:12:16,750 --> 00:12:22,300 Так вектор ім'я квадратні дужки 1 дасть вам перший елемент. 238 00:12:22,300 --> 00:12:25,510 Вектор ім'я квадратні дужки 2 дасть вам другий елемент. 239 00:12:25,510 --> 00:12:27,530 >> Ви можете пройти по вектору індексів, і ви 240 00:12:27,530 --> 00:12:29,640 отримати назад в основному на південь фактора. 241 00:12:29,640 --> 00:12:34,990 Таким чином, ви можете зробити вектор ім'я дужки C, 2,4 і ви отримаєте з вектора, що містить 242 00:12:34,990 --> 00:12:38,804 другий і четвертий Елементи масиву. 243 00:12:38,804 --> 00:12:40,720 І якщо ви хочете просто короткий огляд статистики 244 00:12:40,720 --> 00:12:47,529 вектора, як ймовірних Діапазон, середній, максимальний, що завгодно, 245 00:12:47,529 --> 00:12:49,820 Ви можете просто ввести короткий вектор ім'я і отримати це. 246 00:12:49,820 --> 00:12:52,680 Це не дуже корисно в програмування, але якщо ви граєте 247 00:12:52,680 --> 00:12:55,990 навколо наборів даних, це зручно. 248 00:12:55,990 --> 00:12:58,650 >> Matrices-- основному вище масиви. 249 00:12:58,650 --> 00:13:01,190 Вони мають спеціальний синтаксис цієї нотації. 250 00:13:01,190 --> 00:13:07,620 Матриця з масивом, який отримує заповнене in-- шкода, матриці з даними, 251 00:13:07,620 --> 00:13:09,780 Кількість рядків, число стовпців. 252 00:13:09,780 --> 00:13:13,180 Якщо у вас є якісь дані, вона заповнює масив в основному відбувається зверху вниз 253 00:13:13,180 --> 00:13:13,380 перший. 254 00:13:13,380 --> 00:13:14,190 Потім зліва направо. 255 00:13:14,190 --> 00:13:15,030 Так що, як це. 256 00:13:15,030 --> 00:13:17,809 257 00:13:17,809 --> 00:13:19,600 І R має вбудований множення матриць, 258 00:13:19,600 --> 00:13:24,310 спектральне розкладання, діагоналізації, багато речей. 259 00:13:24,310 --> 00:13:27,785 Якщо ви хочете більше мірне масиви, так що 3, 4, 5, 260 00:13:27,785 --> 00:13:29,410 або щось розміри можна зробити. 261 00:13:29,410 --> 00:13:34,400 Синтаксис масив Dim дорівнює с, то список розмірів. 262 00:13:34,400 --> 00:13:38,620 Так що, якщо ви хочете 4 одновимірний масив з розмірами 4, 7, 8, 9, масив, 263 00:13:38,620 --> 00:13:45,470 тьмяний дорівнює с (4,7,8,9). 264 00:13:45,470 --> 00:13:51,180 >> Ви отримуєте доступ до окремі значення з кронштейнами Перший запис Другий запис коми. 265 00:13:51,180 --> 00:13:54,870 Ви можете отримати весь скибочки з рядків або стовпців. 266 00:13:54,870 --> 00:13:59,900 З цього неповного синтаксису це просто номер рядка або стовпця кому запитом 267 00:13:59,900 --> 00:14:00,400 число. 268 00:14:00,400 --> 00:14:02,874 269 00:14:02,874 --> 00:14:04,540 Так списки є свого роду, пов'язаного масиву. 270 00:14:04,540 --> 00:14:06,360 Вони мають свій власний синтаксис тут. 271 00:14:06,360 --> 00:14:08,320 Знову не відчайдушно скопіювати все це вниз. 272 00:14:08,320 --> 00:14:11,370 Це просто, щоб люди переживає слайдів пізніше 273 00:14:11,370 --> 00:14:13,089 Тобто все це в хорошій якості посилання. 274 00:14:13,089 --> 00:14:16,130 І це стане дуже природно, як тільки Я насправді пройти через демо. 275 00:14:16,130 --> 00:14:19,295 276 00:14:19,295 --> 00:14:20,920 Так перераховує в основному пов'язані масиви. 277 00:14:20,920 --> 00:14:27,040 Ви можете отримати доступ до значень з Ім'я списку, знак долара, ключ. 278 00:14:27,040 --> 00:14:31,370 Так що, якщо ваш список названий Foo, то ви можете звертатися до нього як що. 279 00:14:31,370 --> 00:14:37,032 Ви можете отримати всю пару ключ-значення шляхом передачі на площі індексу кронштейна. 280 00:14:37,032 --> 00:14:39,240 Якщо Ви читаєте з неіснуючого Ключ, ви отримаєте нульовий. 281 00:14:39,240 --> 00:14:41,150 Це не буде помилок. 282 00:14:41,150 --> 00:14:43,590 Справа в тому, R буде робити, багато з нульовою, як це можливо. 283 00:14:43,590 --> 00:14:46,580 І це може означати, що, якщо ви без вичікування отримати нульовий з 284 00:14:46,580 --> 00:14:51,840 який список читання, ви отримаєте деякі непередбачувані помилки додатково вниз 285 00:14:51,840 --> 00:14:52,620 лінія. 286 00:14:52,620 --> 00:14:54,890 >> Це трапилося зі мною мій річна робота, коли я був за допомогою R 287 00:14:54,890 --> 00:14:58,410 де я змінив, як якийсь Список був визначений в одному місці 288 00:14:58,410 --> 00:15:05,410 але не змінити пізніше на код, який читання значень з нього. 289 00:15:05,410 --> 00:15:10,190 І так, що сталося, я був читати нульові значення з цього списку, 290 00:15:10,190 --> 00:15:13,090 передаючи їх у функції, і, будучи дуже збентежений 291 00:15:13,090 --> 00:15:16,000 коли я отримав всі види Випадкові нескінченності з'являється 292 00:15:16,000 --> 00:15:16,790 в цій функції. 293 00:15:16,790 --> 00:15:20,730 Тому що, якщо ви застосовуєте певне максимальне або мінімальні функції на нуль, 294 00:15:20,730 --> 00:15:22,570 Ви отримаєте нескінченні значення з. 295 00:15:22,570 --> 00:15:26,400 296 00:15:26,400 --> 00:15:29,180 >> Кадри даних, вони підклас списку. 297 00:15:29,180 --> 00:15:31,170 Кожне значення являє собою вектор однакової довжини. 298 00:15:31,170 --> 00:15:34,220 І вони використовуються для представлення, в основному, таблиці даних. 299 00:15:34,220 --> 00:15:36,175 Там же цей синтаксис ініціалізації. 300 00:15:36,175 --> 00:15:38,800 Це все, знову ж таки, набагато ясніше, коли ви отримуєте на демо. 301 00:15:38,800 --> 00:15:42,240 302 00:15:42,240 --> 00:15:44,240 І хороша річ про кадри даних є те, що вам 303 00:15:44,240 --> 00:15:49,380 може дати імена всіх стовпцях та імена для всіх рядків. 304 00:15:49,380 --> 00:15:53,890 І так, що робить доступ їх небагато дружелюбніше. 305 00:15:53,890 --> 00:15:59,130 Крім того, це, як більшість функцій, які читати дані з електронних таблиць Excel 306 00:15:59,130 --> 00:16:03,820 або з текстових файлів, наприклад, читатиме свої дані. 307 00:16:03,820 --> 00:16:07,555 Посадять його в свого роду кадру даних. 308 00:16:07,555 --> 00:16:09,680 Так functions-- функцій Синтаксис трохи дивно. 309 00:16:09,680 --> 00:16:16,160 Знову це ім'я функції, призначати, цю функцію ключове слово, а потім 310 00:16:16,160 --> 00:16:17,900 список аргументів. 311 00:16:17,900 --> 00:16:24,080 Таким чином, є деякі приємні речі про те, як функції працюють тут. 312 00:16:24,080 --> 00:16:28,170 З одного боку, ви можете призначити значення за замовчуванням в деяких аргументів. 313 00:16:28,170 --> 00:16:32,910 Таким чином, ви можете сказати, R1 equals-- ви можете сказати Foo 314 00:16:32,910 --> 00:16:38,290 є функцією, де R1 дорівнює то за замовчуванням, якщо користувач вказує 315 00:16:38,290 --> 00:16:39,090 немає аргументів. 316 00:16:39,090 --> 00:16:41,932 В іншому випадку, це все, що він поклав в. 317 00:16:41,932 --> 00:16:44,140 І це дуже зручно, бо багато наших функцій 318 00:16:44,140 --> 00:16:47,910 часто мають десятки або сотні аргументів. 319 00:16:47,910 --> 00:16:51,210 Наприклад ті, для побудови графіків графіки або діаграми розсіювання креслення 320 00:16:51,210 --> 00:16:54,430 є аргументи, які контролюють всі з заголовка і осі 321 00:16:54,430 --> 00:16:59,512 етикетки з кольором ліній регресії. 322 00:16:59,512 --> 00:17:01,470 І так, якщо ви не хочете, щоб люди, сформулюйте 323 00:17:01,470 --> 00:17:04,050 кожний один з них сотні аргументів 324 00:17:04,050 --> 00:17:07,674 управління кожний аспект сюжет або регрес або будь-який інший, 325 00:17:07,674 --> 00:17:09,299 це добре, коли є ці значення за замовчуванням. 326 00:17:09,299 --> 00:17:12,700 327 00:17:12,700 --> 00:17:19,146 >> І тоді ви можете насправді написати, як ви бачили сюди. 328 00:17:19,146 --> 00:17:22,869 Або знайти кращий приклад. 329 00:17:22,869 --> 00:17:28,690 При виклику функцій ви можете насправді називати їхні імена, використовуючи аргумент. 330 00:17:28,690 --> 00:17:33,919 Так ось приклад конструктор матриця. 331 00:17:33,919 --> 00:17:34,960 Це приймає три аргументи. 332 00:17:34,960 --> 00:17:36,760 Зазвичай у вас є дані, яка представляє собою вектор. 333 00:17:36,760 --> 00:17:38,920 Ви повинні N рядок, яка це кількість рядків. 334 00:17:38,920 --> 00:17:41,160 Ви повинні N cols-- число стовпців. 335 00:17:41,160 --> 00:17:43,920 Справа в тому, якщо ви наберете N ряд дорівнює незалежно 336 00:17:43,920 --> 00:17:46,520 і N кол одно що б то ні коли Ви виклику цієї функції, 337 00:17:46,520 --> 00:17:47,770 Ви можете фактично відновлювати їх. 338 00:17:47,770 --> 00:17:51,590 Таким чином, ви можете помістити N сідловини перший і N рядків секунду, і це не буде мати ніякого значення. 339 00:17:51,590 --> 00:17:54,660 Так що це гарна маленька особливість. 340 00:17:54,660 --> 00:17:56,260 >> Хіба імпорт і експорт. 341 00:17:56,260 --> 00:18:00,010 Це може бути зроблено, в основному. 342 00:18:00,010 --> 00:18:03,816 Є також кошти, щоб виписати довільне R об'єктів в двійковий файл 343 00:18:03,816 --> 00:18:05,190 а потім прочитати їх назад пізніше. 344 00:18:05,190 --> 00:18:08,030 Що дуже зручно, якщо ви робите велика інтерактивна сесія R 345 00:18:08,030 --> 00:18:12,850 і ви повинні зберегти речі дуже швидко. 346 00:18:12,850 --> 00:18:16,460 За замовчуванням R має робочий каталог що файли будуть виписані в 347 00:18:16,460 --> 00:18:19,410 і читати ще в с. 348 00:18:19,410 --> 00:18:22,350 Ви можете бачити, що з getwg, змінити його з setdw. 349 00:18:22,350 --> 00:18:25,630 Нічого особливо цікаво тут 350 00:18:25,630 --> 00:18:28,270 >> Так що тепер фактичні статистичні дані stuff-- полілінейное регресії. 351 00:18:28,270 --> 00:18:30,960 352 00:18:30,960 --> 00:18:34,910 Так звичайним синтаксисом це трохи складніше. 353 00:18:34,910 --> 00:18:37,260 Модель є великий об'єкт в принципі. 354 00:18:37,260 --> 00:18:39,910 Він отримує призначений Л.М., що виклик функції. 355 00:18:39,910 --> 00:18:43,840 Перший елемент, то у Тільда ​​x1 плюс все. 356 00:18:43,840 --> 00:18:46,574 357 00:18:46,574 --> 00:18:47,990 Мій Синтаксис тут трохи заплутаним. 358 00:18:47,990 --> 00:18:49,490 Я абсолютно вибачте, це є стандартним способом 359 00:18:49,490 --> 00:18:50,990 що комп'ютерні науки книги цього. 360 00:18:50,990 --> 00:18:54,890 Але це трохи дивно. 361 00:18:54,890 --> 00:18:58,200 >> Тому в основному, це лм дужки, перший пункт 362 00:18:58,200 --> 00:19:06,730 в переменная-- вибачте, залежить змінної x1 Тільда ​​плюс х2 плюс 363 00:19:06,730 --> 00:19:10,910 Однак багато незалежні Змінні у вас є. 364 00:19:10,910 --> 00:19:14,240 І тоді вони можуть бути або Вектори, все ж довжини. 365 00:19:14,240 --> 00:19:16,220 Або вони можуть бути колонки Заголовки в кадрі даних 366 00:19:16,220 --> 00:19:18,553 що ви просто вказуєте в Другий аргумент кадр даних. 367 00:19:18,553 --> 00:19:23,270 368 00:19:23,270 --> 00:19:26,380 >> Ви також можете вказати більш складна формула 369 00:19:26,380 --> 00:19:31,990 так що вам не доведеться лінійно регрес залежну змінну один, 370 00:19:31,990 --> 00:19:34,440 або один вектор на вже існуючій вектора. 371 00:19:34,440 --> 00:19:38,070 Ви можете зробити, наприклад, компонент вектора у в квадраті плюс 1 372 00:19:38,070 --> 00:19:42,100 і регрес, що проти увійти в який-небудь інший вектор. 373 00:19:42,100 --> 00:19:45,200 Ви можете роздрукувати Анотації модель з назвою цієї команди 374 00:19:45,200 --> 00:19:48,607 summary-- тільки короткий дужки модель. 375 00:19:48,607 --> 00:19:50,190 Знову щось ще, що я повинен уточнити. 376 00:19:50,190 --> 00:19:55,407 377 00:19:55,407 --> 00:19:58,615 Щось ще, що буде виправлено отримати коли слайди вгору в Інтернеті. 378 00:19:58,615 --> 00:20:01,127 379 00:20:01,127 --> 00:20:03,210 Якщо ви просто хочете, щоб обчислити простий кореляції 380 00:20:03,210 --> 00:20:09,170 Ви можете використовувати кореляції вектор 1 вектор 2 основна функція. 381 00:20:09,170 --> 00:20:11,856 Метод за замовчуванням Кореляції Пірсона. 382 00:20:11,856 --> 00:20:13,480 Такі стандартними ви можете зробити. 383 00:20:13,480 --> 00:20:15,990 Там також Спірмена і Кенделл кореляції 384 00:20:15,990 --> 00:20:19,530 які є одними різноманітність Оцінка кореляції порядку. 385 00:20:19,530 --> 00:20:23,600 Ну вони не розраховують продукт моменти між самими векторів, 386 00:20:23,600 --> 00:20:28,511 але рангу замовлень вектора. 387 00:20:28,511 --> 00:20:29,510 Я поясню пізніше. 388 00:20:29,510 --> 00:20:30,120 >> АУДИТОРІЯ: Швидкий питання 389 00:20:30,120 --> 00:20:30,360 >> CONNER Харріс: Звичайно. 390 00:20:30,360 --> 00:20:33,151 >> АУДИТОРІЯ: Отже, коли ви розрахунку З тієї простої кореляції дійсно 391 00:20:33,151 --> 00:20:37,655 Ви припускаєте, що є статистичний Значення кореляції? 392 00:20:37,655 --> 00:20:39,030 CONNER Харріс: Ви не повинні. 393 00:20:39,030 --> 00:20:41,840 394 00:20:41,840 --> 00:20:43,960 ЛМ в основному просто машина. 395 00:20:43,960 --> 00:20:47,690 Це займе дві речі і він буде випльовувати 396 00:20:47,690 --> 00:20:49,770 Коефіцієнти для кращої підгонки лінії. 397 00:20:49,770 --> 00:20:52,310 Він також повідомляє, стандарт Помилки на цих коефіцієнтів. 398 00:20:52,310 --> 00:20:55,865 І він скаже вам, як це перехоплення статистично значущим 399 00:20:55,865 --> 00:20:56,740 або різниця від 0. 400 00:20:56,740 --> 00:20:59,400 Хіба нахил з кращих підходящу лінію статистично 401 00:20:59,400 --> 00:21:01,510 відмінний від нуля, і так далі. 402 00:21:01,510 --> 00:21:06,260 Так що не припускає нічого, я думаю, краще відповідь на ваше запитання. 403 00:21:06,260 --> 00:21:07,410 ДОБРЕ. 404 00:21:07,410 --> 00:21:14,650 >> Plotting-- тому основною причиною ви повинні використовувати R, як полілінейного регресії. 405 00:21:14,650 --> 00:21:17,320 В основному кожна мова має деякі засіб для цього. 406 00:21:17,320 --> 00:21:21,365 І, чесно кажучи синтаксис R для регресії трохи таємницею. 407 00:21:21,365 --> 00:21:22,990 Але побудова, де це дійсно сяє. 408 00:21:22,990 --> 00:21:28,090 >> Функція робочою конячкою є ділянка і це займає два вектори х та у. 409 00:21:28,090 --> 00:21:33,010 А потім еліпси виступає за дуже велика кількість додаткових аргументів, які 410 00:21:33,010 --> 00:21:39,190 контролювати все, починаючи від назв квітів до різних ліній або різних точках, 411 00:21:39,190 --> 00:21:40,200 типу ділянки. 412 00:21:40,200 --> 00:21:42,250 Ви можете мати розкид ділянки або ділянки лінії. 413 00:21:42,250 --> 00:21:47,900 414 00:21:47,900 --> 00:21:49,710 >> [Нерозбірливо] 2 вектори однакової довжини. 415 00:21:49,710 --> 00:21:53,780 Ви можете передувати це з прикріпіть кадр даних в сценарії. 416 00:21:53,780 --> 00:22:01,220 І це дозволить вам використовувати стовпець тільки Заголовки замість окремих векторів. 417 00:22:01,220 --> 00:22:05,410 Ви можете додати оптимальне прилягання лінії та локальної регресії кривих на ваш графіці. 418 00:22:05,410 --> 00:22:09,390 >> Ці команди перераховані тут, лінії AB і ліній, 419 00:22:09,390 --> 00:22:11,640 за замовчуванням це отримати написано в поп вікнами 420 00:22:11,640 --> 00:22:15,560 оскільки він припускає, що Ви використовуєте R в інтерактивному режимі. 421 00:22:15,560 --> 00:22:17,310 Якщо ви не ви можете написати два файли, що 422 00:22:17,310 --> 00:22:21,600 в будь-якому форматі дійсно хочете. 423 00:22:21,600 --> 00:22:25,410 На жаль, у мене є опечатку Я просто зрозумів. 424 00:22:25,410 --> 00:22:30,887 425 00:22:30,887 --> 00:22:32,720 Якщо ви хочете, щоб відкрити інший графічний пристрій 426 00:22:32,720 --> 00:22:39,200 Ви можете використовувати цю функцію під назвою PNG або JPEG або багато інших форматів. 427 00:22:39,200 --> 00:22:42,319 І ви можете написати графіки на будь-яке ім'я файлу, який ви вкажете. 428 00:22:42,319 --> 00:22:45,110 Щоб скасувати, що ви повинні use-- Я не пишу це в slide-- 429 00:22:45,110 --> 00:22:49,650 але є функція називається DEV точка с, що не приймає аргументів. 430 00:22:49,650 --> 00:22:51,517 >> Тоді є об'єкти для 3D креслення 431 00:22:51,517 --> 00:22:53,350 та контуру змові якщо ви хочете, щоб зробити 432 00:22:53,350 --> 00:22:55,700 Графіки двох незалежних змінних. 433 00:22:55,700 --> 00:22:57,150 Я не буду вдаватися в ці зараз. 434 00:22:57,150 --> 00:22:59,130 >> Є також деякі засоби для анімації 435 00:22:59,130 --> 00:23:01,300 ті, як правило підтримуються третіми сторонами. 436 00:23:01,300 --> 00:23:06,330 Я зробив анімацію з R графіків, але я не використав ці третя сторона 437 00:23:06,330 --> 00:23:06,940 бібліотеки. 438 00:23:06,940 --> 00:23:09,929 Так що я не можу підтвердити про те, як вони гарні. 439 00:23:09,929 --> 00:23:12,220 Те, що я рекомендую, якщо ви хочете зробити анімацію, використовуючи R 440 00:23:12,220 --> 00:23:16,480 що ви можете виписати всі кадри для анімації 441 00:23:16,480 --> 00:23:18,470 а потім ви можете використовувати program-- третя сторона 442 00:23:18,470 --> 00:23:23,630 типові з них називається FFmpeg або ImageMagick-- зшити 443 00:23:23,630 --> 00:23:26,540 всі ваші кадри в одну анімацію. 444 00:23:26,540 --> 00:23:28,380 >> Так час для демонстрації. 445 00:23:28,380 --> 00:23:31,030 446 00:23:31,030 --> 00:23:37,189 Так що, якщо ви використовуєте який-небудь Unix, як системи що Linux BSD, але хто використовує BSD. 447 00:23:37,189 --> 00:23:39,730 OS X відкрийте вікно терміналу і Type R в командному рядку. 448 00:23:39,730 --> 00:23:42,820 Якщо у вас є R студію або і т.п., які також працює. 449 00:23:42,820 --> 00:23:46,270 Для користувачів Windows, ви повинні бути в змозі знайти R в меню Пуск. 450 00:23:46,270 --> 00:23:50,390 Слід назвати те як R x64 3 Справа все. 451 00:23:50,390 --> 00:23:53,110 Відкрийте, що там. 452 00:23:53,110 --> 00:23:58,850 >> Так що тепер дозвольте мені відкрити вікно терміналу. 453 00:23:58,850 --> 00:24:02,562 Гаразд, пошук. 454 00:24:02,562 --> 00:24:03,520 АУДИТОРІЯ: Команда-космічної 455 00:24:03,520 --> 00:24:06,675 CONNER Харріс: Команда-космічної, спасибі. 456 00:24:06,675 --> 00:24:10,030 Я зазвичай не використовувати комп'ютери Mac. 457 00:24:10,030 --> 00:24:13,310 Термінал, показати нове вікно. 458 00:24:13,310 --> 00:24:18,120 Нове вікно налаштування Основний, Р. Таким чином, ви повинні отримати 459 00:24:18,120 --> 00:24:22,230 вітальне повідомлення, щось на зразок цього. 460 00:24:22,230 --> 00:24:31,060 >> Так що я за допомогою R в інтерактивному режимі. 461 00:24:31,060 --> 00:24:32,719 Ви також можете написати R скрипти звичайно. 462 00:24:32,719 --> 00:24:34,510 В основному сценарії виконуються точно таким же чином, як 463 00:24:34,510 --> 00:24:40,250 якби ви сиділи за комп'ютером набравши в кожному рядку по одному за раз. 464 00:24:40,250 --> 00:24:42,660 Отже, давайте почнемо з створення вектора. 465 00:24:42,660 --> 00:24:46,230 Стрілка C 1, 2. 466 00:24:46,230 --> 00:24:49,400 1, 2, 4. 467 00:24:49,400 --> 00:24:50,050 Так, звичайно. 468 00:24:50,050 --> 00:24:51,630 Я можу зробити розмір шрифту більше. 469 00:24:51,630 --> 00:24:53,030 >> АУДИТОРІЯ: Команда-Плюс 470 00:24:53,030 --> 00:24:53,650 >> CONNER Харріс: Команда-Плюс. 471 00:24:53,650 --> 00:24:54,191 Команда-Плюс. 472 00:24:54,191 --> 00:24:57,610 473 00:24:57,610 --> 00:25:00,370 Гаразд, як це? 474 00:25:00,370 --> 00:25:00,870 Добре? 475 00:25:00,870 --> 00:25:01,551 ДОБРЕ. 476 00:25:01,551 --> 00:25:03,300 Отже, давайте почнемо з оголосивши список вектор. 477 00:25:03,300 --> 00:25:08,710 Зробіть, стрілка, C 1,2,4. 478 00:25:08,710 --> 00:25:11,181 Ми можемо побачити. 479 00:25:11,181 --> 00:25:12,680 Не турбуйтеся про кронштейні там. 480 00:25:12,680 --> 00:25:18,590 У дужки так що якщо ви роздрукувати дуже довгі масиви, ми можемо, де ви знаходитесь. 481 00:25:18,590 --> 00:25:26,987 Одним із прикладів може бути, якщо я просто хочу діапазоні від 2 до 200. 482 00:25:26,987 --> 00:25:28,820 Якщо я надрукував дуже довго масив, кронштейни 483 00:25:28,820 --> 00:25:31,060 просто так я можу тримати трек, який індекс 484 00:25:31,060 --> 00:25:33,250 ми на, якщо я шукаю через це візуально. 485 00:25:33,250 --> 00:25:36,570 486 00:25:36,570 --> 00:25:38,280 Так чи інакше, у нас є. 487 00:25:38,280 --> 00:25:43,326 >> Так що я сказав раніше, ніж взаємодіяти, що масиви дуже красиво, наприклад, 488 00:25:43,326 --> 00:25:44,450 унарні операції, як це. 489 00:25:44,450 --> 00:25:46,500 Так що ви думаєте, я буду отримати, якщо я друкую плюс 1? 490 00:25:46,500 --> 00:25:49,630 491 00:25:49,630 --> 00:25:51,140 Так. 492 00:25:51,140 --> 00:25:54,250 Добре, а тепер я буду робити це відрізняється масив. 493 00:25:54,250 --> 00:26:01,650 Скажімо б в 20,40, 80. 494 00:26:01,650 --> 00:26:03,400 Так що ж ви думаєте ця команда буде робити? 495 00:26:03,400 --> 00:26:09,962 496 00:26:09,962 --> 00:26:10,670 Додати елементи. 497 00:26:10,670 --> 00:26:14,950 І так в основному це, що він робить. 498 00:26:14,950 --> 00:26:16,740 Так що це досить зручно. 499 00:26:16,740 --> 00:26:23,800 Так що я, як про я роблю це. З Тобто, скажімо, в 6 разів з 1 по 10. 500 00:26:23,800 --> 00:26:26,789 501 00:26:26,789 --> 00:26:28,830 Так що я хочу, щоб побачити міститься, як ви думаєте? 502 00:26:28,830 --> 00:26:37,110 503 00:26:37,110 --> 00:26:38,110 Так що все кратні шести. 504 00:26:38,110 --> 00:26:42,170 Тепер, що ви думаєте, станеться, якщо я це зробити? 505 00:26:42,170 --> 00:26:48,090 Я зроблю це трохи ясніше, C, C. 506 00:26:48,090 --> 00:26:50,365 Так що ж відбувається, чи не так думаю, якби я це зробити? 507 00:26:50,365 --> 00:26:51,488 плюс гр. 508 00:26:51,488 --> 00:26:55,550 509 00:26:55,550 --> 00:26:56,050 [Нерозбірливо] 510 00:26:56,050 --> 00:26:58,552 511 00:26:58,552 --> 00:27:02,350 >> АУДИТОРІЯ: Або помилка або тільки додає перші три елемента. 512 00:27:02,350 --> 00:27:04,510 >> CONNER Харріс: Не зовсім. 513 00:27:04,510 --> 00:27:05,522 Це те, що ми отримали. 514 00:27:05,522 --> 00:27:08,910 Що відбувається, є більш короткий Масив, а, отримав циклічне. 515 00:27:08,910 --> 00:27:13,990 Таким чином, ми отримали 124, 124, 124. 516 00:27:13,990 --> 00:27:15,710 Так. 517 00:27:15,710 --> 00:27:18,940 І в принципі, ви можете переглянути це поведінка раніше, плюс 1, 518 00:27:18,940 --> 00:27:22,190 як підклас цієї поведінки, де найкоротший масив тільки кількість 519 00:27:22,190 --> 00:27:25,410 1, який є масивом один елемент. 520 00:27:25,410 --> 00:27:27,740 Я просто говорю вектор все час замість масиву, 521 00:27:27,740 --> 00:27:30,290 тому що це те, що г Документація зазвичай робить. 522 00:27:30,290 --> 00:27:33,070 Це вкоренилося зі звичкою. 523 00:27:33,070 --> 00:27:37,590 >> ОК, і тепер у нас є цей масив. 524 00:27:37,590 --> 00:27:38,830 Отже, ми маємо цей масив, гр. 525 00:27:38,830 --> 00:27:41,380 Ми можемо отримати зведення Статистика по C, зведеної гр. 526 00:27:41,380 --> 00:27:46,920 527 00:27:46,920 --> 00:27:48,280 І це приємно. 528 00:27:48,280 --> 00:27:51,070 529 00:27:51,070 --> 00:27:52,670 Так що тепер давайте зробимо деякі матричні речі. 530 00:27:52,670 --> 00:27:56,160 Скажімо, м являє собою матрицю. 531 00:27:56,160 --> 00:27:57,780 Давайте зробимо йому три на три один. 532 00:27:57,780 --> 00:28:01,630 Так Nrows дорівнює 3, і Ncols дорівнює 3. 533 00:28:01,630 --> 00:28:04,190 534 00:28:04,190 --> 00:28:10,710 І для даних давайте do-- так, що Як ви думаєте, це буде робити? 535 00:28:10,710 --> 00:28:15,310 536 00:28:15,310 --> 00:28:16,580 >> Право, це наступний. 537 00:28:16,580 --> 00:28:17,970 Це nrow і ncolumn. 538 00:28:17,970 --> 00:28:22,164 539 00:28:22,164 --> 00:28:24,580 Так що я зробив, я маю оголосив трьох по три матриці 540 00:28:24,580 --> 00:28:26,950 і я пройшов в масиві дев'яти елементів. 541 00:28:26,950 --> 00:28:30,530 Так логарифма все Елементи одного до дев'яти. 542 00:28:30,530 --> 00:28:33,400 543 00:28:33,400 --> 00:28:37,285 І всі ці значення заповнюють вгору по array-- вибачте? 544 00:28:37,285 --> 00:28:38,660 АУДИТОРІЯ: Це базові 10 журнали? 545 00:28:38,660 --> 00:28:41,284 CONNER Харріс: Ні, журнал натуральні логарифми, так підло електронної. 546 00:28:41,284 --> 00:28:44,886 547 00:28:44,886 --> 00:28:47,010 Так, якщо ви хочете база 10 журналу, я думаю, ви повинні 548 00:28:47,010 --> 00:28:51,620 увійти всі, ділиться на журнал 10. 549 00:28:51,620 --> 00:28:56,750 І тому дані з [нерозбірливо] тільки заповнює масиву, так і зверху вниз, 550 00:28:56,750 --> 00:28:59,490 потім зліва направо. 551 00:28:59,490 --> 00:29:06,890 І якщо ви хочете, щоб зробити деякі інші Масив, скажімо п матриця. 552 00:29:06,890 --> 00:29:10,317 Давайте робити, я не знаю, від 2 до 13 років. 553 00:29:10,317 --> 00:29:11,900 Або я зроблю щось більш цікаве. 554 00:29:11,900 --> 00:29:13,770 Я зроблю 2 до 4. 555 00:29:13,770 --> 00:29:15,780 nrow дорівнює, скажімо, 3. 556 00:29:15,780 --> 00:29:18,992 Ncol дорівнює 4. 557 00:29:18,992 --> 00:29:20,360 п. 558 00:29:20,360 --> 00:29:22,090 Таким чином, ми отримали це. 559 00:29:22,090 --> 00:29:26,130 >> А тепер, якщо ми хочемо, щоб помножити них ми хотіли б зробити п відсотків раз відсотків, 560 00:29:26,130 --> 00:29:27,680 бо це н. 561 00:29:27,680 --> 00:29:30,234 562 00:29:30,234 --> 00:29:31,400 І у нас є твори матриць. 563 00:29:31,400 --> 00:29:33,970 564 00:29:33,970 --> 00:29:37,810 За їх речі, ви побачити, як коли я заявив, п, 2 до 4 565 00:29:37,810 --> 00:29:43,570 вектор не отримав поки циклічне наповнив всю п? 566 00:29:43,570 --> 00:29:45,710 Якщо ви хочете взяти власне розкладання, 567 00:29:45,710 --> 00:29:46,960 це те, що ми можемо зробити дуже легко. 568 00:29:46,960 --> 00:29:47,709 Ми можемо зробити власні вектори п. 569 00:29:47,709 --> 00:29:52,290 570 00:29:52,290 --> 00:29:54,600 І так це наш перший стикаються зі списком. 571 00:29:54,600 --> 00:29:57,000 >> Так власне п список з двома ключами. 572 00:29:57,000 --> 00:29:58,430 Значення, який є цей масив тут. 573 00:29:58,430 --> 00:30:01,030 І вектори, які це масив тут. 574 00:30:01,030 --> 00:30:08,240 Так що, якщо ви хочете, щоб витягти, говорити, що це третій стовпець 575 00:30:08,240 --> 00:30:13,080 з матриці власних векторів, через власні вектори-стовпці векторів. 576 00:30:13,080 --> 00:30:24,400 Таким чином, ми можемо зробити VEC власні вектори знак долара н Вектори, кома 3, з [нерозбірливо]. 577 00:30:24,400 --> 00:30:29,800 578 00:30:29,800 --> 00:30:30,900 Століття. 579 00:30:30,900 --> 00:30:34,100 Хіба що, як ви могли б очікувати. 580 00:30:34,100 --> 00:30:39,210 >> Тоді скажіть п раз відсотків раз VEC. 581 00:30:39,210 --> 00:30:42,610 582 00:30:42,610 --> 00:30:48,320 Таким чином, результат тут, безумовно, виглядає як якщо ми посіли третє власне тут, 583 00:30:48,320 --> 00:30:50,390 що відповідає третій власний. 584 00:30:50,390 --> 00:30:53,190 Це просто помножити все в це власний компонент-мудрий, 585 00:30:53,190 --> 00:30:53,990 за власним. 586 00:30:53,990 --> 00:30:57,760 І це те, що ми могли б очікувати, тому що це те, що власні значення. 587 00:30:57,760 --> 00:31:00,890 Хто-небудь тут не приймати лінійну алгебру? 588 00:31:00,890 --> 00:31:02,530 Пару чоловік, ОК. 589 00:31:02,530 --> 00:31:04,030 Просто включите свої мізки від небагато. 590 00:31:04,030 --> 00:31:07,490 591 00:31:07,490 --> 00:31:20,720 І справді, якщо ми візьмемо власні вектори п долар значення знак 3 рази VEC, 592 00:31:20,720 --> 00:31:21,810 а отримати те ж саме. 593 00:31:21,810 --> 00:31:24,726 Це відформатований інакше як поспіль вектор замість вектора-стовпця, 594 00:31:24,726 --> 00:31:25,640 але велика справа. 595 00:31:25,640 --> 00:31:29,430 596 00:31:29,430 --> 00:31:35,170 І тому ті, в основному симпатична речі, які ми можемо зробити з матрицями, 597 00:31:35,170 --> 00:31:36,489 продемонстрували списки. 598 00:31:36,489 --> 00:31:39,030 Я повинен продемонструвати хороший речі про функції, а також. 599 00:31:39,030 --> 00:31:41,750 >> Отже, давайте say-- [нерозбірливо] Функція, виклик давайте 600 00:31:41,750 --> 00:31:51,960 це функ проти функції N N squared-- насправді, це не дійсно кращий. 601 00:31:51,960 --> 00:31:55,632 а, б, а квадрат плюс б. 602 00:31:55,632 --> 00:31:58,547 603 00:31:58,547 --> 00:32:00,380 Таким чином, одна річ про Функції, знову ж, вони 604 00:32:00,380 --> 00:32:01,963 не потрібно явні повернення заяви. 605 00:32:01,963 --> 00:32:04,250 Таким чином, ви можете просто-- Останнє твердження оцінюється 606 00:32:04,250 --> 00:32:07,502 буде заява, повернувшись, або повертається значення. 607 00:32:07,502 --> 00:32:10,460 Таким чином, в цьому випадку, ми тільки оцінки одна заява, прямокутної плюс б. 608 00:32:10,460 --> 00:32:12,043 Це буде повернення значення за замовчуванням. 609 00:32:12,043 --> 00:32:14,530 Він ніколи не зашкодить, щоб покласти в повертати значення явно, 610 00:32:14,530 --> 00:32:16,880 особливо якщо ви маєте справу з Функція дуже складної логіки 611 00:32:16,880 --> 00:32:17,380 текти. 612 00:32:17,380 --> 00:32:18,450 Але ви не потребуєте в них. 613 00:32:18,450 --> 00:32:24,890 Так що тепер ми можемо зробити FUNC 5, 1, і це в основному те, що ви очікували. 614 00:32:24,890 --> 00:32:29,146 615 00:32:29,146 --> 00:32:31,270 Щось ще ми можемо зробити, ми можемо насправді Func б 616 00:32:31,270 --> 00:32:33,260 дорівнює 1, дорівнює 5. 617 00:32:33,260 --> 00:32:36,870 618 00:32:36,870 --> 00:32:40,770 Так що, якщо ми визначаємо, який номер тут, який аргумент йде, який аргумент 619 00:32:40,770 --> 00:32:44,680 у функції, ми можемо перевернути навколо ці значення, куди ми хочемо. 620 00:32:44,680 --> 00:32:48,405 >> АУДИТОРІЯ: Є причина, написати його з б 621 00:32:48,405 --> 00:32:52,404 дорівнює, а не просто за допомогою цифри і кома? 622 00:32:52,404 --> 00:32:54,820 CONNER Харріс: Так, як правило, це зробити, якщо у вас є функції 623 00:32:54,820 --> 00:32:58,540 з великою кількістю аргументів. 624 00:32:58,540 --> 00:33:00,690 Це може часто бути, як Прапори, ви б тільки 625 00:33:00,690 --> 00:33:03,130 хочете використовувати в рідкісних випадках. 626 00:33:03,130 --> 00:33:06,740 І таким чином можна only-- вас можете звернутися до конкретних аргументів 627 00:33:06,740 --> 00:33:09,110 що ви хочете використовувати значення не за замовчуванням для, 628 00:33:09,110 --> 00:33:14,470 і ви не повинні виписати купа прапорів дорівнює брехня за ними. 629 00:33:14,470 --> 00:33:19,710 Або я можу написати це знову значення за замовчуванням, як б дорівнює 2. 630 00:33:19,710 --> 00:33:26,289 І тоді я міг би зробити ф FUNC, Я зроблю 4, 1 на цей раз. 631 00:33:26,289 --> 00:33:28,580 І 17, що квадрат 4 плюс 1, як ви могли б очікувати. 632 00:33:28,580 --> 00:33:34,290 >> Але я міг також просто називаємо це з FUNC 4, 633 00:33:34,290 --> 00:33:36,970 і я отримаю 18, бо Я не вказати б. 634 00:33:36,970 --> 00:33:38,550 Так б отримує значення за замовчуванням 2. 635 00:33:38,550 --> 00:33:41,700 636 00:33:41,700 --> 00:33:47,200 >> ОК, так що тепер, якщо ви наступних разом з демо, 637 00:33:47,200 --> 00:33:51,010 введіть наступний рядок у вашому розпорядженні підкажіть і подивитися, що йде вгору. 638 00:33:51,010 --> 00:33:52,090 Насправді, цього не роблять. 639 00:33:52,090 --> 00:33:52,590 Введіть цей. 640 00:33:52,590 --> 00:33:57,780 641 00:33:57,780 --> 00:34:01,000 Ви повинні отримати щось на зразок цього. 642 00:34:01,000 --> 00:34:04,780 Так mtcars є побудований в даних набір для демонстрації 643 00:34:04,780 --> 00:34:13,550 Цілі, що приходить with--, що спадає в за умовчанням з вашого дистрибутива р 644 00:34:13,550 --> 00:34:19,211 Це збірка статистичних даних з 1 974 випуск журналу Motor Trend в 645 00:34:19,211 --> 00:34:20,710 по ряду різних моделей автомобілів. 646 00:34:20,710 --> 00:34:28,270 >> Так що миль на галон, cylinders-- Я забув, що DISP is-- кінських сил. 647 00:34:28,270 --> 00:34:31,610 648 00:34:31,610 --> 00:34:32,420 Ймовірно. 649 00:34:32,420 --> 00:34:36,920 Якщо ви просто автомобілі Google МТ, то один з перших результатів 650 00:34:36,920 --> 00:34:38,730 буде від Офіційний г документація 651 00:34:38,730 --> 00:34:41,080 і він буде пояснити всі ці поля даних. 652 00:34:41,080 --> 00:34:47,020 Так вага is-- мас є Вага автомобіля в тоннах. 653 00:34:47,020 --> 00:34:48,880 Питання сек час чверть милі. 654 00:34:48,880 --> 00:34:52,409 655 00:34:52,409 --> 00:34:55,850 Так що тепер ми можемо зробити деякі забавні речі про автомобілі МТ це поле даних. 656 00:34:55,850 --> 00:35:01,640 >> Таким чином, ми можемо зробити щось як імена рядків, Mt автомобілів. 657 00:35:01,640 --> 00:35:05,490 І це список всіх рядків в Набір даних, які Імена автомобілів. 658 00:35:05,490 --> 00:35:10,780 Ми можемо зробити COLNAMES, Mt автомобілів в цьому. 659 00:35:10,780 --> 00:35:15,500 Якщо ви MT автомобілі, суб-числовий індекс, як 2. 660 00:35:15,500 --> 00:35:18,177 ми отримуємо другу колонку з це, яке було б циліндри. 661 00:35:18,177 --> 00:35:19,370 >> АУДИТОРІЯ: Що ви робили? 662 00:35:19,370 --> 00:35:21,570 >> CONNER Харріс: Я набрав м автомобілі, кронштейни е, 663 00:35:21,570 --> 00:35:24,180 який дав мені другий колонка з МТ автомобілів. 664 00:35:24,180 --> 00:35:34,501 665 00:35:34,501 --> 00:35:38,110 Або, якщо ми хочемо рядок, я можу ввести mtcars коми 2, наприклад. 666 00:35:38,110 --> 00:35:41,850 667 00:35:41,850 --> 00:35:46,390 Інша раунд 2 кома, як це. 668 00:35:46,390 --> 00:35:48,880 І, що йде в рядку. 669 00:35:48,880 --> 00:35:54,680 Це ось якраз дає вам стовпець, але колона в якості вектора. 670 00:35:54,680 --> 00:36:04,634 671 00:36:04,634 --> 00:36:06,425 Я просто зрозумів, тепер я забув, щоб продемонструвати 672 00:36:06,425 --> 00:36:09,150 деякі цікаві речі про вектори що ви можете зробити з індексами. 673 00:36:09,150 --> 00:36:10,480 Отже, дозвольте мені зробити це прямо зараз. 674 00:36:10,480 --> 00:36:17,130 Так давайте зробимо з gets-- покласти це на pause-- 2 рази з 1 по 10. 675 00:36:17,130 --> 00:36:21,360 Так з просто буде вектор 2 по 20. 676 00:36:21,360 --> 00:36:24,640 Я можу взяти елементи, такі як це, с2. 677 00:36:24,640 --> 00:36:30,942 Я можу передати у векторі як це, дозвольте мені C-- 678 00:36:30,942 --> 00:36:34,470 використовувати інше ім'я, ніж з, як VEC гр. 679 00:36:34,470 --> 00:36:37,591 680 00:36:37,591 --> 00:36:39,340 В принципі, я роблю це так ви не отримаєте 681 00:36:39,340 --> 00:36:45,010 плутати між C як Функція будівництво вектор, 682 00:36:45,010 --> 00:36:48,800 а потім з ім'ям змінної. 683 00:36:48,800 --> 00:36:53,120 Vec дужки гр 4, 5, 7. 684 00:36:53,120 --> 00:36:56,540 Це буде витягти мене четвертий, п'ятий, і сім елементів масиву. 685 00:36:56,540 --> 00:37:01,740 Я можу зробити VEC, покласти в негативній Індекс, як негативного 4. 686 00:37:01,740 --> 00:37:06,500 Це допоможе мені це з четвертий елемент видаляється. 687 00:37:06,500 --> 00:37:10,140 Тоді, якщо я хотів зробити зрізи, Я можу зробити VEC 2 до 6. 688 00:37:10,140 --> 00:37:15,480 2 товстої кишки 6 це просто ще один вектор, який є 2, 3, 4, 5, 6. 689 00:37:15,480 --> 00:37:18,230 Випльовує що. 690 00:37:18,230 --> 00:37:20,770 >> Так чи інакше, назад до горе автомобілів. 691 00:37:20,770 --> 00:37:26,650 692 00:37:26,650 --> 00:37:28,450 Так давайте зробимо деякі регресії. 693 00:37:28,450 --> 00:37:34,240 Скажімо, модель gets-- давайте лінійно regress-- я не знаю. 694 00:37:34,240 --> 00:37:41,780 Перш за все, давайте надаємо mtcars, звичайно. 695 00:37:41,780 --> 00:37:44,870 696 00:37:44,870 --> 00:38:00,010 Так Модель LM, нехай [нерозбірливо] -х регрес mpg на тильди ваги. 697 00:38:00,010 --> 00:38:03,300 І тоді фрейм даних mtcars. 698 00:38:03,300 --> 00:38:06,830 Так Резюме модель. 699 00:38:06,830 --> 00:38:12,900 700 00:38:12,900 --> 00:38:15,595 >> ОК, так що це виглядає трохи складніше. 701 00:38:15,595 --> 00:38:19,380 Але в принципі, бачачи, як якби ми спробувати виразити миль на галон 702 00:38:19,380 --> 00:38:23,970 у вигляді лінійної функції ваги, Потім ми отримали цю лінію тут, 703 00:38:23,970 --> 00:38:28,730 який перехоплює на 37.28. 704 00:38:28,730 --> 00:38:33,830 37.28 буде теоретичні милях за галон автомобіля, який важить нулю. 705 00:38:33,830 --> 00:38:41,210 А потім за кожен додатковий тонну, ви стукаєте близько п'яти миль на галон 706 00:38:41,210 --> 00:38:42,440 від цього. 707 00:38:42,440 --> 00:38:45,120 Обидва цих коефіцієнтів ви бачите, стандартні помилки є. 708 00:38:45,120 --> 00:38:47,870 І вони дуже статистично значущим. 709 00:38:47,870 --> 00:38:55,740 >> Таким чином, ми можемо бути дуже впевнені в 1 адреса 10 з негативним 10. 710 00:38:55,740 --> 00:38:59,510 Таким чином, 1 раз щось негативне 10, що, якщо ви зробите важче автомобіль, 711 00:38:59,510 --> 00:39:01,440 вона буде мати гірші миль на галон. 712 00:39:01,440 --> 00:39:04,940 713 00:39:04,940 --> 00:39:07,250 Або ми можемо перевірити деякі інші моделі. 714 00:39:07,250 --> 00:39:09,230 Як замість регресують це на вазі, 715 00:39:09,230 --> 00:39:12,600 давайте регрес його на журнал ваги, Тому що, можливо ефективного ваги 716 00:39:12,600 --> 00:39:15,690 на пробігом якось не лінійно. 717 00:39:15,690 --> 00:39:18,540 >> Це дало нам г квадрат 0.7528. 718 00:39:18,540 --> 00:39:19,610 Так давайте спробуємо це. 719 00:39:19,610 --> 00:39:21,485 На цей раз давайте робити різні змінні, теж. 720 00:39:21,485 --> 00:39:22,500 Model2. 721 00:39:22,500 --> 00:39:24,800 Так резюме, модель2. 722 00:39:24,800 --> 00:39:28,200 723 00:39:28,200 --> 00:39:31,390 Гаразд, так що знову, ми отримав кращі підходять лінію. 724 00:39:31,390 --> 00:39:36,160 І це time-- це говорить, в основному, що кожен раз, коли ви 725 00:39:36,160 --> 00:39:38,090 збільшити вагу автомобіль з коефіцієнтом е 726 00:39:38,090 --> 00:39:40,580 Ви втрачаєте це багато миль на галон. 727 00:39:40,580 --> 00:39:43,210 728 00:39:43,210 --> 00:39:50,326 >> І тому цього разу наша залишкове стандартне помилка it--, що не має значення, насправді. 729 00:39:50,326 --> 00:39:53,540 Залишкова стандартна помилка в основному тільки стандартна помилка 730 00:39:53,540 --> 00:39:57,760 що ви залишили після вас забрати лінію тренда. 731 00:39:57,760 --> 00:40:02,805 І наша R квадрат тут 0.81, який трохи краще, ніж те, що 732 00:40:02,805 --> 00:40:07,640 ми мали до 0,52. 733 00:40:07,640 --> 00:40:09,750 >> І ось тепер давайте додамо термін цієї регресії. 734 00:40:09,750 --> 00:40:13,020 Отже, давайте регрес миль на галон і на колоді ваг 735 00:40:13,020 --> 00:40:21,130 і давайте робити, ● миль, чверть милі час. 736 00:40:21,130 --> 00:40:26,190 ОК, він повинен мати the-- все правильно, qsec. 737 00:40:26,190 --> 00:40:26,690 Qsec. 738 00:40:26,690 --> 00:40:30,630 739 00:40:30,630 --> 00:40:35,000 Actually-- вибачте, що? 740 00:40:35,000 --> 00:40:37,000 Дозвольте мені назвати цей-то ще, окрім моделі 2. 741 00:40:37,000 --> 00:40:38,000 Дозвольте мені назвати цей model3. 742 00:40:38,000 --> 00:40:40,860 743 00:40:40,860 --> 00:40:42,900 І ось тепер ми можемо зробити короткий model3. 744 00:40:42,900 --> 00:40:46,850 745 00:40:46,850 --> 00:40:49,100 І так знову, це в основному те, що ви могли б очікувати. 746 00:40:49,100 --> 00:40:51,750 Ви позитивно перехоплення. 747 00:40:51,750 --> 00:40:54,550 Ефективна збільшення Вага негативний. 748 00:40:54,550 --> 00:40:58,490 І ефективна збільшення часу чверть милі 749 00:40:58,490 --> 00:41:02,420 є позитивним, але, хоча менше, ніж вага. 750 00:41:02,420 --> 00:41:06,010 Тепер інтуїтивно, ви можете зрозуміти це, кажучи думати про спортивних автомобілів. 751 00:41:06,010 --> 00:41:08,950 Там дуже швидке прискорення, дуже короткий час чверть милі. 752 00:41:08,950 --> 00:41:13,729 Вони також збираються використовувати більше газу, в той час як більш розумні автомобілі збираються 753 00:41:13,729 --> 00:41:16,020 мати повільне прискорення, вище рази на чверть милі, 754 00:41:16,020 --> 00:41:20,890 і використовувати менше газу ,, так вище миль на галон. 755 00:41:20,890 --> 00:41:21,390 Відмінно. 756 00:41:21,390 --> 00:41:23,431 І ось тепер прийшов час побудувати щось на зразок цього. 757 00:41:23,431 --> 00:41:27,810 Отже, давайте do-- так голі кістки ми можемо зробити plots-- 758 00:41:27,810 --> 00:41:35,280 бо я прикріплений цей кадр даних before-- ми можемо тільки зробити сюжети, вага миль на галон. 759 00:41:35,280 --> 00:41:38,762 760 00:41:38,762 --> 00:41:39,720 Зробити це трохи більше. 761 00:41:39,720 --> 00:41:55,050 762 00:41:55,050 --> 00:41:57,350 Там ми в основному мають Розкид ділянку, але точки 763 00:41:57,350 --> 00:41:58,690 є свого роду важко побачити на цьому. 764 00:41:58,690 --> 00:42:04,860 765 00:42:04,860 --> 00:42:10,900 >> Я не пам'ятаю, експромтом, що Синтаксис для зміни ділянку. 766 00:42:10,900 --> 00:42:14,100 Тому я думаю, що це буде гарний час, щоб виховувати, 767 00:42:14,100 --> 00:42:18,000 є дуже хороший вбудована допомога функція, допомога котирування функціонувати ім'я. 768 00:42:18,000 --> 00:42:21,690 Ми привеземо до основному що ви хотіли. 769 00:42:21,690 --> 00:42:28,010 770 00:42:28,010 --> 00:42:32,730 Я думаю, що я насправді зробити це тип дорівнює р для точок ділянок. 771 00:42:32,730 --> 00:42:34,369 Хіба щось міняти? 772 00:42:34,369 --> 00:42:35,160 І ні, не зовсім. 773 00:42:35,160 --> 00:42:39,160 774 00:42:39,160 --> 00:42:39,660 Добре. 775 00:42:39,660 --> 00:42:46,760 776 00:42:46,760 --> 00:42:49,580 >> З якоїсь причини, коли я зробив це на моєму власному комп'ютері деякий час назад, 777 00:42:49,580 --> 00:42:52,080 всі крапки розсіювання були набагато ясніше. 778 00:42:52,080 --> 00:43:06,390 779 00:43:06,390 --> 00:43:13,970 У всякому разі, це розкид вид видно? 780 00:43:13,970 --> 00:43:15,124 Там один там. 781 00:43:15,124 --> 00:43:16,165 Деякі там, деякі. 782 00:43:16,165 --> 00:43:18,860 783 00:43:18,860 --> 00:43:21,185 Ви можете сортувати їх бачити, чи не так? 784 00:43:21,185 --> 00:43:24,310 Так що, якщо ми хочемо, щоб додати щонайкраще підходить лінії щоб цю ділянку тут, який трохи голою 785 00:43:24,310 --> 00:43:29,290 bones-- дозвольте мені зробити це трохи краще. 786 00:43:29,290 --> 00:43:38,075 Головна дорівнює проти ваги. 787 00:43:38,075 --> 00:43:46,322 788 00:43:46,322 --> 00:43:49,740 Миль на галон. 789 00:43:49,740 --> 00:43:53,570 Знову ж таки, ви можете побачити, наскільки корисним необов'язкові аргументи тут з також 790 00:43:53,570 --> 00:43:58,090 не маючи навести в певний порядок з аргументами клавіатури 791 00:43:58,090 --> 00:44:01,600 коли у вас є дільниці, бо це займе багато аргументів. 792 00:44:01,600 --> 00:44:07,490 >> Xlab дорівнює вага, вага, тонн. 793 00:44:07,490 --> 00:44:10,091 794 00:44:10,091 --> 00:44:10,590 Добре. 795 00:44:10,590 --> 00:44:17,340 796 00:44:17,340 --> 00:44:21,480 ОК, так, це пристрій в даний час трохи дратує. 797 00:44:21,480 --> 00:44:30,160 Але ви можете бачити роду там, є назва графік на стороні. 798 00:44:30,160 --> 00:44:35,260 Сюди there's-- на дні тут є мітки осі. 799 00:44:35,260 --> 00:44:37,700 Я не пам'ятаю, експромтом які команди ars-- 800 00:44:37,700 --> 00:44:41,000 те, що функції, щоб збільшити розмір цих етикеток і назв, 801 00:44:41,000 --> 00:44:43,110 але вони є. 802 00:44:43,110 --> 00:44:46,625 >> І тому, якщо ми хочемо, щоб додати найкраще підходять лінії, 803 00:44:46,625 --> 00:44:49,250 ми могли б зробити щось like-- I є синтаксис написано тут. 804 00:44:49,250 --> 00:44:52,280 805 00:44:52,280 --> 00:45:11,130 Так що пам'ятайте, ми просто додати модель був миль на галон, вага, mtcars. 806 00:45:11,130 --> 00:45:16,470 І тому, якщо я хотів би додати, найкраще відповідність лінія, я міг би зробити, б лінії моделі. 807 00:45:16,470 --> 00:45:18,556 І бум, у нас є найкраще відповідність лінії. 808 00:45:18,556 --> 00:45:19,970 Це свого роду важко побачити. 809 00:45:19,970 --> 00:45:22,178 Я абсолютно жалкую про технологічні труднощі. 810 00:45:22,178 --> 00:45:25,230 Але він працює в основному верхній лівий правий нижній. 811 00:45:25,230 --> 00:45:27,550 >> І якщо масштаб були більше, ви могли бачити 812 00:45:27,550 --> 00:45:31,260 що перехоплення є те, що ви можете знайти зі зведеної статистики 813 00:45:31,260 --> 00:45:34,790 якщо ввести зведений модель. 814 00:45:34,790 --> 00:45:40,130 ОК, так що я сподіваюся, що кожен отримує щось сенс того, що 815 00:45:40,130 --> 00:45:42,030 R є, те, що це добре для. 816 00:45:42,030 --> 00:45:45,520 Ви могли б зробити набагато приємніше, ніж ділянки це на вашому власному часу, якщо вам подобається. 817 00:45:45,520 --> 00:45:50,100 818 00:45:50,100 --> 00:45:53,950 >> Так інтерфейсу зовнішньої функції. 819 00:45:53,950 --> 00:46:00,330 Це те, що зазвичай не покриті ввідних лекцій 820 00:46:00,330 --> 00:46:03,560 або що-небудь для вступного р. 821 00:46:03,560 --> 00:46:05,584 Це не імовірно, що ви збираєтеся її потребує. 822 00:46:05,584 --> 00:46:08,000 Тим не менш, я знайшов це корисно в мої власні проекти в минулому. 823 00:46:08,000 --> 00:46:10,984 І немає нічого хорошого підручник для нього в Інтернеті. 824 00:46:10,984 --> 00:46:12,900 Так що я просто хочу, щоб квапити вас всі через це 825 00:46:12,900 --> 00:46:16,606 і тоді ви можете залишити. 826 00:46:16,606 --> 00:46:18,480 І тому зовнішня Функція інтерфейс, що 827 00:46:18,480 --> 00:46:23,130 Ви можете використовувати, щоб викликати, щоб побачити Функції з Р. Внутрішньо, 828 00:46:23,130 --> 00:46:29,850 R побудований на арифметичне С. R знаходиться всього 64-біт з плаваючою точкою арифметика C, в 829 00:46:29,850 --> 00:46:32,852 який двічі введіть [нерозбірливо]. 830 00:46:32,852 --> 00:46:35,060 І ви, можливо, захочете зробити це для зв'язки причин. 831 00:46:35,060 --> 00:46:39,250 З одного боку, R інтерпретується, це НЕ компілюється в машинний код. 832 00:46:39,250 --> 00:46:42,170 Таким чином, ви можете переписати Внутрішні петлі в C, а потім отримати 833 00:46:42,170 --> 00:46:45,920 Перевага використання Р. подобається це трохи зручніше, ніж C. 834 00:46:45,920 --> 00:46:48,899 Він має більш графіків Зручності і ще багато чого. 835 00:46:48,899 --> 00:46:51,690 І в той же час можливість отримати Максимальна швидкість з внутрішніх петель, 836 00:46:51,690 --> 00:46:53,650 який є, де це дійсно необхідно. 837 00:46:53,650 --> 00:46:56,330 >> Повторне використання існуючих бібліотек C, це також важливо. 838 00:46:56,330 --> 00:47:00,320 Якщо у вас є C бібліотеки для, як, Я не знаю перетворення Фур'є, 839 00:47:00,320 --> 00:47:05,190 або деякі дуже архей Процедура статистики 840 00:47:05,190 --> 00:47:09,470 в астрофізиці високих енергій або щось, я не знаю. 841 00:47:09,470 --> 00:47:13,058 Астрофізика високих енергій навіть не думаю, я думаю. 842 00:47:13,058 --> 00:47:16,480 Але ви можете зробити це замість того, написати рідний порт R з них. 843 00:47:16,480 --> 00:47:22,725 А на the-- і знову, як якби вас шукати в більшості бібліотек замовчуванням R, в 844 00:47:22,725 --> 00:47:25,600 на внутрішніх, нутрощі є збираєтеся використовувати зовнішню функцію 845 00:47:25,600 --> 00:47:26,724 інтерфейс дуже широко. 846 00:47:26,724 --> 00:47:31,630 Вони мають такі речі, як Фур'є перетворює або обчислення кореляції 847 00:47:31,630 --> 00:47:34,890 Коефіцієнти написаний на С, і вони будуть просто R обгортки навколо них. 848 00:47:34,890 --> 00:47:38,230 Інтерфейс є трохи важко. Я думаю 849 00:47:38,230 --> 00:47:43,750 її складність перебільшена в Багато інструкцій ви знайдете. 850 00:47:43,750 --> 00:47:46,200 Але, тим не менш, це трохи заплутаною. 851 00:47:46,200 --> 00:47:48,650 І я не був в змозі знайти хороший підручник для нього, 852 00:47:48,650 --> 00:47:51,980 так що це прямо зараз. 853 00:47:51,980 --> 00:47:55,360 Знову ж, це весь відрізок більше для подальшого використання. 854 00:47:55,360 --> 00:47:57,687 Не хвилюйтеся про копіювання все вниз прямо зараз. 855 00:47:57,687 --> 00:48:00,020 Так наступними інструкціями призначені для Unix-подібних систем, 856 00:48:00,020 --> 00:48:05,150 Linux, BSD, OS X. Я не знаю, як це працює на Windows, 857 00:48:05,150 --> 00:48:08,280 але, будь ласка, тільки не зробити ваш Остаточний проект на Windows. 858 00:48:08,280 --> 00:48:10,790 859 00:48:10,790 --> 00:48:12,460 Ви дійсно не хочете, щоб. 860 00:48:12,460 --> 00:48:14,770 Unix набагато краще набір на випадкового програмування. 861 00:48:14,770 --> 00:48:19,320 862 00:48:19,320 --> 00:48:21,390 Так, в основному закордонних Функція інтерфейсу. 863 00:48:21,390 --> 00:48:24,420 Якщо ви хочете, щоб написати C Функція для використання з R, 864 00:48:24,420 --> 00:48:27,250 він повинен вжити всіх аргументи, покажчики. 865 00:48:27,250 --> 00:48:30,666 >> Таким чином, для окремих значень, це означає, що він вказав на значення. 866 00:48:30,666 --> 00:48:33,040 Для масивів, це покажчик на перший елемент, який 867 00:48:33,040 --> 00:48:36,750 це те, що імена масивів насправді означає. 868 00:48:36,750 --> 00:48:40,140 Знову ж таки, це те, що ви повинні мати досить повністю вниз після р встановити п'ять. 869 00:48:40,140 --> 00:48:43,334 Імена масивів просто покажчики до першого елемента, 870 00:48:43,334 --> 00:48:44,750 Тип з плаваючою крапкою в два рази. 871 00:48:44,750 --> 00:48:47,310 І ваша функція повинна повернути недійсними. 872 00:48:47,310 --> 00:48:50,810 Єдиний спосіб, яким вона може насправді сказати, що відбулося R 873 00:48:50,810 --> 00:48:54,410 є модифікацією пам'яті, R дав до нього через зовнішню функцію 874 00:48:54,410 --> 00:48:54,910 Інтерфейс. 875 00:48:54,910 --> 00:48:58,180 876 00:48:58,180 --> 00:49:00,127 >> Так що я написав це Прикладом, це 877 00:49:00,127 --> 00:49:02,460 функція, яка обчислює використання Скалярний добуток двох векторів. 878 00:49:02,460 --> 00:49:05,060 Це приймає два аргументи, vec1, vec2, які самі вектори, 879 00:49:05,060 --> 00:49:06,934 і потім N, який представляє собою Довжина, бо знов, 880 00:49:06,934 --> 00:49:12,630 R має вбудований [нерозбірливо], щоб дізнатися, довжина векторів, але з не. 881 00:49:12,630 --> 00:49:16,182 У C, вектори довільне роздільниками шматок пам'яті. 882 00:49:16,182 --> 00:49:17,890 Таким чином, спосіб можна розрахувати точкові продукти 883 00:49:17,890 --> 00:49:23,470 просто встановіть цей параметр з до нуля, а потім перебору 884 00:49:23,470 --> 00:49:28,760 від 1 до п зірка, бо п це покажчик на довжину, 885 00:49:28,760 --> 00:49:32,929 просто щось додати це вихідний параметр. 886 00:49:32,929 --> 00:49:34,970 І це може бути гарна практика якщо ви збираєтеся зробити 887 00:49:34,970 --> 00:49:37,270 Цей написати дві окремі функції C. 888 00:49:37,270 --> 00:49:41,970 Один з них has-- Один з них просто приймає аргументи і типи 889 00:49:41,970 --> 00:49:43,970 що вони зазвичай бути в C. 890 00:49:43,970 --> 00:49:47,780 >> Так воно приймає масив аргументи, покажчики. 891 00:49:47,780 --> 00:49:57,090 Але єдиним значенням аргументу, як N, він просто приймає як значень за копії, 892 00:49:57,090 --> 00:49:57,917 без покажчиків. 893 00:49:57,917 --> 00:49:59,750 І тоді він не [Нерозбірливо] з покажчика. 894 00:49:59,750 --> 00:50:01,290 І тоді ви можете мати другий, в основному, 895 00:50:01,290 --> 00:50:03,623 Функція обгортка, що в основному обробляє вимоги 896 00:50:03,623 --> 00:50:07,740 зовнішньої функції інтерфейс для вас. 897 00:50:07,740 --> 00:50:11,840 >> Як ви назвати це в R Тобто, як тільки у вас є функція, написана на C, 898 00:50:11,840 --> 00:50:17,770 Ви TYPE R CMD shlib, R Команда розділюваний бібліотека, 899 00:50:17,770 --> 00:50:20,110 Foo точка с, або те, що Ваше ім'я файлу, 900 00:50:20,110 --> 00:50:23,020 і ОС оболонка не в R терміналу. 901 00:50:23,020 --> 00:50:25,200 І це створить Бібліотека називається Foo точка так. 902 00:50:25,200 --> 00:50:28,180 І тоді ви можете завантажити його в наш скрипт або інтерактивно 903 00:50:28,180 --> 00:50:32,310 з командним дин точка навантаження. 904 00:50:32,310 --> 00:50:35,720 Тоді існує функція в R називається точка с. 905 00:50:35,720 --> 00:50:39,310 >> Це приймає аргументи, які Спочатку ім'я функції в C 906 00:50:39,310 --> 00:50:40,970 що ви хочете зателефонувати. 907 00:50:40,970 --> 00:50:43,920 І тоді всі параметри для цієї функції, 908 00:50:43,920 --> 00:50:45,420 вони повинні бути в правильному порядку. 909 00:50:45,420 --> 00:50:48,580 Ви повинні використовувати ці тип Функції примусу у вигляді цілого числа, а 910 00:50:48,580 --> 00:50:52,050 двічі, а характер, і, як логічно. 911 00:50:52,050 --> 00:50:54,710 А потім, коли він повертає Список, який знову тільки 912 00:50:54,710 --> 00:50:57,550 асоціативний масив з Імена параметрів і значення 913 00:50:57,550 --> 00:51:00,950 після того, як функція запуску. 914 00:51:00,950 --> 00:51:08,520 >> Таким чином, в цьому випадку, тому що точка Prod має Аргументи vec1, vec2 і Int N, N поза. 915 00:51:08,520 --> 00:51:11,980 Для точка С маємо точка Prod, ім'я функції 916 00:51:11,980 --> 00:51:16,250 ми називаємо, vec1, vec2, тип примусу. 917 00:51:16,250 --> 00:51:20,060 Довжина вектора небудь, Я просто вибрав vec1 довільно. 918 00:51:20,060 --> 00:51:25,479 Було б більш надійною, щоб сказати S число довжина хв vec1, довжина vec2. 919 00:51:25,479 --> 00:51:27,520 Тоді як два нуля, бо ми насправді не 920 00:51:27,520 --> 00:51:29,644 все одно, що необхідно помістити в з параметра, тому що ми 921 00:51:29,644 --> 00:51:32,270 встановивши її на нуль в будь-якому випадку. 922 00:51:32,270 --> 00:51:37,560 >> І тоді результати буде великий асоціативний масив з в основному 923 00:51:37,560 --> 00:51:42,090 vec1 є те, що, vec2 це що завгодно. 924 00:51:42,090 --> 00:51:44,330 Але ми зацікавлені в , Так що ми можемо отримати, що. 925 00:51:44,330 --> 00:51:47,780 Це знову ж таки, дуже прикладом іграшка з інтерфейсу зовнішньої функції. 926 00:51:47,780 --> 00:51:54,160 Але якщо у вас є, щоб обчислити точку продукти масивних векторів петель, 927 00:51:54,160 --> 00:51:56,960 або якщо у вас є, щоб зробити щось ще в циклі, 928 00:51:56,960 --> 00:51:59,850 і ви не хочете, щоб покладатися на R, який має трохи накладних витрат 929 00:51:59,850 --> 00:52:02,830 вбудований в неї, це може бути корисно. 930 00:52:02,830 --> 00:52:05,870 >> Знову ж таки, це не завжди вступний тема, R. 931 00:52:05,870 --> 00:52:08,571 Це не дуже добре документовані. 932 00:52:08,571 --> 00:52:11,070 Я просто в тому числі, тому що Я знайшов його корисним в минулому. 933 00:52:11,070 --> 00:52:13,654 Так, погані практики. 934 00:52:13,654 --> 00:52:15,820 Я згадав, що є цикл у функції. 935 00:52:15,820 --> 00:52:21,150 Як правило, ви не повинні, в мову, а не використовувати його. 936 00:52:21,150 --> 00:52:26,100 Грунтуючись на тому, як R реалізує ітерації всередині, це може бути повільним. 937 00:52:26,100 --> 00:52:28,540 Вони якраз і виглядати непривабливо. 938 00:52:28,540 --> 00:52:32,410 >> R обробляє вектори дуже красиво, так часто вам не потрібно використовувати його. 939 00:52:32,410 --> 00:52:35,050 940 00:52:35,050 --> 00:52:38,900 Тоді ви можете, як правило, замінити вектор часто 941 00:52:38,900 --> 00:52:42,490 з цими функціями, званих високого Функції порядку, Карта, зменшити, 942 00:52:42,490 --> 00:52:44,404 Знайти або фільтр. 943 00:52:44,404 --> 00:52:46,320 Я просто дати деякі приклади того, що вони роблять. 944 00:52:46,320 --> 00:52:49,957 Карта є висока функція замовлення, тому що він приймає функцію в якості аргументу. 945 00:52:49,957 --> 00:52:52,290 Таким чином, ви можете дати йому функцію, Ви можете дати йому масив, 946 00:52:52,290 --> 00:52:54,640 і вона буде застосувати функцію до кожного елементу масиву 947 00:52:54,640 --> 00:52:55,681 і повернути новий масив. 948 00:52:55,681 --> 00:52:58,035 949 00:52:58,035 --> 00:53:00,160 Скорочення, в основному ви даєте це масив, ви даєте йому 950 00:53:00,160 --> 00:53:02,930 функція, яка приймає два аргументи. 951 00:53:02,930 --> 00:53:07,100 Це буде застосувати функцію-перше, Перший аргумент з деяким значенням стартера. 952 00:53:07,100 --> 00:53:09,440 Потім до цього результату в секунду. 953 00:53:09,440 --> 00:53:12,590 Потім до цього результату по-третє, Потім до цього результату у четвертому. 954 00:53:12,590 --> 00:53:14,870 А потім повернутися, коли він отримує до кінця. 955 00:53:14,870 --> 00:53:17,620 Так, наприклад, якщо ви хочете, щоб обчислити суму всіх елементів 956 00:53:17,620 --> 00:53:23,240 в масиві, ніж ви могли б назвати зменшити з [нерозбірливо] скоротити доповнення 957 00:53:23,240 --> 00:53:26,620 Функція, як FUNC а, б, повернутися плюс б. 958 00:53:26,620 --> 00:53:28,960 І потім почати значення 0. 959 00:53:28,960 --> 00:53:32,950 >> І все це, ви можете знайти їх описано в документації R, 960 00:53:32,950 --> 00:53:35,720 в будь-якому підручнику з функціональне програмування. 961 00:53:35,720 --> 00:53:38,330 Там також цей клас функції, що викликаються застосовувати функції, 962 00:53:38,330 --> 00:53:42,807 які я don't-- вони трохи важко пояснити, 963 00:53:42,807 --> 00:53:45,640 але якщо ви подивитеся на [нерозбірливо] заброньовано, що я привів на початку, 964 00:53:45,640 --> 00:53:48,615 він пояснює їх досить добре його додаток на R програмування. 965 00:53:48,615 --> 00:53:51,599 966 00:53:51,599 --> 00:53:53,390 Детальніше про практику, додавання до векторів. 967 00:53:53,390 --> 00:53:57,570 968 00:53:57,570 --> 00:53:58,070 Так? 969 00:53:58,070 --> 00:54:01,651 970 00:54:01,651 --> 00:54:02,900 Я думаю, що я повинен виправити. 971 00:54:02,900 --> 00:54:07,450 У цій першій рядки, VEC стрілка, що стрілка не повинна бути там. 972 00:54:07,450 --> 00:54:10,920 Ви можете призначити вектор, знову, взяти її довжину плюс 1 973 00:54:10,920 --> 00:54:13,220 і присвоєння деяку цінність для цього. 974 00:54:13,220 --> 00:54:18,970 Це продовжить вектор, або ви можна зробити Століття дорівнює с, VEC новое_значеніе. 975 00:54:18,970 --> 00:54:21,540 Знову ж таки, якщо ви використовуєте C з один аргумент у вигляді вектора, 976 00:54:21,540 --> 00:54:23,300 в результаті ієрархія отримує сплющені. 977 00:54:23,300 --> 00:54:27,160 Таким чином, ви будете просто отримати вектор який продовжено на 1. 978 00:54:27,160 --> 00:54:30,410 Ніколи не робіть цього. 979 00:54:30,410 --> 00:54:33,330 >> Причина, чому ви не повинен цього робити це. 980 00:54:33,330 --> 00:54:37,430 Коли ви виділити вектор, його дає йому певну ділянку пам'яті. 981 00:54:37,430 --> 00:54:40,680 Якщо збільшити, що вектор розмір, вона має перерозподілити вектор 982 00:54:40,680 --> 00:54:43,820 десь в іншому місці. 983 00:54:43,820 --> 00:54:46,980 І так перерозподіл досить дорого. 984 00:54:46,980 --> 00:54:50,530 Я не буду вдаватися в подробиці про те, як розподільники пам'яті реалізовані 985 00:54:50,530 --> 00:54:57,280 на рівні операційної системи, але це займає багато часу, 986 00:54:57,280 --> 00:54:58,962 знайти нову частину пам'яті. 987 00:54:58,962 --> 00:55:00,920 А також, якщо ви Re-виділяють багато-багато 988 00:55:00,920 --> 00:55:03,500 прогресивно більше шматки, ви в кінцевому підсумку 989 00:55:03,500 --> 00:55:06,420 з чимось під назвою фрагментації пам'яті, 990 00:55:06,420 --> 00:55:09,390 де доступна пам'ять розділений на безліч маленьких блоків 991 00:55:09,390 --> 00:55:11,500 в розподільники пам'яті точки зору. 992 00:55:11,500 --> 00:55:15,340 І це стає все важче і важче знайти пам'яті для інших речей. 993 00:55:15,340 --> 00:55:19,455 Таким чином, замість, якщо вам потрібно зробити це, якщо Ви повинні рости вектор з одного кінця 994 00:55:19,455 --> 00:55:24,240 до іншого, а не додається до нього постійно, ви повинні попередньо виділити його. 995 00:55:24,240 --> 00:55:29,310 Століття стрілка, довжини вектора дорівнює +1000, або щось. 996 00:55:29,310 --> 00:55:33,200 >> І тоді ви можете просто привласнити до значень одного вектора в 997 00:55:33,200 --> 00:55:36,000 час після того як ви виділені один раз. 998 00:55:36,000 --> 00:55:40,140 Я побіг в це, знову ж, мій річної роботи коли я писав NRA диференціал 999 00:55:40,140 --> 00:55:42,120 Рівняння вирішувач. 1000 00:55:42,120 --> 00:55:43,180 Чи не символічно чисельну. 1001 00:55:43,180 --> 00:55:49,290 Ідея в тому, що коли у вас є одне значення для вирішення, 1002 00:55:49,290 --> 00:55:51,240 використовувати, що для обчислення наступний. 1003 00:55:51,240 --> 00:55:53,700 Так що мій натуральний наївно Нахил повинен був сказати ОК, 1004 00:55:53,700 --> 00:55:56,930 так що я почну з вектором це істотне значення. 1005 00:55:56,930 --> 00:56:01,260 Обчислити з цього наступного значенням що йде на мій вектора рішення, 1006 00:56:01,260 --> 00:56:02,630 і додати, що. 1007 00:56:02,630 --> 00:56:05,290 >> Створити щось ще, що додати. 1008 00:56:05,290 --> 00:56:08,120 Він пішов дуже, дуже повільно. 1009 00:56:08,120 --> 00:56:11,540 І як тільки я зрозумів, що це і я змінив свою систему 1010 00:56:11,540 --> 00:56:16,020 від додавання до цього вектору як 10000 до 100000 разів, 1011 00:56:16,020 --> 00:56:18,910 просто попередньо виділити вектор і просто працює з цим. 1012 00:56:18,910 --> 00:56:22,100 Я отримав більше, ніж в 1000 разів швидкість вгору. 1013 00:56:22,100 --> 00:56:26,280 Так що це дуже поширена пастка для R програмування. 1014 00:56:26,280 --> 00:56:31,560 Якщо вам потрібно побудувати вектор шматок за шматком, попередньо виділити його. 1015 00:56:31,560 --> 00:56:35,360 1016 00:56:35,360 --> 00:56:40,240 >> Ще одна поширена поїздка up-- це мій останній слайд, що не worry-- є обробка помилок. 1017 00:56:40,240 --> 00:56:42,890 R, будемо відверті, що не дійсно це дуже добре. 1018 00:56:42,890 --> 00:56:45,010 Є багато проблеми, які можуть виникати. 1019 00:56:45,010 --> 00:56:48,360 Наприклад, якщо ви отримуєте масив або вектор з функції 1020 00:56:48,360 --> 00:56:52,377 що ви очікували одна значення прийшли, або навпаки, 1021 00:56:52,377 --> 00:56:55,460 і ви проходите, що в функцію, яка Ви писали чекаючи одне значення, 1022 00:56:55,460 --> 00:56:57,270 що може бути проблемою. 1023 00:56:57,270 --> 00:57:01,440 >> Деякі функції повернутися NULL, як зробити, скажімо, 1024 00:57:01,440 --> 00:57:05,560 читанні з відсутня ключ у списку. 1025 00:57:05,560 --> 00:57:08,527 Але нуль не подобається C де, якщо ви намагаєтеся прочитати 1026 00:57:08,527 --> 00:57:11,360 зі старого покажчика, [нерозбірливо] в порожній покажчик, це просто SEG помилки 1027 00:57:11,360 --> 00:57:14,109 і якщо ви в вашому відладчика говорить вам, де саме ви знаходитеся. 1028 00:57:14,109 --> 00:57:17,080 1029 00:57:17,080 --> 00:57:20,772 Замість цього, NULL буде do-- функції робитиме непередбачувані речі 1030 00:57:20,772 --> 00:57:21,730 якщо вони руками нуль. 1031 00:57:21,730 --> 00:57:24,575 Як, якщо ви передали макс нуль, це дасть вам негативну нескінченність. 1032 00:57:24,575 --> 00:57:27,230 1033 00:57:27,230 --> 00:57:28,190 І так, так. 1034 00:57:28,190 --> 00:57:30,880 1035 00:57:30,880 --> 00:57:32,630 І так це трапилося мені якось, коли я був 1036 00:57:32,630 --> 00:57:34,771 змінив купу полів в моєму списку структуру 1037 00:57:34,771 --> 00:57:37,520 коли без зміни їх в іншому місці коли я читав від них. 1038 00:57:37,520 --> 00:57:40,670 А потім я отримав всі види випадкових Результати нескінченність з'являється 1039 00:57:40,670 --> 00:57:43,080 і я поняття не маю, де вони не прийшли. 1040 00:57:43,080 --> 00:57:45,310 І, на жаль, є Немає реального суворий режим R 1041 00:57:45,310 --> 00:57:48,940 де ви можете сказати, якщо щось схоже, що це може бути помилка, 1042 00:57:48,940 --> 00:57:51,960 просто перестати їсти, так що я може бути дисциплінованими і виправити. 1043 00:57:51,960 --> 00:57:55,282 1044 00:57:55,282 --> 00:57:57,240 Тим не менш, є щось називається зупинка, якщо немає. 1045 00:57:57,240 --> 00:58:00,480 Це еквівалентно стверджують C, в якщо ви говорили про це. 1046 00:58:00,480 --> 00:58:02,690 Я не думаю, що стверджувати, С тема лекції, 1047 00:58:02,690 --> 00:58:06,370 але ваш лідер розділ можливо, пішов на нього. 1048 00:58:06,370 --> 00:58:10,393 І зупинити, якщо не в основному приймає будь предикат, так що будь-яка заява 1049 00:58:10,393 --> 00:58:11,824 може бути істинним або хибним. 1050 00:58:11,824 --> 00:58:13,490 І якщо це брехня, то припиняє свою програму. 1051 00:58:13,490 --> 00:58:18,260 Це говорить вам саме те, що вам лінію були і які умови не вдалося. 1052 00:58:18,260 --> 00:58:21,910 >> І це дуже корисно, наприклад, перевірка розсудливість, функціональні входи. 1053 00:58:21,910 --> 00:58:25,110 Так що, якщо у вас є функція і ви очікуєте, скажімо, 1054 00:58:25,110 --> 00:58:29,640 якщо ви повинні дати мені дату, я хочу дати бути тільки вектор довжини 1 1055 00:58:29,640 --> 00:58:31,735 і десь між 1 і 31. 1056 00:58:31,735 --> 00:58:34,420 1057 00:58:34,420 --> 00:58:36,170 А якщо ні, я знаю, щось пішло не так. 1058 00:58:36,170 --> 00:58:40,280 І я хочу зупинятися перед цим має випадковий стук ефектів з кодом 1059 00:58:40,280 --> 00:58:44,190 що це важче простежити до кінця. 1060 00:58:44,190 --> 00:58:47,170 Так ось одна з можливих використовувати для зупинки, якщо немає. 1061 00:58:47,170 --> 00:58:48,660 >> У всякому разі, добре. 1062 00:58:48,660 --> 00:58:49,690 Так що це кінець. 1063 00:58:49,690 --> 00:58:51,290 Спасибі, що прийшли. 1064 00:58:51,290 --> 00:58:53,710 Я любитель Оцінка на це. 1065 00:58:53,710 --> 00:58:57,270 Так шкода, якщо вам нудно або плутають або що там у вас. 1066 00:58:57,270 --> 00:59:01,670 Я із задоволенням відповім на питання по електронній пошті в connorharris@college.harvard.edu~~pobj. 1067 00:59:01,670 --> 00:59:07,230 Це стосується і всіх дивитися це жити чи пізніше. 1068 00:59:07,230 --> 00:59:10,190 Крім того, хоча я не ТФ, я теж дуже 1069 00:59:10,190 --> 00:59:13,900 готові служити неофіційними радник кожного, хто 1070 00:59:13,900 --> 00:59:15,460 за допомогою R в остаточний проект. 1071 00:59:15,460 --> 00:59:19,900 >> Якщо ви хочете, щоб що то просто поговорити з вашим TF 1072 00:59:19,900 --> 00:59:23,750 а потім написати мені листа, щоб Я знаю, що ви працюєте на 1073 00:59:23,750 --> 00:59:26,680 і так я можу налаштувати зустріч раз з вами, якщо ви хочете. 1074 00:59:26,680 --> 00:59:27,990 Отже, ще раз, велике спасибі. 1075 00:59:27,990 --> 00:59:28,960 Я сподіваюся, що вам сподобалося. 1076 00:59:28,960 --> 00:59:29,450 >> АУДИТОРІЯ: [нерозбірливо]. 1077 00:59:29,450 --> 00:59:30,617 >> CONNER Харріс: Звичайно. 1078 00:59:30,617 --> 00:59:34,910 >> АУДИТОРІЯ: Які з проекту буде студент CS використовувати R для? 1079 00:59:34,910 --> 00:59:37,427 1080 00:59:37,427 --> 00:59:40,510 CONNER Харріс: Так що, якщо ви не робите те, що це чисто в гірничодобувній даних, 1081 00:59:40,510 --> 00:59:43,790 Наприклад, і багато речей, 1082 00:59:43,790 --> 00:59:46,692 ви могли б зробити з цим з даними видобуток і машинного навчання. 1083 00:59:46,692 --> 00:59:48,900 Ви можете використовувати R для компонент чогось. 1084 00:59:48,900 --> 00:59:52,022 Я вихований, спочатку, приклад від того, якщо ви пишете веб-сайт 1085 00:59:52,022 --> 00:59:54,730 і ви хочете, щоб запустити автоматичний Статистичний аналіз вашого сервера 1086 00:59:54,730 --> 00:59:57,990 журнали в певний час кожен день, що може бути щось, що це 1087 00:59:57,990 --> 01:00:01,260 дуже легко зробити в тільки короткий R-скрипт, який можна запланувати 1088 01:00:01,260 --> 01:00:04,200 для запуску щоночі, наприклад. 1089 01:00:04,200 --> 01:00:06,550 >> І я впевнений, що, якщо є якась причина ви 1090 01:00:06,550 --> 01:00:11,520 хочу статистики або графічні можливості і є цей пробіг автоматично замість 1091 01:00:11,520 --> 01:00:13,790 того, щоб взаємодіяти з речами в Excel, 1092 01:00:13,790 --> 01:00:16,750 наприклад, це те, що Ви можете використовувати R для. 1093 01:00:16,750 --> 01:00:21,190 Так ще питання, перш ніж я пішов? 1094 01:00:21,190 --> 01:00:21,690 Немає? 1095 01:00:21,690 --> 01:00:24,960 Гаразд, добре, знову, спасибі Ви дуже багато для приходити. 1096 01:00:24,960 --> 01:00:29,417