Конар Харыс: Тым не менш я думаю некаторага захапляльнага відэа вырабляецца з дапамогай прафесійнага кансультавання які выкарыстоўвае R шмат у сваёй працы. Апавядальнік: Што за статыстыкай, аналітыка, і візуалізацыя яркія навукоўцы дадзеных, што сённяшнія і бізнес-лідэры належаць на зрабіць магутныя рашэнні? Вы не можаце заўсёды бачыць яго. Але яна ёсць. Гэта называецца R, з адкрытым зыходным кодам r-- Статыстычная мова праграмавання што эксперты дадзеных сусветныя за выкарыстаннем для ўсяго ад шырокіх сацыяльных карт і маркетынгавыя тэндэнцыі онлайн да распрацоўкі фінансавых і клімат Мадэлі, якія дапамагаюць кіраваць нашых эканомік і супольнасці. Але тое, што менавіта R і дзе R пачаць? Ну першапачаткова, R пачаў тут з двума прафесарамі хто хацеў лепш статыстычны Платформа для сваіх студэнтаў. Такім чынам, яны стварылі адзін мадэлюецца пасля статыстычнай мове С. Яны, разам з многімі іншымі, працягваў працаваць і з дапамогай R, стварэнне інструментаў для R і знайсці новыя прыкладанні для R кожны дзень. Дзякуючы гэтаму з'яўляецца па ўсім свеце намаганні супольнасці, R расла з тысячамі створаных карыстальнікам бібліятэк, пабудаваных для пашырэння функцыянальнасці і R Натоўп-крыніц праверкі якасці і падтрымка найбольш прызнаных лідэрамі галіны ў кожнай вобласці, што выкарыстоўвае Р. І гэта выдатна, таму што R з'яўляецца лепшым, што ён робіць. Хутка Шматспадзеўная экспертаў і лёгка інтэрпрэтаваць, ўзаемадзейнічаць, і візуалізаваць дадзеныя, якія паказваюць, іх хутка расце супольнасць карыстальнікаў па ўсім свеце R і паглядзець, як з адкрытым зыходным кодам R працягвае фармаваць будучыню статыстычны аналіз і навука дадзеных. Конар Харыс: ОК, выдатна. Так маёй прэзентацыі будзе трохі больш цвярозым. Гэта не будзе ўключаць так шмат захапляльнай фонавай музыкі. Але, як вы бачылі ў відэа, R з'яўляецца свайго роду мовы агульнага прызначэння праграмы. Але яна была створана ў асноўным для статыстычнай працы. Так ён прызначаны для статыстыкі, для аналізу дадзеных, для аналізу дадзеных. І такім чынам Вы можаце бачыць гэта ў вялікай колькасці выбар дызайну, што стваральнікі R зрабіў. Гэта ў значнай ступені прызначаны для, людзі, якія не Эксперты ў галіне праграмавання, якія проста падымаючы праграмаванне на баку, так што яны могуць зрабіць сваю працу у сацыяльнай навуцы або ў статыстыцы ці нешта. Яна мае шмат вельмі важныя адрозненні ад С. Але сінтаксіс і парадыгмы што ён выкарыстоўвае ў цэлым тое ж самае. І вы павінны адчуваць сябе даволі як дома прама з месца ў кар'ер. Гэта імператыўны мова. Не турбуйцеся занадта шмат пра тое, што калі вы не ведаеце, тэрмін. Але ёсць адрозненне паміж імператыўны, дэкларатыўны, і функцыянальны. Імператыў проста азначае, што вы зрабіць заявы, якія ў асноўным каманды. І тады інтэрпрэтатар або Кампутар варта іх па адным. Гэта слаба набралі, ёсць няма апісання тыпу ў R. А затым лініі паміж рознымі тыпамі трохі больш свабодна, чым яны знаходзяцца ў C, напрыклад. І, як я сказаў, што ёсць вельмі шырокія магчымасці для пабудовы графікаў, у статыстычных аналіз, для здабычы дадзеных. Яны абодва ўбудаваны ў мова, і, як сказаў відэа, тысячы бібліятэк іншых вытворцаў, Вы можаце спампаваць і выкарыстоўваць бясплатна з вельмі сыпкіх ліцэнзійных умоў. Такім чынам, у агульным, я рэкамендую што вы глядзіце на гэтых двух кніг калі вы збіраецеся працаваць на Р. One з іх з'яўляецца афіцыйным R пачаткоўцаў накіроўваць. Гэта падтрымліваецца Асноўныя распрацоўшчыкі R. Вы можаце спампаваць яго зноў, без зарадкі і юрыдычна на гэтай спасылцы там. Усе гэтыя слайды збіраецца ісці на Інтэрнэт, на сайце CS50 пасля гэтага робіцца. Так што не трэба капіяваць рэчы ўніз адчайна. Іншы з'яўляецца падручнік Cosma Шализи, які з'яўляецца прафесарам статыстыкі ў Карнегі-Меллона, называецца Advanced Data Аналіз з Пачатковая кропка гледжання. Гэта не прынцыпова такое г Кніга. Гэта статыстыка кніга і гэта кніга для аналізу дадзеных. Але гэта вельмі даступным для людзей, якія ёсць кропельку статыстыкі ведаў. Я ніколі не прымаў фармальнага курсу. Я проста ведаю, біты і кавалкі з розных саюзных суб'ектаў што я прайшла курсы ў. І я быў у стане зразумець гэта выдатна. Усе лічбы прыведзены у R. Яны выкананы ў R і яны таксама маюць лістынгаў ніжэй кожнай фігуры, што вам сказаць, як вы робіце кожную фігуру з R кода. І гэта вельмі карысна, калі Вы спрабуеце пераймаць некаторыя фігуры вы бачыце ў кнізе. І зноў спампаваць бясплатна stat.cmu.edu/cshalizi/ жаль, якія павінны быць слэш тыльды cshalizi. Я прасачу, каб выправіць тое, што калі афіцыйныя слайды ўверх. / ADAfaEPoV які з'яўляецца толькі акронім назвы кнігі. Дык увогуле caveats-- R ёсць шмат магчымасцяў. Я толькі будзе ў стане пакрыць паверхню шмат рэчаў. Акрамя таго, першая частка семінара будзе нешта з дампа. Я цалкам шкадую пра гэта. У прынцыпе, я збіраюся пазнаёміць вас з вялікай колькасцю рэчаў, з месца ў кар'ер, збіраецца як мага хутчэй. І тады мы атрымліваем пацешная частка, якая дэма, дзе я магу паказаць вам усё, што мы гаварылі пра на экране. І вы можаце пагуляць самастойна. Так што будзе шмат тэхнічныя рэчы кінутыя на тут. Не хвалюйцеся аб капіяванні усё, што ўніз. Таму што, вы можаце атрымаць усе матэрыял на сайце CS50 пазней. І B, гэта не так важна запомніць гэтага ад слайдаў. Гэта больш важна, што вы атрымаеце некаторыя інтуітыўна аб'ект з ёй і, што зыходзіць ад проста гуляць вакол. Дык навошта выкарыстоўваць R? У прынцыпе, калі ў вас ёсць праект, які ўключае ў сябе здабычу вялікіх набораў дадзеных, дадзеных візуалізацыі, вы варта выкарыстоўваць R. Калі вы рабіць складаныя статыстычныя аналізы, што будзе цяжка ў Excel, Напрыклад, было б таксама good-- таксама калі вы робіце статыстычны Аналіз, які аўтаматызаваны. Скажам, вы падтрыманне вэб-сайта. І вы хочаце, каб прачытаць часопіс сервера кожны дзень, і скампіляваць спіс, як вядучых краін, што Вашы карыстальнікі з, некаторыя зводныя статыстычныя дадзеныя аб тым, як доўга яны марнуюць на свой вэб-сайт ці нешта. І вы хочаце, каб запусціць гэта кожны дзень. Цяпер, калі вы робіце гэта ў Excel, Вы павінны былі б пайсці ў часопіс сервера, імпартаваць, што ў Excel табліцы дадзеных, запусціць ўвесь працэс аналізу ўручную. З R, вы можаце проста напісаць адзін сцэнар. Графік яго для запуску кожны дзень ад вашай аперацыйнай сістэмы. А потым кожны вечар у 02:00, або калі вы планаваць яго запусціць, гэта будзе выглядаць праз ваш інтэрнэт-трафік для гэтага дня. І тады на наступны дзень, вы будзеце ёсць гэты бліскучы, новы даклад або што-то з усімі Інфармацыя, якую вы прасілі. Так у асноўным R для Cisco праграмаванне ў параўнанні з аналізам Cisco. Папярэдні робіцца. Давайце ў рэальных рэчах. Такім чынам, ёсць тры рэальных тыпы ў мове. Там жа лікавы тып. Там накшталт розніца паміж цэлыя і плаваюць пункту, але не зусім. Там гэта персанаж увядзіце, якая струны. І ёсць лагічнае увядзіце, якая Booleans. І вы можаце канвертаваць паміж тыпамі з дапамогай гэтых функцый, як лічбавая, як характар, як лагічна. Калі вы патэлефануеце, напрыклад, як лікавы на радок, ён будзе спрабаваць чытаць гэты радок як лік, гэтак жа, што a2i і зсапЕ рабіць, і C. Калі Вы называеце як лікавы на сапраўдным або ілжывым ён будзе канвертаваць ў 1 або 0. Калі вы патэлефануеце ў характары на што-небудзь гэта будзе канвертаваць, што ў Радковае ўяўленне. І тады ёсць вектары і матрыцы. Так вектары асноўным 1 масівы. Яны, што мы называем масіваў у С. Матрыцы, 2 аднамерныя масівы. А потым вышэй масівы вы можаце ёсць 3, 4, 5 або ўсе памеры лікавых значэнняў, радкоў, лагічных значэнняў. У вас таксама ёсць спісы, якія свайго роду асацыятыўнага масіва. Я атрымаю ў гэтым няшмат. Так адна важная рэч, што паездкі людзей у R не тое, што ёсць не рэальныя чыстыя атамныя, тыпы. Там няма ніякага фактычнага адрозненне паміж лік, як лікавае значэнне, і спіс лікавых значэнняў. Лікавыя значэння фактычна гэтак жа, як вектары даўжыні 1. І гэта мае шэраг важныя наступствы. Адзін з іх, гэта азначае, што вы можаце зрабіць, рэчы вельмі лёгка, якія ўключаюць як дадаць нумар вектара. R будзе ў асноўным фігура тое, што Вы маеце на ўвазе. І я вярнуся да гэтага ў секунду. Гэта таксама азначае, што няма ніякага спосабу для тыпу checker-- да такой ступені, што нешта падобнае існуе ў r-- сказаць калі вы прайшлі ў адным значэнні калі ён чакае масіў ці наадварот. А што можа выклікаць некаторыя дзіўным непрыемнасці, якія я сутыкнуўся, калі Я выкарыстаў R падчас майго гадовай працы. І няма масівы змешанага тыпу. Такім чынам, вы не можаце мець масіў былі Першыя элементы, я не ведаю радок "Джон" і Другім элементам з'яўляецца лік 42. Калі вы паспрабуеце гэта зрабіць, то вы атрымаеце усё проста пераўтворыцца ў радок. Такім чынам, мы маем радок Джон, радок 42. Так незвычайна сінтаксічны features-- найбольш з R сінтаксіс вельмі падобны на C. Ёсць некалькі важных адрозненняў. Увод вельмі слабая. Так няма апісання зменных. Прызначэнне выкарыстоўвае дзіўны Аператар памылка менш, чым дэфіса. Каментары з'яўляюцца з хэш-пазнакі. Я думаю, цяпер дні мы называем гэта хэштэгу хоць гэта на самай справе не accurate-- ня двайны слэш. Модульныя рэшткі з %% знакаў. Цэлае дзяленне з% /%, што вельмі цяжка чытаць, калі ён праецыюецца на экране. Вы можаце атрымаць дыяпазоны цэлыя лікі, у тоўстай кішцы. Так 2,5 дасць вам вектар ўсіх лікаў ад 2 да 5. Масівы адзін індэкс, які вінтоў шмат людзей , Калі яны з больш тыповыя мовы праграмавання, як C, дзе большасць рэчы нулявы праіндэксаваныя. Зноў жа, гэта дзе спадчына R у як мова для як ня прафесійныя праграмісты ўваходзіць. Калі вы сацыёлаг або эканаміст ці нешта і вы спрабуеце выкарыстоўваць R ў асноўным у якасці дадатку каб ваш важней прафесійная праца, Вы збіраецеся знайсці адзін індэксацыі трохі больш натуральным. Таму што вы пачаць адлік на 1 ў паўсядзённым жыцці, а не 0. Для-завесы, гэта падобна на Еогеасп пабудаваць у PHP, якія вы атрымаеце, каб даведацца in-- даволі хутка. Што за каштоўнасць у вектар і то вы можаце зрабіць што-то са значэннем. АЎДЫТОРЫЯ: Гэта прыдумалі ў лекцыі. Конар Харыс: О, гэта прыдумаць лекцыю, выдатна. Аўдыторыя: прызначэнне, гэта Мяркуецца, паказваюць справа налева? Конар Харыс: Справа налева, так. Вы можаце думаць пра яго, як пра кошт права сунуў ў зменнай злева. АЎДЫТОРЫЯ: ОК. Конар Харыс: І, нарэшце Сінтаксіс функцыі крыху дзіўна. У вас ёсць імя функцыі Foo, прызначаны каб гэта ключавое слова функцыі, а затым па ўсіх аргументаў, а затым Цела функцыі пасля гэтага. Ізноў гэтыя рэчы могуць здаецца трохі дзіўным. Яны сталі другой натурай пасля Вы працуеце з мовай для няшмат. Так вектараў, так Вы пабудаваць вектар гэта вы тыпу З, які з'яўляецца ключавым словам, то ўсе нумары, якія вы хочаце ці радкі ці нешта. Аргументы таксама вектары. Але выніковы масіў атрымлівае сплясканыя. Такім чынам, вы не можаце мець масівы дзе гэта некаторыя элементы з'яўляюцца адной лічбы і некаторыя элементы самі з'яўляюцца масівамі. Так што, калі вы спрабуеце пабудаваць Масіў былі першы элемент 4 а другі элемент гэта масіў 3,5 вы проста атрымаць масіў з трох элементаў, 4,3,5. Яны не могуць быць змешанага тыпу. Калі вы паспрабуеце прачытаць або напісаць па-за межамі вектара Вы атрымаеце гэта значэнне называецца Н.А. якая выступае за адсутны значэнне. І гэта прызначана для як статыстыкаў, працуюць з няпоўнымі наборы дадзеных. Калі ўжыць функцыю, якая, як мяркуецца ўзяць толькі адзін нумар на масіў тое, што вы атрымаеце, тым Функцыя будзе адлюстроўваць па масіву. Так што, калі ваша функцыя, скажам, прымае лік і вяртае яго плошчы. Вы ўжываеце, што ў масіў 2,3,5 Тое, што вы атрымаеце гэта масіў 4,9,25. І, што вельмі карысна таму што гэта азначае, што вы не трэба пісаць для завес для робіць вельмі простыя рэчы, як прымяненне функцыя для ўсіх членаў набору дадзеных. Якія, калі вы працуеце з вялікай наборы дадзеных, што вам трэба зрабіць шмат. Бінарныя функцыі прыкладное запіс па запісу. Я атрымаю на гэта. Вы можаце атрымаць доступ да іх масіваў або вектары ў квадратных дужках. Так вектар імя квадратныя дужкі 1 дасць вам першы элемент. Вектар імя квадратныя дужкі 2 дасць вам другі элемент. Вы можаце прайсці па вектару індэксаў, і вы атрымаць назад у асноўным на поўдзень фактару. Такім чынам, вы можаце зрабіць вектар імя дужкі C, 2,4 і вы атрымаеце з вектара, які змяшчае другі і чацвёрты Элементы масіва. І калі вы хочаце проста кароткі агляд статыстыкі вэктару, як верагодных Дыяпазон, сярэдні, максімальны, што заўгодна, Вы можаце проста ўвесці кароткае вектар імя і атрымаць гэта. Гэта не вельмі карысна ў праграмаванне, але калі вы гуляеце вакол набораў дадзеных, гэта зручна. Matrices-- асноўным вышэй масівы. Яны маюць спецыяльны сінтаксіс гэтай натацыі. Матрыца з масівам, які атрымлівае запоўнена in-- шкада, матрыцы з дадзенымі, Колькасць радкоў, лік слупкоў. Калі ў вас ёсць нейкія дадзеныя, яна запаўняе масіў у асноўным адбываецца зверху ўніз у першую чаргу. Затым злева направа. Так што, як гэта. І R мае ўбудаваны множанне матрыц, спектральнае раскладанне, диагонализация, шмат рэчаў. Калі вы хочаце больш мернае масівы, так што 3, 4, 5, ці нешта памеры можна зрабіць. Сінтаксіс масіў Dim роўная с, то спіс памераў. Так што, калі вы хочаце 4 аднамерны масіў з памерамі 4, 7, 8, 9, масіў, цьмяны роўная з (4,7,8,9). Вы атрымліваеце доступ да асобныя значэння з кранштэйнамі Першая запіс Другая запіс коскі. Вы можаце атрымаць увесь лустачкі з радкоў ці слупкоў. З гэтага няпоўнага сінтаксісу гэта проста нумар радкі або слупкі коску коскамі лік. Так спісы з'яўляюцца свайго роду, звязанага масіва. Яны маюць свой уласны сінтаксіс тут. Зноў не адчайна скапіяваць усё гэта ўніз. Гэта проста, каб людзі перажывае слайдаў пазней ёсць усё гэта ў добрым якасці спасылкі. І гэта стане вельмі натуральна, як толькі Я на самой справе прайсці праз дэма. Так пералічвае ў асноўным звязаныя масівы. Вы можаце атрымаць доступ да значэнняў з Імя спісу, знак даляра, ключ. Так што, калі ваш спіс названы Foo, то вы можаце звяртацца да яго як што. Вы можаце атрымаць усю пару ключ-значэнне шляхам перадачы на ​​плошчы індэкса кранштэйна. Калі Вы чытаеце з неіснуючага Ключ, вы атрымаеце нулявы. Гэта не будзе памылак. Справа ў тым, R будзе рабіць, шмат з нулявы, як гэта магчыма. І гэта можа азначаць, што, калі вы ня чакаючы атрымаць нулявы з якой спіс чытання, вы атрымаеце некаторыя непрадказальныя памылкі дадаткова ўніз лінія. Гэта здарылася са мной мой гадовая праца, калі я быў з дапамогай R дзе я змяніў, як нейкі Спіс быў вызначаны ў адным месцы але не змяніць пазней на код, які чытання значэнняў з яго. І так, што адбылося, я быў чытаць нулявыя значэння з гэтага спісу, перадаючы іх у функцыі, і, быўшы вельмі зьбянтэжаны калі я атрымаў усе віды Выпадковыя бясконцасці якая з'яўляецца у гэтай функцыі. Таму што, калі вы ўжываеце пэўны максімальнае або мінімальныя функцыі на нуль, Вы атрымаеце бясконцыя значэння з. Кадры дадзеных, яны падклас спісу. Кожнае значэнне ўяўляе сабой вектар аднолькавай даўжыні. І яны выкарыстоўваюцца для прадстаўлення, у асноўным, табліцы дадзеных. Там жа гэты сінтаксіс ініцыялізацыі. Гэта ўсё, зноў жа, значна ясней, калі вы атрымліваеце на дэма. І добрая рэч аб кадры дадзеных з'яўляецца тое, што вам можа даць імёны ўсяму слупках і імёны для ўсіх радкоў. І так, што робіць доступ іх няшмат прыязней. Акрамя таго, гэта, як большасць функцый, якія чытаць дадзеныя з электронных табліц Excel або з тэкставых файлаў, напрыклад, будзе чытаць свае дадзеныя. Пасадзяць яго ў свайго роду кадра дадзеных. Так functions-- функцый Сінтаксіс крыху дзіўна. Зноў гэтае імя функцыі, прызначаць, гэтую функцыю ключавое слова, а затым спіс аргументаў. Такім чынам, ёсць некаторыя прыемныя рэчы пра тое, як функцыі працуюць тут. З аднаго боку, вы можаце прызначыць значэнні па змаўчанні ў некаторых аргументаў. Такім чынам, вы можаце сказаць, R1 equals-- вы можаце сказаць Foo з'яўляецца функцыяй, дзе R1 роўны то па змаўчанні, калі карыстальнік паказвае няма аргументаў. У адваротным выпадку, гэта ўсё, што ён паклаў у. І гэта вельмі зручна, таму што шмат нашых функцый часта маюць дзесяткі ці сотні аргументаў. Напрыклад тыя, для пабудовы графікаў графікі або дыяграмы рассейвання чарчэння ёсць аргументы, якія кантралююць усе з загалоўка і восі этыкеткі з колерам ліній рэгрэсіі. І так, калі вы не хочаце, каб людзі, сфармулюйце кожны адзін з іх сотні аргументаў кіравання кожны аспект сюжэт або рэгрэс або любы іншы, гэта добра, калі ёсць гэтыя значэнні па змаўчанні. І тады вы можаце на самой справе напісаць, як вы бачылі сюды. Або знайсці лепшы прыклад. Пры выкліку функцый вы можаце на самой справе называць іх імёны, выкарыстоўваючы аргумент. Дык вось прыклад канструктар матрыца. Гэта прымае тры аргументу. Звычайна ў вас ёсць дадзеныя, якая ўяўляе сабой вектар. Вы павінны N радок, якая гэта колькасць радкоў. Вы павінны N cols-- лік слупкоў. Справа ў тым, калі вы набераце N шэраг роўны незалежна і N кол роўна што б там ні калі Вы выкліку гэтай функцыі, Вы можаце фактычна аднаўляць іх. Такім чынам, вы можаце змясціць N седлавіны першы і N радкоў секунду, і гэта не будзе мець ніякага значэння. Так што гэта добрая маленькая асаблівасць. Хіба імпарт і экспарт. Гэта можа быць зроблена, у асноўным. Ёсць таксама сродкі, каб выпісаць адвольнае R аб'ектаў у двайковы файл а затым прачытаць іх назад пазней. Што вельмі зручна, калі вы робіце вялікая інтэрактыўная сесія R і вы павінны захаваць рэчы вельмі хутка. Па змаўчанні R мае працоўны каталог што файлы будуць выпісаныя ў і чытаць яшчэ ў с. Вы можаце бачыць, што з getwg, змяніць яго з setdw. Нічога асабліва цікава тут Так што цяпер фактычныя статыстычныя дадзеныя stuff-- полилинейное рэгрэсіі. Так звычайным сінтаксісам гэта крыху больш складана. Мадэль з'яўляецца вялікі аб'ект у прынцыпе. Ён атрымлівае прызначаны Л.М., што выклік функцыі. Першы элемент, то ў Тыльда x1 плюс усё. Мой Сінтаксіс тут трохі заблытаным. Я цалкам прабачце, гэта з'яўляецца стандартным спосабам што кампутарныя навукі кнігі гэтага. Але гэта крыху дзіўна. Таму ў асноўным, гэта лм дужкі, першы пункт у переменная-- прабачце, залежыць зменнай x1 Тыльда плюс х2 плюс Аднак многія незалежныя Зменныя ў вас ёсць. І тады яны могуць быць альбо Вектары, усё ж даўжыні. Або яны могуць быць калонкі Загалоўкі ў кадры дадзеных што вы проста паказваеце ў Другі аргумент кадр дадзеных. Вы таксама можаце паказаць больш складаная формула так што вам не прыйдзецца лінейна рэгрэс залежную зменную адзін, або адзін вектар на ўжо існуючай вектара. Вы можаце зрабіць, напрыклад, кампанент вектара у ў квадраце плюс 1 і рэгрэс, што супраць увайсці ў якой-небудзь іншай вектар. Вы можаце раздрукаваць Анатацыі мадэль з назвай гэтай каманды summary-- толькі кароткае дужкі мадэль. Зноў нешта яшчэ, што я павінен удакладніць. Нешта яшчэ, што будзе выпраўлена атрымаць калі слайды ўверх у Інтэрнэце. Калі вы проста хочаце, каб вылічыць просты карэляцыі Вы можаце выкарыстоўваць карэляцыі вектар 1 вектар 2 асноўная функцыя. Метад па змаўчанні Карэляцыі Пірсана. Такія стандартнымі вы можаце зрабіць. Там таксама Спирмена і Кенделл карэляцыі якія з'яўляюцца аднымі разнастайнасць Ацэнка карэляцыі парадку. Ну яны не разлічваюць прадукт моманты паміж самімі вектараў, але рангу заказаў вектара. Я растлумачу пазней. АЎДЫТОРЫЯ: Хуткі пытанне CONNER Харыс: Вядома. АЎДЫТОРЫЯ: Такім чынам, калі вы разліку Па той простай карэляцыі сапраўды Вы мяркуеце, што ёсць статыстычны Значэнне карэляцыі? CONNER Харыс: Вы не павінны. ЛМ ў асноўным проста машына. Гэта зойме дзве рэчы і ён будзе выплёўваць Каэфіцыенты для лепшай падганяння лініі. Ён таксама паведамляе, стандарт Памылкі на гэтых каэфіцыентаў. І ён скажа вам, як гэта перахоп статыстычна значным ці розніца ад 0. Хіба нахіл з лепшых прыдатную лінію статыстычна выдатны ад нуля, і гэтак далей. Так што не прадугледжвае нічога, я думаю, лепш адказ на ваша пытанне. ДОБРА. Plotting-- таму асноўнай прычынай вы павінны выкарыстоўваць R, як полилинейного рэгрэсіі. У асноўным кожны мова мае некаторыя сродак для гэтага. І, шчыра кажучы сінтаксіс R для рэгрэсіі трохі таямніцай. Але пабудова, дзе гэта сапраўды ззяе. Функцыя працоўным конікам з'яўляецца ўчастак і гэта займае два вектары х і у. А потым эліпсы выступае за вельмі вялікая колькасць дадатковых аргументаў, якія кантраляваць усе, пачынаючы ад назваў кветак да розных ліній або розных кропках, тыпу ўчастка. Вы можаце мець роскід ўчасткі або ўчасткі лініі. [Неразборліва] 2 вектары аднолькавай даўжыні. Вы можаце папярэднічаць гэта з прымацуеце кадр дадзеных у сцэнары. І гэта дазволіць вам выкарыстоўваць слупок толькі Загалоўкі замест асобных вектараў. Вы можаце дадаць аптымальнае прылеганія лініі і лакальнай рэгрэсіі крывых на ваш графіцы. Гэтыя каманды пералічаныя тут, лініі AB і ліній, па змаўчанні гэта атрымаць напісана ў поп вокнамі паколькі ён мяркуе, што Вы карыстаецеся R ў інтэрактыўным рэжыме. Калі вы не вы можаце напісаць два файла, што у любым фармаце сапраўды хочаце. На жаль, у мяне ёсць памылку друку Я проста зразумеў. Калі вы хочаце, каб адкрыць іншы графічны прылада Вы можаце выкарыстоўваць гэтую функцыю пад назвай PNG або JPEG ці шмат іншых фарматаў. І вы можаце напісаць графікі на любое імя файла, які вы пакажа. Каб адмяніць, што вы павінны use-- Я не пішу гэта ў slide-- але ёсць функцыя называецца DEV кропка з, што не прымае аргументаў. Тады ёсць аб'екты для 3D чарчэння і контуру змову калі вы хочаце, каб зрабіць Графікі двух незалежных зменных. Я не буду ўдавацца ў гэтыя цяпер. Ёсць таксама некаторыя сродкі для анімацыі тыя, як правіла падтрымліваюцца трэцімі бакамі. Я зрабіў анімацыю з R графікаў, але я не выкарыстаў гэтыя трэці бок бібліятэкі. Так што я не магу пацвердзіць пра тое, як яны добрыя. Тое, што я рэкамендую, калі вы хочаце зрабіць анімацыю, выкарыстоўваючы R што вы можаце выпісаць усе кадры для анімацыі а затым вы можаце выкарыстоўваць program-- трэці бок тыповыя з іх завецца FFmpeg або ImageMagick-- пашыць усе вашы кадры ў адну анімацыю. Так час для дэманстрацыі. Так што, калі вы выкарыстоўваеце якой-небудзь Unix, як сістэмы што Linux BSD, але хто выкарыстоўвае BSD. OS X адкрыйце акно тэрмінала і Type R ў камандным радку. Калі ў вас ёсць R студыю або і да т.п., якія таксама працуе. Для карыстальнікаў Windows, вы павінны быць у стане знайсці R у меню Пуск. Варта назваць тое як R x64 3 Справа ўсё. Адкрыйце, што там. Так што цяпер дазвольце мне адкрыць акно тэрмінала. Добра, пошук. АЎДЫТОРЫЯ: Каманда-касмічнай CONNER Харыс: Каманда-касмічнай, дзякуй. Я звычайна не выкарыстоўваць кампутары Mac. Тэрмінал, паказаць новае акно. Новае акно налады Асноўны, Р. Такім чынам, вы павінны атрымаць прывітальнае паведамленне, што нешта накшталт гэтага. Так што я з дапамогай R ў інтэрактыўным рэжыме. Вы таксама можаце напісаць R скрыпты вядома. У асноўным сцэнары выконваюцца сапраўды такім жа чынам, як калі б вы сядзелі за кампутарам набраўшы ў кожнай радку па адным за раз. Такім чынам, давайце пачнем з стварэння вектара. Стрэлка C 1, 2. 1, 2, 4. Так, вядома. Я магу зрабіць памер шрыфта больш. АЎДЫТОРЫЯ: Каманда-Плюс CONNER Харыс: Каманда-Плюс. Каманда-Плюс. Добра, як гэта? Добра? ДОБРА. Такім чынам, давайце пачнем з абвясціўшы спіс вектар. Зрабіце, стрэлка, C 1,2,4. Мы можам убачыць. Не турбуйцеся аб кранштэйне там. У дужкі так што калі вы раздрукаваць вельмі доўгія масівы, мы можам, дзе вы знаходзіцеся. Адным з прыкладаў можа быць, калі я проста хачу дыяпазоне ад 2 да 200. Калі я надрукаваў вельмі доўга масіў, кранштэйны проста так я магу трымаць трэк, які індэкс мы на, калі я шукаю праз гэта візуальна. Так ці інакш, у нас ёсць. Так што я сказаў раней, чым ўзаемадзейнічаць, што масівы вельмі прыгожа, напрыклад, унарные аперацыі, як гэта. Так што вы думаеце, я буду атрымаць, калі я друкую плюс 1? Так. Добра, а цяпер я буду рабіць гэта адрозніваецца масіў. Скажам б у 20,40, 80. Так што вы думаеце гэтая каманда будзе рабіць? Дадаць элементы. І так у асноўным гэта, што ён робіць. Так што гэта даволі зручна. Так што я, як пра я раблю гэта. З ёсць, скажам, у 6 разоў з 1 па 10. Так што я хачу, каб убачыць змяшчаецца, як вы думаеце? Так што ўсё кратныя шасці. Цяпер, што вы думаеце, адбудзецца, калі я гэта зрабіць? Я зраблю гэта крыху больш зразумела, C, C. Так што ж адбываецца, ці не так думаю, калі б я гэта зрабіць? плюс гр. [Неразборліва] АЎДЫТОРЫЯ: Альбо памылка або толькі дадае першыя тры элемента. CONNER Харыс: Не зусім. Гэта тое, што мы атрымалі. Што адбываецца, з'яўляецца больш кароткі Масіў, а, атрымаў цыклічнае. Такім чынам, мы атрымалі 124, 124, 124. Так. І ў прынцыпе, вы можаце прагледзець гэта паводзіны раней, плюс 1, як падклас гэтага паводзін, дзе самы кароткі масіў толькі колькасць 1, які з'яўляецца масівам адзін элемент. Я проста кажу вектар ўсе час замест масіва, таму што гэта тое, што г Дакументацыя звычайна робіць. Гэта ўкаранілася з звычкай. ОК, і цяпер у нас ёсць гэты масіў. Такім чынам, мы маем гэты масіў, гр. Мы можам атрымаць зводку Статыстыка па C, зводнай гр. І гэта прыемна. Так што цяпер давайце зробім некаторыя матрычныя рэчы. Скажам, м ўяўляе сабой матрыцу. Давайце зробім яму тры на тры адзін. Так Nrows роўная 3, і Ncols роўны 3. І для дадзеных давайце do-- так, што Як вы думаеце, гэта будзе рабіць? Права, гэта наступны. Гэта nrow і ncolumn. Так што я зрабіў, я маю абвясціў тры па тры матрыцы і я прайшоў у масіве дзевяці элементаў. Так лагарыфма ўсе Элементы аднаго да дзевяці. І ўсе гэтыя значэння запаўняюць уверх па array-- прабачце? АЎДЫТОРЫЯ: Гэта базавыя 10 часопісы? CONNER Харыс: Не, часопіс натуральныя лагарыфмы, так подла электроннай. Так, калі вы хочаце база 10 часопіса, я думаю, вы павінны увайсці ўсё, дзеліцца на часопіс 10. І таму дадзеныя з [неразборліва] толькі запаўняе масіва, так і зверху ўніз, затым злева направа. І калі вы хочаце, каб зрабіць некаторыя іншыя Масіў, скажам п матрыца. Давайце рабіць, я не ведаю, ад 2 да 13 гадоў. Ці я зраблю нешта больш цікавае. Я зраблю 2 да 4. nrow роўная, скажам, 3. Ncol роўная 4. п. Такім чынам, мы атрымалі гэта. А цяпер, калі мы хочам, каб памножыць іх мы хацелі б зрабіць п адсоткаў раз адсоткаў, таму што гэта н. І ў нас ёсць творы матрыц. Па іх Дарэчы, вы ўбачыць, як калі я заявіў, п, 2 да 4 вектар не атрымаў пакуль цыклічнае напоўніў усю п? Калі вы хочаце прыняць ўласнае разлажэнне, гэта тое, што мы можам зрабіць вельмі лёгка. Мы можам зрабіць уласныя вектары п. І так гэта наш першы сутыкаюцца са спісам. Так ўласнае п спіс з двума ключамі. Значэння, які з'яўляецца гэты масіў тут. І вектары, якія гэта масіў тут. Так што, калі вы хочаце, каб атрымаць, казаць, што гэта трэці слупок з матрыцы ўласных вектараў, з-за ўласныя вектары-слупкі вектараў. Такім чынам, мы можам зрабіць VEC ўласныя вектары знак даляра н Вектары, коска 3, з [неразборліва]. Стагоддзе. Хіба што, як вы маглі б чакаць. Тады скажыце п раз адсоткаў раз VEC. Такім чынам, вынік тут, безумоўна, выглядае як калі мы занялі трэцяе ўласнае тут, што адпавядае трэці уласны. Гэта проста памножыць усё ў гэта ўласны кампанент-мудры, па ўласным. І гэта тое, што мы маглі б чакаць, таму што гэта тое, што ўласныя значэння. Хто-небудзь тут не прымаць лінейную алгебру? Пару чалавек, ОК. Проста уключыце свае мазгі ад няшмат. І на самай справе, калі мы возьмем ўласныя вектары п даляр значэння знак 3 разы VEC, а атрымаць тое ж самае. Гэта адфарматаваны інакш як запар вектар замест вектара-слупка, але вялікую справу. І таму тыя, у асноўным сімпатычная рэчы, якія мы можам зрабіць з матрыцамі, прадэманстравалі спісы. Я павінен прадэманстраваць добры рэчы пра функцыі, а таксама. Такім чынам, давайце say-- [неразборліва] Функцыя, выклік давайце гэта функцыі супраць функцыі N N squared-- на самай справе, гэта не сапраўды лепшы. а, бы, а квадрат плюс б. Такім чынам, адна рэч аб Функцыі, зноў жа, яны ня трэба відавочныя вяртання заявы. Такім чынам, вы можаце просто-- Апошняе сцвярджэнне ацэньваецца будзе заяву, вярнуўшыся, або вяртаецца значэнне. Такім чынам, у гэтым выпадку, мы толькі ацэнкі адна заява, прамавугольнай плюс б. Гэта будзе вяртанне значэнне па змаўчанні. Ён ніколі не пашкодзіць, каб пакласці ў вяртаць значэння відавочна, асабліва калі вы маеце справу з Функцыя вельмі складанай логікі цечу. Але вы не маеце патрэбу ў іх. Так што цяпер мы можам зрабіць FUNC 5, 1, і гэта ў асноўным тое, што вы чакалі. Нешта яшчэ мы можам зрабіць, мы можам на самай справе Func б роўны 1, роўная 5. Так што, калі мы вызначаем, які нумар тут, які аргумент ідзе, які аргумент у функцыі, мы можам перавярнуць вакол гэтыя значэння, куды мы хочам. АЎДЫТОРЫЯ: Ёсць прычына, напісаць яго з б роўны, а не проста з дапамогай лічбы і коска? CONNER Харыс: Так, як правіла, гэта зрабіць, калі ў вас ёсць функцыі з вялікай колькасцю аргументаў. Гэта можа часта быць, як Сцягі, вы б толькі хочаце выкарыстоўваць у рэдкіх выпадках. І такім чынам можна only-- вас можаце звярнуцца да канкрэтных аргументаў што вы хочаце выкарыстоўваць значэння не па змаўчанні для, і вы не павінны выпісаць куча сцягоў раўняецца хлусню за імі. Ці я магу напісаць гэта зноў значэнне па змаўчанні, як бы роўная 2. І тады я мог бы зрабіць ф FUNC, Я зраблю 4, 1 на гэты раз. І 17, што квадрат 4 плюс 1, як вы маглі б чакаць. Але я мог таксама проста называем гэта з FUNC 4, і я атрымаю 18, таму што Я не паказаць б. Так бы атрымлівае значэнне па змаўчанні 2. ОК, так што зараз, калі вы наступных разам з дэма, увядзіце наступны радок у вашым распараджэнні падкажыце і паглядзець, што ідзе ўверх. На самай справе, гэтага не робяць. Калі ласка, увядзіце гэты. Вы павінны атрымаць нешта накшталт гэтага. Так mtcars з'яўляецца пабудаваны ў дадзеных набор для дэманстрацыі Мэты, што прыходзіць with--, што прыходзіць у па змаўчанні з вашага дыстрыбутыва г. Гэта зборнік статыстычных дадзеных з 1974 выпуск часопіса Motor Trend ў па шэрагу розных мадэляў аўтамабіляў. Так што міль на галон, cylinders-- Я забыўся, што DISP is-- конскіх сіл. Магчыма. Калі вы проста аўтамабілі Google МТ, то адзін з першых вынікаў будзе ад Афіцыйны г дакументацыя і ён будзе растлумачыць усе гэтыя палі дадзеных. Так вага is-- мас з'яўляецца Вага аўтамабіля ў тонах. Пытанне сек час чвэрць мілі. Так што цяпер мы можам зрабіць некаторыя пацешныя рэчы аб аўтамабілях МТ гэта поле дадзеных. Такім чынам, мы можам зрабіць што-то як імёны радкоў, Mt аўтамабіляў. І гэта спіс усіх радкоў у Набор дадзеных, якія Імёны аўтамабіляў. Мы можам зрабіць COLNAMES, Mt аўтамабіляў у гэтым. Калі вы MT аўтамабілі, суб-лікавы індэкс, як 2. мы атрымліваем другую калонку з гэта, якое было б цыліндры. АЎДЫТОРЫЯ: Што вы рабілі? CONNER Харыс: Я набраў м аўтамабілі, кранштэйны е, які даў мне другі калонка з МТ аўтамабіляў. Ці, калі мы хочам радок, я магу ўвесці mtcars коскі 2, напрыклад. Іншае раўнд 2 коска, як гэта. І, што ідзе ў радку. Гэта вось як раз дае вам слупок, але калона ў якасці вектара. Я проста зразумеў, цяпер я забыўся, каб прадэманстраваць некаторыя цікавыя рэчы пра вектарах што вы можаце зрабіць з індэксамі. Такім чынам, дазвольце мне зрабіць гэта прама цяпер. Так давайце зробім з gets-- пакласці гэта на pause-- 2 разы з 1 па 10. Так з проста будзе вектар 2 па 20. Я магу ўзяць элементы, такія як гэта, с2. Я магу перадаць у вектары як гэта, дазвольце мне C-- выкарыстоўваць іншае імя, чым з, як VEC гр. У прынцыпе, я раблю гэта так вы не атрымаеце блытаць паміж C як Функцыя будаўніцтва вектар, а затым з імем зменнай. Vec дужкі гр 4, 5, 7. Гэта будзе выцягнуць мяне чацвёрты, пяты, і сем элементаў масіва. Я магу зрабіць VEC, пакласці ў адмоўнай Індэкс, як негатыўнага 4. Гэта дапаможа мне гэта з чацвёрты элемент выдаляецца. Тады, калі я хацеў зрабіць зрэзы, Я магу зрабіць VEC 2 да 6. 2 тоўстай кішкі 6 гэта проста яшчэ адзін вектар, які з'яўляецца 2, 3, 4, 5, 6. Выплёўвае што. Так ці інакш, таму да гары аўтамабіляў. Так давайце зробім некаторыя рэгрэсіі. Скажам, мадэль gets-- давайце лінейна regress-- я не ведаю. Перш за ўсё, давайце надаём mtcars, вядома. Так Мадэль LM, хай [неразборліва] -х рэгрэс міль на галон на тыльды вагі. І тады фрэйм ​​дадзеных mtcars. Так Рэзюмэ мадэль. ОК, так што гэта выглядае крыху больш складана. Але ў прынцыпе, бачачы, як калі б мы паспрабаваць выказаць міль на галон ў выглядзе лінейнай функцыі вагі, Затым мы атрымалі гэтую лінію тут, які перахапляе на 37.28. 37.28 будзе тэарэтычныя мілях за галон аўтамабіля, які важыць нуля. А потым за кожны дадатковы тону, вы стукайцеся каля пяці міль на галон ад гэтага. Абодва гэтых каэфіцыентаў вы бачыце, стандартныя памылкі ёсць. І яны вельмі статыстычна значным. Такім чынам, мы можам быць вельмі ўпэўненыя ў 1 адрас 10 з адмоўным 10. Такім чынам, 1 раз нешта адмоўнае 10, што, калі вы зробіце цяжэй аўтамабіль, яна будзе мець горшыя міль на галон. Ці мы можам праверыць некаторыя іншыя мадэлі. Як замест рэгрэсуюць гэта на вазе, давайце рэгрэс яго на часопіс вагі, Таму што, магчыма эфектыўнага вагі на прабегам неяк не лінейна. Гэта дало нам г квадрат 0.7528. Так давайце паспрабуем гэта. На гэты раз давайце рабіць розныя зменныя, таксама. Model2. Так рэзюмэ, модель2. Добра, так што зноў, мы атрымаў лепшыя падыходзяць лінію. І гэта time-- гэта кажа, у асноўным, што кожны раз, калі вы павялічыць вага аўтамабіль з каэфіцыентам е Вы губляеце гэта шмат міль на галон. І таму ў гэты раз наша рэшткавае стандартнае памылка it--, што не мае значэння, на самай справе. Рэшткавы стандартная памылка у асноўным толькі стандартная памылка што вы пакінулі пасля вас забраць лінію трэнду. І наша R квадрат тут 0.81, які трохі лепш, чым тое, што мы мелі да 0,52. І вось зараз давайце дадамо тэрмін гэтай рэгрэсіі. Такім чынам, давайце рэгрэс міль на галон і на бервяне вагаў і давайце рабіць, ● міль, чвэрць мілі час. ОК, ён павінен мець the-- усё правільна, qsec. Qsec. Actually-- прабачце, што? Дазвольце мне назваць гэты-то яшчэ, акрамя мадэлі 2. Дазвольце мне назваць гэты model3. І вось зараз мы можам зрабіць кароткі model3. І так зноў, гэта ў асноўным тое, што вы маглі б чакаць. Вы станоўча перахоп. Эфектыўная павелічэння Вага адмоўны. І эфектыўная павелічэнне часу чвэрць мілі з'яўляецца станоўчым, але, хоць менш, чым вага. Цяпер інтуітыўна, вы можаце зразумець гэта, кажучы думаць аб спартыўных аўтамабіляў. Там вельмі хуткае паскарэнне, вельмі кароткі час чвэрць мілі. Яны таксама збіраюцца выкарыстоўваць больш газу, у той час як больш разумныя аўтамабілі збіраюцца мець павольнае паскарэнне, вышэй разы на чвэрць мілі, і выкарыстоўваць менш газу ,, так вышэй міль на галон. Выдатна. І вось зараз прыйшоў час пабудаваць нешта накшталт гэтага. Такім чынам, давайце do-- так голыя косткі мы можам зрабіць plots-- таму што я прымацаваны гэты кадр дадзеных before-- мы можам толькі зрабіць сюжэты, вага міль на галон. Зрабіць гэта крыху больш. Там мы ў асноўным маюць Роскід ўчастак, але пункту з'яўляюцца свайго роду цяжка ўбачыць на гэтым. Я не памятаю, экспромтам, што Сінтаксіс для змены ўчастак. Таму я думаю, што гэта будзе добры час, каб выхоўваць, ёсць вельмі добры убудаваная дапамогу функцыя, дапамога каціроўкі функцыянаваць імя. Мы прывязем да асноўным што вы хацелі. Я думаю, што я на самой справе зрабіць гэта тып роўны р для кропак участкаў. Хіба нешта мяняць? І няма, не зусім. Добра. Па нейкай прычыне, калі я зрабіў гэта на маім уласным кампутары некаторы час таму, усе кропкі рассейвання былі нашмат больш ясна. Ва ўсякім выпадку, гэта роскід выгляд відаць? Там адзін там. Некаторыя там, нешматлікія. Вы можаце сартаваць іх бачыць, ці не так? Так што, калі мы хочам, каб дадаць найлепшым чынам падыходзіць лініі каб гэты ўчастак тут, які трохі голай bones-- дазвольце мне зрабіць гэта крыху лепш. Галоўная роўная супраць вагі. Міль на галон. Зноў жа, вы можаце ўбачыць, наколькі карысным неабавязковыя аргументы тут з таксама не маючы навесці ў пэўны парадак з аргументамі клавіятуры калі ў вас ёсць ўчасткі, таму што гэта зойме шмат аргументаў. Xlab роўная вага, вага, тон. Добра. ОК, так, гэта прылада у цяперашні час крыху раздражняе. Але вы можаце бачыць роду там, ёсць назва графік на баку. Сюды there's-- на дне тут ёсць пазнакі восі. Я не памятаю, экспромтам якія каманды ars-- тое, што функцыі, каб павялічыць памер гэтых этыкетак і назваў, але яны ёсць. І таму, калі мы хочам, каб дадаць лепш за ўсё падыходзяць лініі, мы маглі б зрабіць нешта like-- I ёсць сінтаксіс напісана тут. Так што памятаеце, мы проста дадаць мадэль быў міль на галон, вага, mtcars. І таму, калі я хацеў бы дадаць, найлепшае адпаведнасць лінія, я мог бы зрабіць, бы лініі мадэлі. І бум, у нас ёсць найлепшае адпаведнасць лініі. Гэта свайго роду цяжка ўбачыць. Я цалкам шкадую аб тэхналагічныя цяжкасці. Але ён працуе ў асноўным верхні левы правы ніжні. І калі маштаб былі больш, вы маглі бачыць што перахоп з'яўляецца тое, што вы можаце знайсці з зводнай статыстыкі калі ўвесці зводны мадэль. ОК, так што я спадзяюся, што кожны атрымлівае што-то сэнс таго, што R з'яўляецца, тое, што гэта добра для. Вы маглі б зрабіць значна прыемней, чым ўчасткі гэта на вашым уласным часу, калі вам падабаецца. Так інтэрфейсу знешняй функцыі. Гэта тое, што звычайна не пакрытыя ўводных лекцый або што-небудзь для ўступнага р. Гэта не верагодна, што вы збіраецеся ў ёй мае патрэбу. Тым не менш, я знайшоў гэта карысна ў мае ўласныя праекты ў мінулым. І няма нічога добрага падручнік для яго ў Інтэрнэце. Так што я проста хачу, каб прыспешваць вас усё праз гэта і тады вы можаце пакінуць. І таму знешняя Функцыя інтэрфейс, што Вы можаце выкарыстоўваць, каб выклікаць, каб убачыць Функцыі з Р. Унутрана, R пабудаваны на арыфметычнае С. R знаходзіцца ўсяго 64-біт з якая плавае кропкай арыфметыка C, у які двойчы увядзіце [неразборліва]. І вы, магчыма, захочаце зрабіць гэта для звязка прычын. З аднаго боку, R інтэрпрэтуецца, гэта ня кампілюецца ў машынны код. Такім чынам, вы можаце перапісаць Унутраныя завесы ў C, а затым атрымаць Перавага выкарыстання Р. падабаецца гэта крыху зручней, чым C. Ён мае больш графікаў Выгоды і яшчэ шмат чаго. І ў той жа час магчымасць атрымаць Максімальная хуткасць з унутраных завес, які з'яўляецца, дзе гэта сапраўды неабходна. Паўторнае выкарыстанне існуючых бібліятэк C, гэта таксама важна. Калі ў вас ёсць C бібліятэкі для, як, Я не ведаю пераўтварэнні Фур'е, ці некаторыя вельмі архей Працэдура статыстыкі у астрафізіцы высокіх энергій ці нешта, я не ведаю. Астрафізіка высокіх энергій нават не думаю, я думаю. Але вы можаце зрабіць гэта замест таго, напісаць родны порт R з іх. А на the-- і зноў, як калі б вас шукаць у большасці бібліятэк змаўчанні R, у на ўнутраных, вантробы з'яўляюцца збіраецеся выкарыстоўваць знешнюю функцыю інтэрфейс вельмі шырока. Яны маюць такія рэчы, як Фур'е пераўтворыць або вылічэнні карэляцыі Каэфіцыенты напісаны на З, і яны будуць проста R абгорткі вакол іх. Інтэрфейс з'яўляецца трохі цяжка. я думаю яе складанасць перабольшаная ў Шмат інструкцый вы знойдзеце. Але, тым не менш, гэта крыху заблытанай. І я не быў у стане знайсці добры падручнік для яго, так што гэта прама цяпер. Зноў жа, гэта ўвесь адрэзак больш для далейшага выкарыстання. Не хвалюйцеся аб капіяванні усе ўніз прама цяпер. Так наступнымі інструкцыямі прызначаныя для Unix-падобных сістэм, Linux, BSD, OS X. Я не ведаю, як гэта працуе на Windows, але, калі ласка, толькі не зрабіць ваш Канчатковы праект на Windows. Вы сапраўды не хочаце, каб. Unix значна лепш набор на выпадковага праграмавання. Так, у асноўным замежных Функцыя інтэрфейсу. Калі вы хочаце, каб напісаць C Функцыя для выкарыстання з R, ён павінен прыняць усе аргументы, паказальнікі. Такім чынам, для асобных значэнняў, гэта азначае, што ён паказаў на значэнне. Для масіваў, гэта паказальнік на першы элемент, які гэта тое, што імёны масіваў на самай справе азначае. Зноў жа, гэта тое, што вы павінны мець даволі цалкам ўніз пасля р ўсталяваць пяць. Імёны масіваў проста паказальнікі да першага элементу, Тып з якая плавае кропкай у два разы. І ваша функцыя павінна вярнуць несапраўднымі. Адзіны спосаб, якім яна можа на самай справе сказаць, што адбылося R з'яўляецца мадыфікацыяй памяці, R даў да яго праз знешнюю функцыю Інтэрфейс. Так што я напісаў гэта Прыкладам, гэта функцыя, якая вылічае выкарыстанне Скалярны твор двух вектараў. Гэта прымае два аргументу, vec1, vec2, якія самі вектары, і затым N, які ўяўляе сабой Даўжыня, таму што зноў, R мае ўбудаваны [неразборліва], каб даведацца, даўжыня вектараў, але з не. У C, вектары адвольнае падзельнікамі кавалак памяці. Такім чынам, спосаб можна разлічыць кропкавыя прадукты проста ўсталюеце гэты параметр з да нуля, а затым перабору ад 1 да п зорка, таму што п гэта паказальнік на даўжыню, проста нешта дадаць гэта выхадны параметр. І гэта можа быць добрая практыка калі вы збіраецеся зрабіць Гэты напісаць дзве асобныя функцыі C. Адзін з іх has-- адзін з іх проста прымае аргументы і тыпы што яны звычайна быць у C. Так яно прымае масіў аргументы, паказальнікі. Але адзіным значэннем аргументу, як N, ён проста прымае ў якасці значэнняў па копіі, без паказальнікаў. І тады ён не [Неразборліва] з паказальніка. І тады вы можаце мець іншы, у асноўным, Функцыя абгортка, што ў асноўным апрацоўвае патрабаванні знешняй функцыі інтэрфейс для вас. Як вы назваць гэта ў R ёсць, як толькі ў вас ёсць функцыя, напісаная на C, Вы TYPE R CMD shlib, R Каманда падзяляная бібліятэка, Foo кропка з, або тое, што Ваша імя файла, і АС абалонка не ў R тэрмінала. І гэта створыць Бібліятэка называецца Foo кропка так. І тады вы можаце загрузіць яго ў наш скрыпт або інтэрактыўна з каманднай дын кропка нагрузкі. Тады існуе функцыя у R называецца кропка з. Гэта прымае аргументы, якія Спачатку імя функцыі ў C што вы хочаце патэлефанаваць. І тады ўсе параметры для гэтай функцыі, яны павінны быць у правільным парадку. Вы павінны выкарыстоўваць гэтыя тып Функцыі прымусу ў выглядзе цэлага ліку, а двойчы, а характар, і, як лагічна. А потым, калі ён вяртае Спіс, які зноў толькі асацыятыўны масіў з Імёны параметраў і значэння пасля таго, як функцыя запуску. Такім чынам, у гэтым выпадку, таму што кропка Prod мае Аргументы vec1, vec2 і Int N, N-за. Для кропка З маем кропка Prod, імя функцыі мы называем, vec1, vec2, тып прымусу. Даўжыня вектару альбо, Я проста выбраў vec1 адвольна. Было б больш надзейнай, каб сказаць S лік даўжыня мін vec1, даўжыня vec2. Тады як два нулі, таму што мы на самай справе не ўсё роўна, што неабходна змясціць у з параметру, таму што мы усталяваўшы яе на нуль у любым выпадку. І тады вынікі будзе вялікі асацыятыўны масіў з у асноўным vec1 з'яўляецца тое, што, vec2 гэта што заўгодна. Але мы зацікаўлены ў , Так што мы можам атрымаць, што. Гэта зноў жа, вельмі прыкладам цацка з інтэрфейсу знешняй функцыі. Але калі ў вас ёсць, каб вылічыць кропку прадукты масіўных вектараў завес, або калі ў вас ёсць, каб зрабіць што-то яшчэ ў цыкле, і вы не хочаце, каб спадзявацца на R, які мае трохі накладных расходаў убудаваны ў яе, гэта можа быць карысна. Зноў жа, гэта не заўсёды ўводны тэма, R. Гэта не вельмі добра дакументаваны. Я проста ў тым ліку, таму што Я знайшоў яго карысным у мінулым. Так, дрэнныя практыкі. Я згадаў, што ёсць цыкл у функцыі. Як правіла, вы не павінны, у мова, а не выкарыстоўваць яго. Грунтуючыся на тым, як R рэалізуе ітэрацыі ўнутры, гэта можа быць павольным. Яны як раз і выглядаць непрыгожа. R апрацоўвае вектары вельмі прыгожа, так часта вам не трэба выкарыстоўваць яго. Тады вы можаце, як правіла, замяніць вектар часта з гэтымі функцыямі, званых высокага Функцыі парадку, Карта, паменшыць, Знайсці або фільтр. Я проста даць некаторыя прыклады таго, што яны робяць. Карта з'яўляецца высокая функцыя замовы, таму што ён прымае функцыю ў якасці аргументу. Такім чынам, вы можаце даць яму функцыю, Вы можаце даць яму масіў, і яна будзе прымяніць функцыю да кожнага элемента масіва і вярнуць новы масіў. Скарачэнне, у асноўным вы даяце гэта масіў, вы даеце яму функцыя, якая прымае два аргументу. Гэта будзе прымяніць функцыю-першае, Першы аргумент з некаторым значэннем стартара. Затым да гэтага выніку ў секунду. Затым да гэтага выніку па-трэцяе, Затым да гэтага выніку ў чацвёртым. А потым вярнуцца, калі ён атрымлівае да канца. Так, напрыклад, калі вы хочаце, каб вылічыць суму ўсіх элементаў у масіве, чым вы маглі б назваць паменшыць з [неразборліва] скараціць дадатак Функцыя, як FUNC а, бы, вярнуцца плюс б. І затым пачаць значэнне 0. І ўсё гэта, вы можаце знайсці іх апісана ў дакументацыі R, у любым падручніку па функцыянальнае праграмаванне. Там таксама гэты клас функцыі, якія выклікаюцца ўжываць функцыі, якія я don't-- яны трохі цяжка растлумачыць, але калі вы паглядзіце на [неразборліва] забраніравана, што я прывёў у пачатку, ён тлумачыць іх даволі добра яго дадатак на R праграмавання. Больш падрабязна аб практыцы, дадання да вектарах. Да? Я думаю, што я павінен выправіць. У гэтай першай радкі, VEC стрэлка, што стрэлка не павінна быць там. Вы можаце прызначыць вектар, зноў, узяць яе даўжыню плюс 1 і прысваення некаторую каштоўнасць для гэтага. Гэта падоўжыць вектар, ці вы можна зрабіць Стагоддзе роўная с, VEC новое_значение. Зноў жа, калі вы выкарыстоўваеце C з адзін аргумент ў выглядзе вектару, у выніку іерархія атрымлівае сплясканыя. Такім чынам, вы будзеце проста атрымаць вектар які падоўжаны на 1. Ніколі не рабіце гэтага. Прычына, чаму вы не павінен гэтага рабіць гэта. Калі вы вылучыць вектар, яго дае яму пэўны ўчастак памяці. Калі павялічыць, што вектар памер, яна мае пераразмеркаваць вектар дзесьці яшчэ. І так пераразмеркаванне даволі дорага. Я не буду ўдавацца ў падрабязнасці аб тым, як размеркавальнікі памяці рэалізаваны на ўзроўні аперацыйнай сістэмы, але гэта займае шмат часу, знайсці новую частку памяці. А таксама, калі вы Re-вылучаюць шмат-шмат прагрэсіўна больш кавалкі, вы ў канчатковым выніку з чым-то пад назвай фрагментацыі памяці, дзе даступная памяць падзелены на мноства маленькіх блокаў у размеркавальнікі памяці пункту гледжання. І гэта становіцца ўсё цяжэй і цяжэй знайсці памяці для іншых рэчаў. Такім чынам, замест, калі вам трэба зрабіць гэта, калі Вы павінны расці вектар з аднаго канца да іншага, а не дадаецца да яго пастаянна, вы павінны папярэдне вылучыць яго. Стагоддзе стрэлка, даўжыні вектара роўны 1000, ці нешта. І тады вы можаце проста прысвоіць да значэнняў аднаго вэктару ў час пасля таго як вы выдзелены адзін раз. Я пабег у гэта, зноў жа, мой гадовай працы калі я пісаў NRA дыферэнцыял Раўнанне решатель. Ня сімвалічна колькасную. Ідэя ў тым, што калі ў вас ёсць адно значэнне для вырашэння, выкарыстоўваць, што для вылічэнні наступны. Так што мой натуральны наіўна Нахіл павінен быў сказаць ОК, так што я пачну з вектарам гэта істотнае значэнне. Вылічыць з гэтага наступнага значэнні што ідзе на мой вектара рашэння, і дадаць, што. Стварыць нешта яшчэ, што дадаць. Ён пайшоў вельмі, вельмі павольна. І як толькі я зразумеў, што гэта і я змяніў сваю сістэму ад дадання да гэтага вектару як 10000 да 100000 раз, проста папярэдне вылучыць вектар і проста працуе з гэтым. Я атрымаў больш, чым у 1000 разоў хуткасць ўверх. Так што гэта вельмі распаўсюджаная пастка для R праграмавання. Калі вам трэба пабудаваць вектар кавалак за кавалкам, папярэдне вылучыць яго. Яшчэ адна распаўсюджаная паездка up-- гэта мой апошні слайд, ня worry-- з'яўляецца апрацоўка памылак. R, будзем шчырыя, ня сапраўды гэта вельмі добра. Ёсць шмат праблемы, якія могуць узнікаць. Напрыклад, калі вы атрымліваеце масіў або вектар з функцыі што вы чакалі адзін значэнне прыйшлі, ці наадварот, і вы праходзіце, што ў функцыю, якая Вы пісалі чакаючы адно значэнне, што можа быць праблемай. Некаторыя функцыі вярнуцца NULL, як зрабіць, скажам, чытанні з адсутнічае ключ у спісе. Але нуль не падабаецца C дзе, калі вы спрабуеце прачытаць са старога паказальніка, [неразборліва] ў пусты паказальнік, гэта проста SEG памылкі і калі вы ў вашым адладчыка кажа вам, дзе менавіта вы знаходзіцеся. Замест гэтага, NULL будзе do-- функцыі будзе рабіць непрадказальныя рэчы калі яны рукамі нуль. Як, калі вы перадалі макс нуль, гэта дасьць вам адмоўную бясконцасць. І так, так. І так гэта здарылася мне неяк, калі я быў змяніў кучу палёў у маім спісе структуру калі без змены іх у іншым месцы калі я чытаў ад іх. А потым я атрымаў усе віды выпадковых Вынікі бясконцасць якая з'яўляецца і я паняцця не маю, дзе яны не прыйшлі. І, на жаль, ёсць Няма рэальнага строгі рэжым R дзе вы можаце сказаць, калі нешта падобна, што гэта можа быць памылка, проста перастаць ёсць, так што я можа быць дысцыплінаванымі і выправіць. Тым не менш, ёсць нешта называецца прыпынак, калі няма. Гэта эквівалентна сцвярджаюць C, у калі вы казалі пра гэта. Я не думаю, што сцвярджаць, З тэма лекцыі, але ваш лідэр раздзел магчыма, пайшоў на яго. І спыніць, калі не ў асноўным прымае любы прэдыкатаў, так што любая заява можа быць сапраўдным або ілжывым. І калі гэта хлусня, то спыняе сваю праграму. Гэта кажа вам менавіта тое, што вам лінію былі і якія ўмовы не ўдалося. І гэта вельмі карысна, напрыклад, праверка здаровае, функцыянальныя ўваходы. Так што, калі ў вас ёсць функцыя і вы чакаеце, скажам, калі вы павінны даць мне дату, я хачу даты быць толькі вектар даўжыні 1 і дзе-то паміж 1 і 31. А калі не, я ведаю, што-то пайшло не так. І я хачу спыняцца перад гэтым мае выпадковы стук эфектаў з кодам што гэта цяжэй прасачыць да канца. Дык вось адзін з магчымых выкарыстоўваць для прыпынку, калі няма. Ва ўсякім выпадку, добра. Так што гэта канец. Дзякуй, што прыйшлі. Я аматар Ацэнка на гэта. Так шкада, калі вам сумна або блытаюць ці што там у вас. Я з задавальненнем адкажу на пытанні па электроннай пошце у connorharris@college.harvard.edu~~pobj. Гэта датычыцца і ўсіх глядзець гэта жыць ці пазней. Акрамя таго, хоць я не ТФ, я таксама вельмі гатовыя служыць неафіцыйных саветнік любога, хто з дапамогай R ў канчатковы праект. Калі вы хочаце, каб што то проста пагаварыць з вашым TF а затым напісаць мне ліст, каб Я ведаю, што вы працуеце на і так я магу наладзіць сустрэчу раз з вамі, калі вы хочаце. Такім чынам, яшчэ раз, вялікі дзякуй. Я спадзяюся, што вам спадабалася. АЎДЫТОРЫЯ: [неразборліва]. CONNER Харыс: Вядома. АЎДЫТОРЫЯ: Якія з праекта будзе студэнт CS выкарыстоўваць R для? CONNER Харыс: Так што, калі вы не робіце тое, што гэта чыста ў горназдабыўной дадзеных, Напрыклад, і шмат рэчаў, вы маглі б зрабіць з гэтым з дадзенымі здабыча і машыннага навучання. Вы можаце выкарыстоўваць R для кампанент чагосьці. Я выхаваны, першапачаткова, прыклад ад таго, калі вы пішаце вэб-сайт і вы хочаце, каб запусціць аўтаматычны Статыстычны аналіз вашага сервера часопісы ў пэўны час кожны дзень, што можа быць нешта, што гэта вельмі лёгка зрабіць у толькі кароткае R-скрыпт, які можна запланаваць для запуску кожную ноч, напрыклад. І я ўпэўнены, што, калі ёсць нейкая прычына вы хачу статыстыкі або графічныя магчымасці і ёсць гэты прабег аўтаматычна замест таго, каб ўзаемадзейнічаць з рэчамі ў Excel, напрыклад, гэта тое, што Вы можаце выкарыстоўваць R для. Так яшчэ пытанні, перш чым я пайшоў? Няма? Добра, добра, зноў, дзякуй Вы вельмі шмат для прыходзіць.