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 А потым кожны вечар у 02: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 Гэта зборнік статыстычных дадзеных з 1974 выпуск часопіса 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, хай [неразборліва] -х рэгрэс міль на галон на тыльды вагі. 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