Инсталирање и управување со R пакети.

Би сакал да зборувам за користење на бесплатната средина за статистичка анализа R. Сметам дека е алтернатива на статистичките пакети како што е SPSS Statistics. На мое длабоко жалење, тоа е сосема непознато во пространоста на нашата Татковина, но залудно. Верувам дека можноста за пишување дополнителни процедури за статистичка анализа во S го прави R корисна алатка за анализа на податоци.

Во пролетниот семестар 2010 година имав можност да држам предавања и да одржам практична настава по предметот „Статистичка анализа на податоци“ за студенти на Катедрата за интелигентни системи на Рускиот државен универзитет за хуманистички науки.

Моите студенти претходно земаа семестарски курс по теорија на веројатност кој ги опфаќа основите на дискретните простори на веројатност, условните веројатности, теоремата на Бајс, законот за големи броеви, одредена позадина за нормалниот закон и теоремата на Централната граница.

Пред околу пет години, веќе држев часови во (тогаш комбиниран) семестарски курс „Основи на теоријата на веројатност и математичка статистика“, па ги проширив моите белешки (што им ги давав на студентите пред секој час) за статистиката. Сега кога Рускиот државен универзитет за хуманистички науки има студентски сервер isdwiki.rsuh.ru на катедрата, истовремено ги поставувам на FTP.

Се појави прашањето: која програма треба да ја користам за изведување практична настава на час по компјутер? Често користениот Microsoft Excel беше отфрлен и поради тоа што беше комерцијален и затоа што неправилно имплементираше некои статистички процедури. Можете да прочитате за ова, на пример, во книгата на А.А. Макаров и Ју.Н.Тјурин „Статистичка анализа на податоци на компјутер“. Табеларните табели на Calc од бесплатниот канцелариски пакет Openoffice.org се русифицирани така што едвај можам да ја најдам потребната функција (нивните имиња се исто така скратени одвратно).

Најчесто користен пакет е SPSS Statistics. SPSS сега е купен од IBM. Меѓу предностите на IBM SPSS Statistics би сакал да истакнам:

  • Практично вчитување на податоци во различни формати (Excel, SAS, преку OLE DB, преку ODBC Direct Driver);
  • Достапност и на команден јазик и на широк систем на мени за директен пристап до различни процедури за статистичка анализа;
  • Графички средства за прикажување резултати;
  • Вграден модул за тренер за статистика кој интерактивно предлага соодветен метод на анализа.
Недостатоците на IBM SPSS Statistics според мое мислење се:
  • Плаќање дури и за студенти;
  • Потребата да се добијат (дополнително платени) модули кои содржат посебни процедури;
  • Поддржува само 32-битни оперативни системи Линукс, иако Windows поддржува и 32-битни и 64-битни.
Како алтернатива, го избрав . Овој систем започна да се развива преку напорите на Роберт Џентлмен и Рос Ајхак на Катедрата за статистика на Универзитетот во Мелбурн во 1995 година. Првите букви од имињата на авторите го одредуваа неговиот наслов. Последователно, водечките статистичари се вклучија во развојот и проширувањето на овој систем.

Ги разгледувам предностите на системот што се дискутира:

  • Дистрибуција на програмата под јавна лиценца GNU;
  • Достапност и на изворниот код и на бинарните модули во широката мрежа на складиште CRAN (The Comprehensive R Archive Network). За Русија, ова е серверот cran.gis-lab.info;
  • Достапност на инсталационен пакет за Windows (работи и на 32 и на 64-битна Vista). Случајно се покажа дека инсталацијата не бара администраторски права под Windows XP;
  • Способност за инсталирање од складиште на Linux (работи за мене на 64-битната верзија на Ubuntu 9.10);
  • Достапност на сопствен програмски јазик за статистички процедури R, кој всушност стана стандард. На пример, тој е целосно поддржан од новиот IBM SPSS Statistics Developer;
  • Овој јазик е продолжение на јазикот S развиен во Bell Labs, кој моментално ја формира основата на комерцијалниот S-PLUS систем. Повеќето програми напишани за S-PLUS може лесно да се извршат во околината R;
  • Способност за размена на податоци со табеларни пресметки;
  • Можност за зачувување на целата историја на пресметување за потребите на документацијата.
За првиот час беа подготвени ЦД-а на кои се снимаа инсталациони фајлови, документација и прирачници. Ќе ви кажам повеќе за второто. CRAN обезбедува детални кориснички водичи за инсталација, јазикот R (и неговото подмножество S), пишување дополнителни статистички процедури и извоз и увоз на податоци. Делот Документација со придонес содржи голем број на публикации од наставници по статистика кои го користат овој пакет во образовниот процес. За жал, нема ништо на руски, иако, на пример, има дури и едно на полски. Меѓу книгите на англиски јазик, би сакал да ги споменам „Користење на Р за воведна статистика“ од професорот Џон Верзани од Градскиот универзитет во Њујорк и „Вовед во проектот Р за статистички пресметување“ од професорот Роситер (Холандија) од Меѓународниот Институт за геоинформатика и набљудувања на Земјата.

Првата лекција беше посветена на инсталирање и учење за користење на пакетот, запознавање со синтаксата на јазикот R. Како тест задача беше искористена пресметката на интегралите со методот Монте Карло. Еве пример за пресметување на веројатноста за р.в. со експоненцијална распределба со параметар 3, земете вредност помала од 0,5 (10000 е бројот на обиди).
> x=runif(10000,0,0,5)
> y=runif(10000,0,3)
>t=y<3*exp(-3*x)
> u=x[t]
>v=y[t]
> заплет (u,v)
> i=0,5*3*должина(u)/10000

Првите две линии одредуваат рамномерна распределба на точките во правоаголникот x, потоа се избираат оние точки што спаѓаат под графиконот за експоненцијална густина 3*exp(-3*x), функцијата за заплет ги прикажува точките во графичкиот излезен прозорец и на крајот се пресметува бараниот интеграл.
Втората лекција беше посветена на пресметување на описна статистика (квантили, медијана, средна вредност, варијанса, корелација и коваријанса) и производство на графикони (хистограми, кутии и мустаќи).
Во следните часови се користеше библиотеката Rcmdr. Ова е графички кориснички интерфејс (GUI) за околината R. Библиотеката е создадена со напорите на професорот Џон Фокс од Универзитетот МекМастер во Канада.

Инсталирањето на оваа библиотека се врши со извршување на командата install.packages ("Rcmdr", dependencies=TRUE) внатре во околината R. Ако самата околина е преведувач на јазикот R, тогаш додатокот "Rcmdr" е дополнителен прозорец опремен со мени систем кој содржи голем број на команди соодветните стандардни статистички процедури. Ова е особено погодно за курсеви каде што главната работа е да се научи студентот да притиска копчиња (за мое жалење, тие сега стануваат сè почести).

Белешките за семинарот од мојот претходен курс беа проширени. Достапни се и преку FTP од страната isdwiki.rsuh.ru. Овие белешки содржеле табели со критични вредности кои се користеле за пресметки на таблата. Оваа година, учениците беа охрабрени да ги решат овие проблеми на компјутер и исто така да ги проверат табелите користејќи ги (нормалните) приближувања дадени во белешките.

Имаше и некои мои грешки. На пример, предоцна сфатив дека Rcmdr ви овозможува да внесувате податоци од преземените пакети, така што релативно големи примероци се обработуваа само во класи на регресивна анализа. При презентирање на непараметриски тестови, учениците рачно внесуваа податоци користејќи ги моите белешки. Друг недостаток, како што сега разбрав, беше недоволниот број домашни задачи за пишување прилично сложени програми на јазикот R.

Треба да се напомене дека неколку апсолвенти присуствуваа на моите часови, а некои преземаа материјали од предавања и семинари. Студентите на Катедрата за интелигентни системи на Рускиот државен универзитет за хуманистички науки добиваат фундаментална обука за математика и програмирање, така што употребата на околината R (наместо табеларни пресметки и статистички пакети со фиксни статистички процедури) ми се чини многу корисна.

Ако сте соочени со задача да проучувате статистика, а особено да пишувате нестандардни процедури за статистичка обработка на податоци, тогаш препорачувам да го свртите вниманието кон пакетот R.

Ајде да зборуваме малку за програмскиот јазик наречен R. Неодамна, можете да читате статии на нашите блогови за и, оние области каде што едноставно треба да имате моќен јазик при рака за работа со статистика и графикони. А R е само еден од нив. Ќе биде доста тешко за новодојденец во светот на програмирањето да верува во ова, но денес R е веќе попопуларен од SQL, активно се користи во комерцијални организации, истражувања и универзитети.

Без да навлегуваме во правилата, синтаксата и специфичните употреби, само да ги погледнеме основните книги и ресурси кои ќе ви помогнат да го научите R од нула.

Што е јазикот Р, зошто ви е потребен и како можете паметно да го користите, можете да научите од прекрасниот Руслан Купцов, кој го спроведе пред нешто помалку од една година како дел од GeekWeek-2015.

Книги

Сега кога има одреден ред во вашата глава, можете да почнете да читате литература, за среќа ја има повеќе од доволно. Да почнеме со домашните автори:


Интернет ресурси

Секој што сака да научи кој било програмски јазик мора да посети два ресурси во потрага по знаење: официјалната веб-страница на неговите развивачи и најголемата онлајн заедница. Па. Да не правиме исклучок за Р:

Но, повторно, со загриженост за оние кои сè уште немале време да учат англиски, но навистина сакаат да научат R, да споменеме неколку руски ресурси:

Во меѓувреме, да ја комплетираме сликата со мала листа на англиски, но не помалку образовни сајтови:

CRAN е всушност место каде што можете да ја преземете развојната околина R на вашиот компјутер.Покрај тоа, прирачници, примери и друго корисно читање;

Quick-R - кратко и јасно за статистиката, методите на нивна обработка и јазикот R;

Burns-Stat - за R и неговиот претходник S со огромен број примери;

R for Data Science е уште една книга од Гарет Гролемунд, преведена во формат на онлајн учебници;

Awesome R - избор на најдобриот код од официјалната веб-страница, објавена на нашиот сакан GitHub;

Мран - Р јазик од Мајкрософт;

Упатството R е уште еден ресурс со организирани информации од официјалната веб-страница.

Следната тема ме поттикна да ја напишам оваа статија: Во потрага по идеалниот пост, или загатката на Хабр. Факт е дека откако се запознав со јазикот Р, гледам крајно неисправно на сите обиди да пресметам нешто во Excel. Но, морам да признаам дека со Р се запознав дури пред една недела.

Цел: Да се ​​соберат податоци од вашиот омилен HabraHabr користејќи го јазикот R и да се спроведе, всушност, за што е создаден јазикот R, имено: статистичка анализа.

Така, откако ќе ја прочитате оваа тема ќе научите:

  • Како можете да го користите R за да извлечете податоци од веб-ресурси
  • Како да се трансформираат податоците за подоцнежна анализа
  • Кои ресурси се препорачуваат за читање за секој што сака подобро да го запознае Р?

Од читателот се очекува да биде доволно независен за да се запознае со основните конструкции на јазикот. Врските на крајот од статијата се најпогодни за ова.

Подготовка

Ќе ни требаат следниве ресурси:

По инсталацијата треба да видите нешто како ова:

Во долниот десен панел, на картичката Пакети, можете да најдете листа на инсталирани пакети. Ќе треба дополнително да го инсталираме следново:

  • Rcurl - за работа со мрежата. Секој што работел со CURL веднаш ќе ги разбере сите можности што се отвораат.
  • XML - пакет за работа со DOM дрвото на XML документ. Ни треба функционалност за наоѓање елементи по xpath
Кликнете на „Инсталирај пакети“, изберете ги оние што ви се потребни, а потоа изберете ги со ознака за да се вчитаат во тековната средина.

Добивање податоци

За да го добиете предметот DOM на документот добиен од Интернет, само следете ги овие редови:
URL<-"http://habrahabr.ru/feed/posts/habred/page10/" cookie<-"Мои сверхсекретные печеньки" html<-getURL(url, cookie=cookie) doc<-htmlParse(html)
Ве молиме обрнете внимание на колачињата што се испраќаат. Ако сакате да го повторите експериментот, ќе треба да ги замените вашите колачиња, кои вашиот прелистувач ги добива откако ќе се најавите на страницата. Следно, треба да ги добиеме податоците за кои сме заинтересирани, имено:
  • Кога беше објавен постот
  • Колку прегледи имаше?
  • Колку луѓе го додале овој запис во нивните омилени?
  • Колку кликови на +1 и -1 имаше (вкупно)
  • Колку кликови +1 имаше?
  • Колку -1
  • Тековен рејтинг
  • Број на коментари
Без да навлегувам во премногу детали, само ќе ви го дадам кодот:
објавено<-xpathSApply(doc, "//div[@class="published"]", xmlValue) pageviews<-xpathSApply(doc, "//div[@class="pageviews"]", xmlValue) favs<-xpathSApply(doc, "//div[@class="favs_count"]", xmlValue) scoredetailes<-xpathSApply(doc, "//span[@class="score"]", xmlGetAttr, "title") scores<-xpathSApply(doc, "//span[@class="score"]", xmlValue) comments<-xpathSApply(doc, "//span[@class="all"]", xmlValue) hrefs<-xpathSApply(doc, "//a[@class="post_title"]", xmlGetAttr, "href")
Овде користевме xpath пребарување за елементи и атрибути.
Следно, препорачливо е да се создаде data.frame од примените податоци - ова е аналог на табелите на базата на податоци. Ќе може да се поднесуваат барања од различни нивоа на сложеност. Понекогаш сте изненадени колку елегантно можете да го направите ова или она нешто во Р.
објави<-data.frame(hrefs, published, scoredetailes, scores, pageviews, favs, comments)
Откако ќе го генерирате data.frame, ќе треба да ги поправите примените податоци: да ги претворите линиите во бројки, да го добиете вистинскиот датум во нормален формат итн. Ние го правиме тоа вака:

Објави$коментари<-as.numeric(as.character(posts$comments)) posts$scores<-as.numeric(as.character(posts$scores)) posts$favs<-as.numeric(as.character(posts$favs)) posts$pageviews<-as.numeric(as.character(posts$pageviews)) posts$published<-sub(" декабря в ","/12/2012 ",as.character(posts$published)) posts$published<-sub(" ноября в ","/11/2012 ",posts$published) posts$published<-sub(" октября в ","/10/2012 ",posts$published) posts$published<-sub(" сентября в ","/09/2012 ",posts$published) posts$published<-sub("^ ","",posts$published) posts$publishedDate<-as.Date(posts$published, format="%d/%m/%Y %H:%M")

Исто така, корисно е да додадете дополнителни полиња кои се пресметуваат од веќе примените полиња:
поделени резултати<-sapply(strsplit(as.character(posts$scoredetailes), "\\D+", perl=TRUE),unlist) if(class(scoressplitted)=="matrix" && dim(scoressplitted)==4) { scoressplitted<-t(scoressplitted) posts$actions<-as.numeric(as.character(scoressplitted[,1])) posts$plusactions<-as.numeric(as.character(scoressplitted[,2])) posts$minusactions<-as.numeric(as.character(scoressplitted[,3])) } posts$weekDay<-format(posts$publishedDate, "%A")
Овде ги конвертиравме добро познатите пораки од формата „Вкупно 35: 29 и ↓6“ во низа податоци за тоа колку дејства се извршени, колку предности имало и колку минуси.

Во овој момент, можеме да кажеме дека сите податоци се примени и претворени во формат подготвен за анализа. Го форматирав кодот погоре како функција подготвена за употреба. На крајот од статијата можете да најдете врска до изворот.

Но, внимателниот читател веќе забележа дека на овој начин добивавме податоци за само една страница за да ги добиеме за цела серија. За да добиете податоци за цела листа на страници, беше напишана следнава функција:

Get PostsForPages<-function(pages, cookie, sleep=0) { urls<-paste("http://habrahabr.ru/feed/posts/habred/page", pages, "/", sep="") ret<-data.frame() for(url in urls) { ret<-rbind(ret, getPosts(url, cookie)) Sys.sleep(sleep) } return(ret) }
Овде ја користиме системската функција Sys.sleep за случајно да не предизвикаме хабра ефект на самиот habr :)
Оваа функција се предлага да се користи на следниов начин:
објави<-getPostsForPages(10:100, cookie,5)
Така, ги преземаме сите страници од 10 до 100 со пауза од 5 секунди. Не сме заинтересирани за страници до 10, бидејќи оценките сè уште не се видливи таму. По неколку минути чекање, сите наши податоци се во променливата објави. Препорачувам веднаш да ги зачувате за да не го нарушувате центарот секој пат! Ова е направено на овој начин:
write.csv(posts, file="posts.csv")
И ние го читаме на следниов начин:
објави<-read.csv("posts.csv")

Ура! Научивме како да добиваме статистички податоци од Хабр и да ги зачуваме локално за следната анализа!

Анализа на податоци

Овој дел ќе го оставам непокажано. Го повикувам читателот сам да си поигра со податоците и да добие свои долготрајни заклучоци. На пример, обидете се да ја анализирате зависноста на расположението на плус и минус луѓето во зависност од денот во неделата. Ќе дадам само 2 интересни заклучоци што ги донесов.
Корисниците на Habr се многу повеќе подготвени да гласаат позитивно отколку против.
Ова може да се види од следниот графикон. Забележете колку е поуниформа и пошироко „облакот“ на минуси од ширењето на плус. Корелацијата помеѓу добрите и бројот на прегледи е многу посилна отколку за лошите страни. Со други зборови: додаваме без размислување, но минус за акција!
(Се извинувам за натписите на графиконите: сè уште не сфатив како правилно да ги прикажам на руски)

Навистина има неколку класи на објави
Оваа изјава беше искористена како дадена во споменатиот пост, но сакав да се уверам во реалноста. За да го направите ова, доволно е да се пресмета просечниот удел на плус во вкупниот број на дејства, исто за минусите, а вториот да се подели со првиот. Ако сè беше хомогено, тогаш не треба да набљудуваме многу локални врвови во хистограмот, но тие се таму.


Како што можете да видите, има изразени врвови околу 0,1, 0,2 и 0,25. Го поканувам читателот самиот да ги пронајде и да ги „именува“ овие класи.
Би сакал да забележам дека R е богат со алгоритми за групирање на податоци, приближување, тестирање на хипотези итн.

Корисни ресурси

Ако навистина сакате да се нурнете во светот на Р, ви ги препорачувам следните линкови. Ве молиме споделете ги во коментар вашите интересни блогови и страници на тема Р. Има ли некој што пишува за Р на руски?

Треба да го напишете ова во терминалот.

Убавината на Р е оваа:

  1. Оваа програма е бесплатна (дистрибуирана под лиценцата GPL),
  2. Многу пакети се напишани за оваа програма за решавање на широк спектар на проблеми. Сите тие се исто така бесплатни.
  3. Програмата е многу флексибилна: големината на сите вектори и матрици може да се менуваат на барање на корисникот, податоците немаат цврста структура. Ова својство се покажува како исклучително корисно во случај на прогнозирање, кога истражувачот треба да даде прогноза за произволен период.

Последното својство е особено релевантно бидејќи другите статистички пакети (како SPSS, Eviews, Stata) претпоставуваат дека можеби сме заинтересирани само за анализа на податоци што имаат фиксна структура (на пример, сите податоци во работната датотека мора да бидат со иста периодичност со исти датуми на почеток и крај).

Сепак, R не е најпријателската програма. Додека работите со него, заборавете на глувчето - скоро сите најважни дејства во него се вршат со помош на командната линија. Меѓутоа, со цел да се направи животот малку полесен, а самата програма малку подобредојдена, постои фронтанд програма наречена RStudio. Можете да го преземете од овде. Се инсталира откако самиот R е веќе инсталиран. RStudio има многу практични алатки и убав интерфејс, сепак, анализата и прогнозирањето во него сè уште се вршат со помош на командната линија.

Ајде да се обидеме да ја погледнеме оваа прекрасна програма.

Запознавање со RStudio

Интерфејсот RStudio изгледа вака:

Во горниот десен агол во RStudio е означено името на проектот (што засега го имаме „Никој“ - односно недостасува). Ако кликнете на овој натпис и изберете „Нов проект“ (нов проект), ќе ни биде побарано да создадеме проект. За основни цели за предвидување, само изберете „Нов директориум“ (нова папка за проектот), „Празен проект“ (празен проект), а потоа внесете го името на проектот и изберете го директориумот во кој ќе го зачувате. Искористете ја вашата фантазија и обидете се сами да смислите име :).

Кога работите со еден проект, секогаш можете да пристапите до податоците, командите и скриптите складирани во него.

На левата страна од прозорецот RStudio е конзолата. Тука ќе внесеме различни команди. На пример, да го напишеме следново:

x< - rnorm (100 , 0 , 1 )

Оваа команда ќе генерира 100 случајни променливи од нормална дистрибуција со нула очекувања и единична варијанса, потоа ќе создаде вектор наречен „x“ и ќе ги запише добиените 100 вредности во него. Симбол "<-» эквивалентен символу «=» и показывает какое значение присвоить нашей переменной, стоящей слева. Иногда вместо него удобней использовать символ «->“, иако нашата променлива во овој случај треба да биде десно. На пример, следниов код ќе создаде објект „y“ кој е апсолутно идентичен со објектот „x“:

x -> y

Овие вектори сега се појавуваат во горниот десен дел на екранот, под табулаторот, кој го имам насловен „Животна средина“:

Промени во табулаторот „Животна средина“.

Овој дел од екранот ќе ги прикаже сите објекти што ги зачувуваме за време на сесијата. На пример, ако создадеме матрица како оваа:

\(A = \почеток (pmatrix) 1 & 1 \\ 0 & 1 \end (pmatrix) \)

со оваа команда:

А< - matrix (c (1 , 0 , 1 , 1 ) , 2 , 2 )

тогаш ќе се појави во табулаторот „Животна средина“:

Секоја функција што ја користиме бара од нас да доделиме некои вредности на одредени параметри. Во функција матрица ()постојат следниве параметри:

  • податоци – вектор со податоци што треба да се запишат во матрицата,
  • nrow - број на редови во матрицата,
  • ncol – број на колони во матрицата,
  • byrow - логички параметар. Ако „TRUE“ (точно), тогаш матрицата ќе се пополни во редови (од лево кон десно, ред по ред). Стандардно, овој параметар е поставен на FALSE.
  • dimnames - лист со имиња на редови и колони.

Некои од овие параметри имаат стандардни вредности (на пример, byrow = НЕТОЧНО), додека други може да бидат испуштени (на пример, димними).

Еден од триковите на „Р“ е дека секоја функција (на пример, нашата матрица ()) може да се адресира со директно поставување на вредностите:

Друга опција е да кликнете на името на објектот во табулаторот „Животна средина“.

Матрица

каде матрица е името на функцијата за која сме заинтересирани. Во овој случај, RStudio ќе го отвори панелот „Помош“ специјално за вас со опис:

Помош за функцијата може да најдете и со внесување на името на функцијата во прозорецот „пребарување“ (икона со објектив) во табулаторот „Помош“.

Ако не се сеќавате точно како да го напишете името на функцијата или кои параметри се користат во неа, само почнете да го пишувате неговото име во конзолата и притиснете го копчето „Tab“:

Во прилог на сето ова, можете да пишувате скрипти во RStudio. Можеби ќе ви требаат ако треба да напишете програма или да повикате низа функции. Скриптите се креираат со помош на копчето со знак плус во горниот лев агол (треба да изберете „R Script“ во паѓачкото мени). Во прозорецот што се отвора после ова, можете да напишете какви било функции и коментари. На пример, ако сакаме да нацртаме линиски график над серијата x, можеме да го направиме вака:

парцела (x)

линии (x)

Првата функција гради едноставна шема на расејување, а втората функција додава линии на врвот на точките што ги поврзуваат точките во серија. Ако ги изберете овие две команди и притиснете „Ctrl+Enter“, тие ќе бидат извршени, што ќе предизвика RStudio да го отвори табот „Plot“ во долниот десен агол и да ја прикаже нацртаната шема во неа.

Ако во иднина сè уште ни требаат сите напишани команди, тогаш оваа скрипта може да се зачува (флопи диск во горниот лев агол).

Во случај да треба да се повикате на команда што веќе сте ја напишале некогаш во минатото, има табот „Историја“ во горниот десен агол на екранот. Во него можете да ја пронајдете и изберете секоја команда што ве интересира и да кликнете двапати за да ја залепите во конзолата. Во самата конзола, можете да пристапите до претходните команди користејќи ги копчињата нагоре и надолу на вашата тастатура. Комбинацијата на копчиња „Ctrl+Up“ ви овозможува да прикажете список со сите неодамнешни команди во конзолата.

Општо земено, RStudio има многу корисни кратенки на тастатурата кои многу ја олеснуваат работата со програмата. Можете да прочитате повеќе за нив.

Како што споменав претходно, има многу пакети за Р. Сите тие се наоѓаат на серверот CRAN и за да инсталирате некој од нив треба да го знаете неговото име. Инсталирањето и ажурирањето на пакетите се врши со помош на табулаторот „Пакети“. Со одење до него и кликнување на копчето „Инсталирај“, ќе видиме нешто како следново мени:

Ајде да напишеме во прозорецот што се отвора: прогнозае пакет напишан од Rob J. Hyndman кој содржи еден куп корисни функции за нас. Кликнете на копчето „Инсталирај“, по што ќе се инсталира пакетот „прогноза“.

Алтернативно, можеме да инсталираме кој било пакет, знаејќи го неговото име, користејќи ја командата во конзолата:

инсталирај. пакети („мазни“)

под услов да е, се разбира, во складиштето CRAN. мазнае пакет во кој развивам и одржувам функции.

Некои пакети се достапни само во изворниот код на сајтови како github.com и бараат тие прво да бидат изградени. За да изградите пакети под Windows, можеби ќе ви треба програмата Rtools.

За да користите некој од инсталираните пакети, треба да го овозможите. За да го направите ова, треба да го најдете во списокот и да го штиклирате или да ја користите командата во конзолата:

библиотека (прогноза)

Во Windows може да се појави еден непријатен проблем: некои пакети лесно се преземаат и составуваат, но не се инсталираат на кој било начин. R во овој случај пишува нешто како: „Предупредување: не може да се премести привремената инсталација...“. Сè што треба да направите во овој случај е да ја додадете папката со R на исклучоците во вашиот антивирус (или да ја исклучите додека инсталирате пакети).

По преземањето на пакетот, сите функции вклучени во него ќе ни бидат достапни. На пример, функцијата tsdisplay (), кој може да се користи вака:

tsdisplay (x)

Таа ќе ни изгради три графикони, за кои ќе разговараме во поглавјето „Прилог со алатки за предвидувачи“.

Покрај пакетот прогнозаПакетот го користам доста често за различни примери Mcomp. Содржи серии на податоци од базата на податоци M-Competition. Затоа, ви препорачувам да го инсталирате и вие.

Многу често ќе ни требаат не само збирки на податоци, туку податоци од класата „ts“ (временска серија). За да направите временска серија од која било променлива, треба да ја извршите следнава команда:

x< - ts (x , start = c (1984 , 1 ) , frequency = 12 )

Еве го параметарот почетокни овозможува да го одредиме датумот од кој започнува нашата временска серија и фреквенцијапоставете ја фреквенцијата на податоците. Бројот 12 во нашиот пример покажува дека се работи со месечни податоци. Како резултат на извршувањето на оваа команда, го трансформираме нашиот вектор „x“ во временска серија на месечни податоци почнувајќи од јануари 1984 година.

Секое решение R што работи во R Services (во база на податоци) мора да ги користи пакетите инсталирани во стандардната R библиотека. Вообичаено, R решенијата ќе се поврзат со библиотеките на корисникот со наведување на патеката на датотеката во R кодот, но тоа не се препорачува за производствена средина.

Затоа, задача на DBA или друг администратор на серверот е да се осигура дека сите потребни пакети се инсталирани на примерот на SQL Server. Ако имате административни права на компјутерот што е домаќин на примерот на SQL Server, можете да обезбедите административни информации за тоа како да инсталирате R пакети и да обезбедите пристап до безбедно складиште на пакети каде што можете да ги добиете пакетите што им се потребни на вашите корисници. Овој дел дава такви информации.

Кога инсталирате R Services (во база на податоци), стандардно е R основнипакети како што се статистика и Utils се инсталирани заедно со RevoScaleRпакет кој поддржува врски со SQL Server.

Ако ви треба дополнителен пакет од CRAN или друго складиште, мора да го преземете пакетот и да го инсталирате на вашата работна станица.

Ако треба да се изврши нов пакет во контекст на серверот, администраторот мора да го инсталира на серверот.

Постојат неколку извори на R пакети, а најпознати се CRAN и Bioconductor. Официјалната веб-страница на јазикот R (https://www.r-project.org/) наведува многу од овие ресурси. Покрај тоа, многу пакети се објавени на GitHub, каде што може да се добие изворниот код. Сепак, може да ви бидат обезбедени и R пакети развиени во куќата.

Без оглед на изворот, инсталационите пакети мора да се обезбедат како ZIP архива. Исто така, за да го користите пакетот од R Services (во базата на податоци), не заборавајте да ја добиете ZIP датотеката во бинарен формат на Windows. (Некои пакети можеби не го поддржуваат овој формат.) За повеќе информации за содржината на форматот на zip-датотеката и како да креирате R пакет, го препорачуваме ова упатство, кое може да се преземе во PDF формат од јазолот на проектот R: Freidrich Leisch: Creating R Packages.

Вообичаено, R пакетите може лесно да се инсталираат од командната линија без да се преземат однапред, се додека компјутерот има пристап до Интернет. Ова обично не е случај со серверите кои користат SQL Server. Така, да го инсталирате пакетот R на компјутер што работи Неимате пристап до Интернет, мора однапред да го преземете пакетот во правилен ZIP формат и да ги копирате ZIP-датотеките во папка достапна на вашиот компјутер.

Следниве делови опишуваат два начини за инсталирање пакети офлајн:

    Опишува како да се користи пакетот R miniCRANза да креирате офлајн складирање. Ова е веројатно најефикасниот метод ако треба да инсталирате пакети на повеќе сервери и да управувате со складирањето од една локација.

    Обезбедува упатства за инсталирање пакети офлајн со рачно копирање на ZIP-датотеките.

За да инсталирате нов R пакет на компјутер со SQL Server 2016, мора да имате администраторски права на тој компјутер.

Ако ги немате овие права, контактирајте со вашиот администратор и обезбедете информации за пакетот што ви треба.

Ако инсталирате нов R пакет на компјутер што користи R работна станица и работи Неинсталиран на примерот на SQL Server, сè уште ви требаат администраторски права на компјутерот за да го инсталирате пакетот. Откако ќе се инсталира пакетот, можете да го извршите локално.

Стандардна локација на библиотеката R за услугите R

Ако сте инсталирале R Services (во базата на податоци) на стандардниот примерок, библиотеките на пакетите R што ги користи инстанцата се наоѓаат во папката со примери на SQL Server. На пример:

  • Стандардна инстанца MSSQLSERVER C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\библиотека
  • Именуван пример MyNamedInstance C:\Program Files\Microsoft SQL Server\MSSQL13.MyNamedInstance\R_SERVICES\biblioteka

Можете да ја извршите следнава изјава за да ги проверите стандардните библиотеки за тековниот примерок на R.

ИЗВРШИ sp_execute_external_script @language = N "R" , @script = N „OutputDataSet<- data.frame(.libPaths());" СО РЕЗУЛТАТИ СОСТАВКИ (( VARCHAR (MAX ) НЕ NULL ));ОДИ

За повеќе информации, видете.

SQL Server vNext обезбедува нови можности за инсталирање и управување со R пакети кои даваат поголема слобода на DBA да манипулира со податоците и да контролира како се користат пакетот и инсталаторот. За повеќе информации, видете.

Кога користите SQL Server 2106 R услуги, новите функции на пакетот за управување не се достапни во моментов. Додека ги имате овие опции за да одредите кои пакети се инсталирани на вашиот SQL Server компјутер, користете една од следниве опции:

  • Стандардно гледајте ја библиотеката, ако имате дозволи за папката.
  • Извршете команда од командата R за да ги наведете пакетите во локацијата на библиотеката R_SERVICES
  • На пример, користете зачувана процедура како што е прикажано подолу:

    ИЗВРШИ sp_execute_external_script @language =N "R" ,@script = N "str(OutputDataSet); матрица на пакети<- installed.packages(); NameOnly <- packagematrix[,1]; OutputDataSet <- as.data.frame(NameOnly);" ,@input_data_1 = N "ИЗБЕРЕТЕ 1 како колона" СО ПОСТАВКИ НА РЕЗУЛТАТИ ((Име на пакетот nvarchar (250 )))