31.08.2023

Язык r что. Хочу всё знать: язык R. Пример работы с пакетом rym


Что такое R пакет?

R пакет является расширением, созданным для решения конкретной задачи на . Пакеты без которых трудно было бы представить работу в R, включены в базовую сборку и автоматически доступны после установки R на Ваш компьютер (так называемое ядро R). Например, пакет stat позволяет проводить статистические тесты, а благодаря пакету graphics возможно построение графиков в R. Однако большинство пакетов имеют узкоспециализированное применение и для работы с ними требуется "расширить" свою библиотеку R, установив необходимый для работы пакет на свой компьютер.

С технической точки зрения, R пакет - это совокупность , данных и документации к ним, собранных в единое целое по стандартной схеме. Каждый пакет должен быть протестирован на предмет ошибок и соответствий стандартам официального архива R пакетов (CRAN). В случае обнаружения несоответствий, пакет не будет принят в CRAN. Благодаря такому подходу принципы работы с любым R пакетом одинаковы, чем обуславливается простота и удобство их использования. К осени 2018 года число пакетов в CRAN превысило !!!

Как установить и загрузить пакет в R?

Установить R пакет можно несколькими способами. Начнем с самого распространенного случая: установка пакета из CRAN. Для этого просто введите функцию install.packages в консоль, а аргументах которой напишите название искомого пакета (для примера возьмем пакет ggplot2 ):

install.packages("ggplot2")

В открывшемся окне со списком стран выберите любое зеркало для скачивания. Процесс установки пакета в Вашу библиотеку начнется автоматически. Иногда Вы можете заметить, что вместо одного пакета в Вашу библиотеку загружается несколько. Происходит это из-за того, что зачастую пакет использует функции или данные из других пакетов без которых установленный R пакет не сможет полноценно работать. Таким образом, пакет с зависимостями (dependencies ) "подтягивает" другие пакеты и устанавливается в библиотеку вместе с ними.

После установки пакета необходимо загрузить его в Вашу текущую сессию, используя функцию library() :

library("ggplot2")

Если это не сделать, функции установленого пакета работать не будут. Объясняется это тем, что при запуске R в него автоматически загружаются только базовые пакеты (о которых мы писали выше), остальные же необходимо загружать вручную.

Установка R пакета через GitHub

Однако не все R пакеты доступны в CRAN. Многие исследователи коллективно работают над R пакетами на платформе GitHub , где они делятся идеями, оповещают о найденных багах, исправляют их и уведомляют об этом остальных пользователей в онлайн режиме. Чаще всего на GitHub публикуются пакеты, которые все еще находятся в стадии разработки/тестирования, поэтому стабильность их работы не гарантирована. Для того, чтобы скачать R пакет с GitHub, необходимо установить сначала пакет "devtools" , загрузить его в среду R и использовать функцию install_github() , где указываем в аргументах имя главного разработчика пакета и через слэш называние пакета:

install.packages("devtools") library("devtools") install_github("Author/PackageName")

Устанавливаем R пакет вручную (архив tar.gz или zip)

Некоторые пакеты находятся на других платформах (например ResearchGate), на сайтах исследовательских групп или личном вебсайте разработчика, откуда можно скачать R пакет на компьютер в виде архива с расширением.tar.gz или.zip. В этом случае, следует загружать пакет вручную, воспользовавшись все той же командой install.packages() . Однако в первом аргументе функции надо указать уже не имя пакета, а адрес скачанного архива, а также ввести дополнительные аргументы:

install.packages("Desktop/PackageName.tar.gz", repos = NULL, type="source")

Чтение документации - ключ к работе с R пакетами!

Документация является важнейшим элементом взаимодействия пользователя с Rпакетом. Она может быть представлена в виде поста на вебсайте, обучающего видео, научной публикации или справочного пособия. Первые три варианта позволяют наглядно продемонстрировать идею и возможности пакета. Именно с них я рекомендую начать знакомство с неизвестным для Вас пакетом (если они доступны в интернете).

Справочное пособие (Reference Manual ), напротив, является техническим описанием R пакета, его функций и данных. В отличие от других видов документации справочное пособие есть у любого пакета доступного в CRAN. Оно написано в определенном формате и синхронизировано с кодом функций. В результате, справочную информацию можно искать при помощи справочных команд в среде R. Например, чтобы узнать описание установленного пакета ggplot2 , просто вводим имя пакета, поставив перед ним знак вопроса:

?ggplot2

Перед нами появилась вся доступная информация о пакете ggplot2 . Таким же способом можно посмотреть документацию конкретной функции: поставьте после имени пакета двойное двоеточие и имя искомой функции (допустим функция stat_ellipse) :

Все тоже самое можно найти в PDF формате на официальном сайте CRAN (например, справочное пособие пакета ggplot2). На первой странице находится описание R пакета, затем - список его функций и таблиц данных, далее - подробное техническое описание каждой из них в алфавитном порядке.

Заключение

После ознакомления с документацией, можно смело пользоваться R пакетом в своих целях. Здесь уже универсальных инструкций дать не могу, т.к. у всех нас задачи разные, и соответсвенно пакетами мы пользуемся разными. Поэтому если возникли трудности или вопросы, пишите их в комментариях, с радостью отвечу.

А в следующей статье мы будем собирать R пакет своими руками!

Programming on R. Level 1. Basics

Язык R – самый популярный в мире инструмент статистического анализа данных. Он содержит широчайший спектр возможностей для анализа данных, их визуализации, а также создания документов и веб-приложений. Хотите освоить этот мощный язык под руководством опытного наставника? Приглашаем вас на курс «Программирование на языке R. Уровень 1. Базовые знания» .

Этот курс предназначен для широкого круга специалистов, которым необходимо искать закономерности в большом количестве данных, визуализировать их и строить статистически корректные выводы: социологов, менеджеров клинических испытаний/фармакологов, исследователей (астрономия, физика, биология, генетика, медицина и т.д.), IT-аналитиков, бизнес-аналитиков, финансовых аналитиков, маркетологов. Курс также понравится специалистам, которым не подходит функционал (или платность) / .

На занятиях вы получите основные навыки анализа и визуализации данных в среде R . Большая часть времени отводится практическим заданиям и работе с реальными наборами данных. Вы изучите все новые инструменты работы с данными и научитесь их применять в своей работе.

После курса выдается удостоверение о повышении квалификации центра.

Всем привет, если вы занимаетесь интернет маркетингом наверняка вам ежедневно приходится сталкиваться со множеством рекламных сервисов и как минимум одной платформой веб аналитики, если вам требуется хотя бы раз в месяц, или может быть даже раз в неделю руками сводить данные о расходах, и прочую статистическую информацию из всех источников то это чревато не только большими временными затратами, но и вероятность ошибки при консолидации данных из множества источников в ручном режиме достаточно велика. В этой статье я подскажу готовые расширения (пакеты) для языка R, с помощью которых вы можете автоматизировать процесс сбора данных из большинства популярных рекламных систем и платформ веб аналитики.

Солержание

  1. Какой софт нам потребуется
  2. CRAN или GitHub
    • Возможности пакета rvkstat
    • Пример кода для работы с пакетом rvkstat
  3. rmytarget - загрузка данных из API MyTarget
    • Возможности пакета rmytarget
    • Пример кода для работы с rmytarget
    • Основные функции пакета rym
    • Пример работы с пакетом rym
  4. Заключение

Какой софт нам потребуется

Т.к. в данной статье мы говорим про язык R, то вам потребуется сам и среда разработки RStudio .


И язык R, и RStudio являются бесплатным, свободно распространяемым программным обеспечением, поэтому вы свободно можете скачивать их из официальных сайтов.

Как начать работу с R пакетами

Ничего сложного для начала работы с R пакетами нет, осуществляется это следующим образом:

  1. Установка пакета, как правило с помощью базовой команды install.packages ;
  2. Подключение пакета, каждый раз при старте нового сеанса работы с R, данная оперция может быть выполнена с помощью команды library или require .

Разница между library и require заключается только в том, что library выдаст ошибку в случае попытки подключения пакета, который у вас не установлен, а require в этом же случае просто покажет предупреждение, при этом выполнение скрипта будет продолжено.


Для установки приведённых в статье пакетов с GitHub вам предварительно необходимо установить пакет devtools, для этого выполните команду install.packages("devtools") .

CRAN или GitHub

В ходе чтения данной статьи у вас возможно возникнет вопрос из какого репозитория лучше устанавливать тот, или иной пакет, на самом деле на GitHub как правило лежат наиболее актуальные dev версии пакетов от разработчиков, т.е. в них есть все новые функции которых возможно нет в версии пакета которая доступна на CRAN, но соответственно dev версия может быть на момент загрузки не достаточно протестирована и содержать ошибки.


Версия на CRAN перед загрузкой тщательно проверяется командой специалистов, и должна соответствовать всем требованиям политики данного репозитория , в случае загрузки пакета с CRAN вы можете быть уверены, что он никак не навредит вашим данным, не будет создать без вашего разрешения какие либо непонятные файлы на вашем ПК и т.д.

Какие навыки нужны для работы с R пакетами

На самом деле от вас потребуется только понимание предметной области интернет маркетинга, никаких навыков программирования в данном случае не требуется, т.к. речь буде идти о готовых пакетах, используя функции из которых вы сможете автоматизировать руинную часть своей работы.


В статье не будет подробного описание по работе с каждой функцией рассматриваемых пакетов, т.к. такая статья была бы слишком длинной, но я опишу возможности каждого пакета, дам список основных функций которые вам потребуется, а так же дам ссылку на официальную документацию, с помощью которой вы уже сможете наиболее подробно разобраться со всеми доступными в том, или ином пакете функциями. К тому же к каждому пакету я приведу небольшой пример кода, что бы вам был более понятен синтаксис.

ryandexdirect - загрузка данных из Яндекс.Директ

Установка пакета с CRAN: install.packages("ryandexdirect")
Установка пакета с GitHub: devtools::install_github("selesnow/ryandexdirect")
Официальная документация: ссылка


Данный пакет предназначен для работы с API одной из наиболее популярных рекламных площадок в СНГ - Яндекс.Директ.

Возможности пакета ryandexdirect

  1. Авторизация в API Яндекса;
  2. Загрузка списка рекламных кампаний, ключевых слов, объявлений;
  3. Загрузка статистических данных из аккаунтов Яндекс.Директ с помощью сервиса Reports .
  4. Остановка и возобновление показов объявлений на уровне рекламных кампаний, ключевых слов и объявлений.
  5. Запрос остатка средств и других параметров общего счёта.
  6. Загрузка справочной информации (курсы валют, географический справочник и т.д.)

Основные функции

Основные функции доступные в ryandexdirect, которые могут вам понадобиться для работы с API Яндекс.Директ:

  • yadirAuth - Авторизация в API;
  • yadirGetAds , yadirGetCampaignList , yadirGetKeyWords - Загрузка списка объявлений, рекламных кампаний, ключевых слов;
  • yadirStartAds , yadirStartCampaigns , yadirStartKeyWords -

Пример кода для загрузки статистики с помощью пакета ryandexdirect

library(ryandexdirect) stat <- yadirGetReport(ReportType = "ACCOUNT_PERFORMANCE_REPORT", DateRangeType = "CUSTOM_DATE", DateFrom = "2018-01-01", DateTo = "2018-05-10", FieldNames = c("AdNetworkType", "Impressions", "Clicks", "Cost"), FilterList = c("CampaignId IN 123456 ,987654","Clicks GREATER_THAN 100"), IncludeVAT = "YES", IncludeDiscount = "NO", Login = "ваш логин", TokenPath = "C:/token_yandex")

RAdwords - загрузка данных из Google Ads (ex Google AdWords)

Установка пакета с CRAN: install.packages("RAdwords")
Установка пакета с GitHub: devtools::install_github("jburkhardt/RAdwords")
Официальная документация: ссылка

Возможности пакета RAdwords

Основные функции пакета RAdwords

На самом деле пакет в принципе содержит не особо много функций, но я за всё время пользовался всего тремя:

  • doAuth - Авторизация;
  • statement - Формирование тела запроса к API;

Пример работы с пакетом RAdwords

library(RAdwords) # запрос токена adw_token <- doAyth() # формирование запроса body <- statement(select=c("AccountDescriptiveName", "ExternalCustomerId", "AccountCurrencyCode", "AdNetworkType1", "RegionCriteriaId", "CountryCriteriaId", "CityCriteriaId", "Device", "Month", "Year", "Impressions", "Clicks", "Interactions", "VideoViews", "Cost", "Conversions"), report="GEO_PERFORMANCE_REPORT", start="2018-09-01", end="2018-09-20") my_data <- getData(clientCustomerId = "000-000-0000", google_auth = adw_token , statement = body, transformation = T)


Список доступных в API Google Ads отчётов, и полей вы можете найти по ссылке в официальной справке.

adwordsR - более новый и функциональный пакет для загрузка=и данных из Google Ads (ex Google AdWords)

Установка пакета с CRAN: install.packages("adwordsR")
Установка пакета с GitHub: devtools::install_github("cran/adwordsR")


Пакет adwordsR по смыслу схож с RAdwords, но он более новый, и имеет гораздо больший набор функций.

Возможности пакета adwordsR

Помимо описанных выше возможностей пакета RAdwords, adwordsR даёт вам широкие возможности по работе с TargetingIdeaService, службе с помощью которой можно получать варианты таргетинга прямо из инструмента или платформы, что помогает автоматизировать оптимизацию аккаунта.

Основные функции пакета adwordsR

  • generateAdwordsToken - Запрос токена для работы с API Google Ads;
  • loadAdwordsToken - Загрузка запрошенного, и сохранённого ранее токена;
  • getReportData - Загрузка статистики из аккаунта Google Ads.

Пример работы с пакетом adwordsR

library(adwordsR) # Запрос токена adw_token <- generateAdwordsToken(saveNewToken = TRUE, addGitignore = FALSE) # Загрузка ранее сохранённого токена adw_token <- loadAdwordsToken() # Запрос данных AdWordsData <- getReportData(reportType = "CAMPAIGN_PERFORMANCE_REPORT", startDate = "2018-08-01", endDate = "2018-08-15", clientCustomerId = "000-000-0000", credentials = adw_token, attributes = "CampaignName,CampaignStatus", segment = "Date,AdNetworkType1", metrics = "AverageCost,Clicks,Conversions", includeZeroImpressions = TRUE, useRequestedHeaders = FALSE)

rfacebookstat - загрузка данных из рекламных кабинетов Facebook

Установка пакета с CRAN: install.packages("rfacebookstat")
Установка пакета с GitHub: devtools::install_github("selesnow/rfacebookstat")
Официальная документация: ссылка

Возможности пакета rfacebookstat

  1. Авторизация в API Facebook
  2. Загрузка списка доступных вам бизнес-менеджеров;
  3. Загрузка списка рекламных кампаний, групп объявлений, объявлений.
  4. Загрузка статистики на уровне рекламного аккаунта, рекламных кампаний, групп объявлений и объявлений.
  5. Загрузка списка пользователей у которых есть доступ к рекламному аккаунту.
  6. Управление доступами к рекламным аккаунтам.

Основные функции пакета rfacebookstat

Пример кода для работы с rfacebookstat

library(rfacebookstat) token <- fbGetToken(app_id = 00000000000000) fb_data <- fbGetMarketingStat(accounts_id = "act_00000000000000", level = "campaign", fields = "campaign_name,actions", action_breakdowns = "action_link_click_destination", date_start = "2017-11-01", date_stop = "2017-11-20", interval = "day", access_token = token)

rvkstat - загрузка данных из API Вконтакте

Установка пакета с GitHub: devtools::install_github("selesnow/rvkstat")
Официальная документация: ссылка


Достаточно мощный и многофункциольный пакет для работы с API социальной сети Вконтакте.

Возможности пакета rvkstat

  1. Авторизация в API Вконтакте;
  2. Загрузка данных из рекламных кабинетов Вконтакте;
  3. Загрузка справочной информации из Вконтакте;
  4. Загрузка некоторой информации о пользователе Вконтакте;
  5. Загрузка статистики из рекламного кабинета Вконтакте;
  6. Загрузка статистики о посещениях сообществ Вконтакте.

Основные функции пакета rvkstat

Пакет rvkstat на момент написания статьи содержит более 30 функции, вот наиболее полезные из них:

  • vkAuth - Авторизация;
  • vkGetAdStatistics - Загрузка статистики из рекламного кабинета;
  • vkGetAdCampaigns , vkGetAds - Загрузка списка рекламных кампаний и объявлений;
  • vkGetGroupStat - Загрузка статистики о посещении групп и сообществ Вконтакте.

Пример кода для работы с пакетом rvkstat

Возможности пакета rmytarget

  1. Авторизация в API MyTarget по схеме Code Grant;
  2. Загрузка списка рекламных кампаний, объявлений.
  3. Загрузка статистики на уровне рекламных кампаний и объявлений.

Основные функции пакета rmytarget

  • myTarAuth - Авторизация;
  • myTarGetAdList , myTarGetCampaignList - Загрузка списка объявлений и рекламных кампаний;
  • myTarGetStats - Загрузка статистики по объявлениям и рекламным кампаниям.

Пример кода для работы с rmytarget

library(rmytarget) # запрос списка объявлений Ads <- myTarGetAdList(login = "ваш логин") # запрос статистики по объявлениям a_stat <- myTarGetStats(date_from = "2016-08-01", date_to = "2016-08-10", object_type = "banners", object_id = Ads$id, stat_type = "day", login = "ваш логин")

rym - загрузка данных из API Яндекс.Метрики

Установка пакета с CRAN: install.packages("rym")
Установка пакета с GitHub: devtools::install_github("selesnow/rym")
Официальная документация: ссылка

Основные возможности пакета rym

Пакет rym позволяет вам работать со всеми доступными в Яндекс.Метрики API интерфейсами:

  1. Авторизация по протоколу oAuth2;
  2. Работа с API управления ;
  3. Работа с API отчётов ;
  4. Работа с API совместимым с Core API Google Analytics v3 ;
  5. Работа с Logs API .

Основные функции пакета rym

  • rym_auth - Авторизаця;
  • rym_get_counters - Загрузка списка счётчиков Яндекс.Метрики;
  • rym_get_ga - Загрузка данных из API совместимым с Core API Google Analytics;

Пример работы с пакетом rym

reporting.api.stat <- rym_get_data(counters = "00000000,111111111", date.from = "2018-08-01", date.to = "yesterday", dimensions = "ym:s:date,ym:s:lastTrafficSource", metrics = "ym:s:visits,ym:s:pageviews,ym:s:users", filters = "ym:s:trafficSourceName=="Переходы из поисковых систем" AND ym:s:isNewUser=="Yes"", sort = "-ym:s:date", accuracy = "full", login = "ваш логин", token.path = "metrica_token", lang = "ru")

Заключение

Итак с помощью приведённых в этой статье пакетов вы вполне можете автоматизировать сбор данных из таких источников как Яндекс.Директ, Google Ads, Facebook, Вконтакте, MyTarget и Яндекс.Метрика. Конечно это далеко не исчерпывающий список сервисов которые используются интрент маркетологами, но уместить все инструменты в одну статью достаточно проблематично, поэтому если данная статья получит положительные отзывы я напишу продолжение.



Если у вас в арсенале так же есть интересные пакеты, которые могут помочь в автоматизации сбора данных из рекламных источников или веб-аналитических платформ, оставляйте их в комментариях к этой статье.

Набирать это нужно в терминале.

Прелесть R заключается в следующем:

  1. Эта программа бесплатна (распространяется под лицензией GPL),
  2. Под эту программу написано много пакетов для решения большого спектра задач. Все они так же бесплатны.
  3. Программа очень гибкая: размеры любых векторов и матриц могут изменяться по желанию пользователя, данные не имеют жёсткую структуру. Это свойство оказывается крайне полезным в случае с прогнозированием, когда исследователю нужно дать прогноз на произвольный срок.

Последнее свойство особенно актуально, так как другие статистические пакеты (такие как SPSS, Eviews, Stata) предполагают, что нас может интересовать только анализ данных, которые имеют фиксированную структуру (например, все данные в рабочем файле должны быть одинаковой периодичности с одинаковыми датами начала и конца).

Впрочем, R - это не самая дружелюбная программа. На время работы с ней забудьте про мышку - практически все самые важные действия в ней выполняются с использованием командной строки. Однако для того чтобы сделать жизнь чуть легче, а саму программу чуть более приветливой, есть программа-frontend (внешний интерфейс) под названием RStudio. Скачать её можно отсюда . Устанавливается она после того, как уже установлен сам R. В RStudio много удобных инструментов и приятный интерфейс, тем не менее анализ и прогнозирование в нём всё так же осуществляются с использованием командной строки.

Давайте попробуем взглянуть на эту замечательную программу.

Знакомство с RStudio

Интерфейс RStudio выглядит следующим образом:

В правом верхнем углу в RStudio указано имя проекта (которое пока что у нас «None» — то есть отсутствует). Если нажать на эту надпись и выбрать «New Project» (новый проект), то нам предложат создать проект. Для базовых целей прогнозирования достаточно выбрать «New Directory» (новая папка для проекта), «Empty Project» (пустой проект), а затем - ввести название проекта и выбрать директорию, в которой его сохранить. Включите воображение и попробуйте придумать название сами:).

Работая с одним проектом, вы всегда сможете обратиться к сохранённым в нём данным, командам и скриптам.

В левой части окна RStudio располагается консоль. Именно в неё мы и будем вписывать различные команды. Например, напишем следующую:

x < - rnorm (100 , 0 , 1 )

Эта команда сгенерирует 100 случайных величин из нормального распределения с нулевым математическим ожиданием и единичной дисперсией, после чего создаст вектор под названием «x» и запишет полученные 100 величин в него. Символ «<-» эквивалентен символу «=» и показывает какое значение присвоить нашей переменной, стоящей слева. Иногда вместо него удобней использовать символ «->», правда наша переменная в таком случае должна стоять справа. Например, следующий код создаст объект «y» абсолютно идентичный объекту «x»:

x -> y

Эти векторы теперь появились в правой верхней части экрана, под закладкой, которая у меня озаглавлена «Environment»:

Изменения в закладке «Environment»

В этой части экрана будут отображаться все объекты, которые мы сохраняем во время сессии. Например, если мы создадим такую вот матрицу:

\(A = \begin{pmatrix} 1 & 1 \\ 0 & 1 \end{pmatrix} \)

такой вот командой:

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

то она появится в закладке «Environment»:

Любая функция, которую мы используем, требует, чтобы мы задали некоторые значения определённым параметрам. В функции matrix () есть следующие параметры:

  • data – вектор с данными, который должен быть записан в матрицу,
  • nrow – число строк в матрице,
  • ncol – число столбцов в матрице,
  • byrow - логический параметр. Если «TRUE» (истина), то наполнение матрицы будет осуществляться по строкам (слева направо, строка за строкой). По умолчанию этот параметр имеет значение «FALSE» (ложь),
  • dimnames - лист с именами строк и столбцов.

Некоторые из этих параметров имеют значения по умолчанию (например, byrow = FALSE ), в то время как другие могут быть опущены (например, dimnames ).

Одна из фишек «R» заключается в том, что к любой функции (например, к нашей matrix () ) можно обратиться, задавая значения на прямую:

Другой вариант - это нажать на имя объекта в закладке «Environment».

Matrix

где matrix - это название интересующей нас функции. RStudio специально для вас в таком случае откроет панель «Help» с описанием:

Найти помощь по функции можно так же, набрав название функции в окне «поиск» (иконка с линзой) в закладке «Help».

В случае, если вы не помните точно, как пишется название функции или какие в ней используются параметры, достаточно начать писать её название в консоли и нажать кнопку «Tab»:

Помимо всего этого в RStudio можно писать скрипты. Они могут понадобиться вам в том случае, если вам нужно написать программу либо вызвать последовательность функций. Создаются скрипты используя кнопку с плюсиком в верхнем левом углу (в выпадающем меню нужно выбрать «R Script»). В открывшемся после этого окне вы сможете писать любые функции и комментарии. Например, если мы хотим построить линейный график по ряду x, это можно сделать следующим образом:

plot (x )

lines (x )

Первая функция строит простейший точечный график, а вторая функция добавляет поверх точек линии, соединяющие точки последовательно. Если выделить эти две команды и нажать «Ctrl+Enter», то они будут выполнены, в результате чего RStudio откроет закладку «Plot» в правом нижнем углу и отобразит в ней построенный график.

Если все набранные команды нам ещё понадобятся в будущем, то этот скрипт можно сохранить (дискетка в левом верхнем углу).

В случае, если вам нужно обратиться к команде, которую вы уже набирали когда-то в прошлом, в правой верхней части экрана есть закладка «History». В ней можно найти и выбрать любую интересующую вас команду и двойным нажатием вставить её в консоль. В самой консоли можно обращаться к предыдущим командам, используя кнопки «Up» (вверх) и «Down» (вниз) на клавиатуре. Сочетание клавиш «Ctrl+Up» позволяет в консоли показать список всех последних команд.

Вообще в RStudio много всяких полезных сочетаний клавиш, которые значительно облегчают работу с программой. Подробней о них можно почитать .

Как я уже упомянул ранее для R существует множество пакетов. Все они расположены на сервере CRAN и для установки любого из них нужно знать его название. Установка и обновление пакетов осуществляется с помощью закладки «Packages». Перейдя на неё и нажав на кнопку «Install», мы увидим примерно следующее меню:

Наберём в открывшемся окне: forecast — это пакет, написанный Робом Хайндманом (Rob J. Hyndman), содержащий кучу полезных для нас функций. Нажмём кнопку «Install» (установить), после чего пакет «forecast» будет установлен.

Как вариант мы можем установить любой пакет, зная его название, с помощью команды в консоли:

install . packages ("smooth" )

при условии, что он, конечно же, есть в репозитории CRAN. smooth — это пакет , функции в котором разрабатываю и поддерживаю я.

Некоторые пакеты доступны только в исходных кодах на сайтах типа github.com и требуют, чтобы их перед этим собрали. Для сборки пакетов под Windows может понадобиться программа Rtools .

Чтобы использовать какой-либо из установленных пакетов, его нужно подключить. Для этого его надо найти в списке и отметить галочкой либо использовать команду в консоли:

library (forecast )

В Windows может проявиться одна неприятная проблема: некоторые пакет легко скачиваются и собираются, но ни в какую не устанавливаются. R в этом случае пишет что-то типа: «Warning: unable to move temporary installation…». Всё, что нужно сделать в этом случае — добавить папку с R в исключения в антивирусе (либо выключить его на время установки пакетов).

После загрузки пакета, нам будут доступны все входящие в него функции. Например, функция tsdisplay () , использовать которую можно так:

tsdisplay (x )

Она построит нам три графика, которые мы обсудим в главе «Инструментарий прогнозиста ».

Помимо пакета forecast я достаточно часто для различных примеров использую пакет Mcomp . Он содержит ряды данных из базы «M-Competition». Поэтому рекомендую вам его тоже установить.

Очень часто нам будут нужны не просто наборы данных, а данные класса «ts» (временной ряд). Для того, чтобы из любой переменной сделать временной ряд, нужно выполнить следующую команду:

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

Здесь параметр start позволяет указать дату, с которого начинается наш временной ряд, а frequency задать частоту данных. Число 12 в нашем примере указывает на то, что мы имеем дело с месячными данными. В результате выполнения этой команды мы трансформируем наш вектор «x» во временной ряд месячных данных, начинающийся с января 1984-го года.

Хочу рассказать об использовании свободной среды статистического анализа 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);
  • Наличие как командного языка, так и разветвленной системы меню для прямого доступа к различным процедурам статистического анализа;
  • Графические средства вывода результатов;
  • Встроенный модуль Statistics Coach, интерактивным образом предлагающий адекватный метод анализа.
Недостатками IBM SPSS Statistics на мой взгляд являются:
  • Платность даже для студентов;
  • Необходимость получения (дополнительно оплачиваемых) модулей, содержащих специальные процедуры;
  • Поддержка только 32-разрядных операционных систем Linux, хотя Windows поддерживаются как 32-разрядные, так и 64-разрядные.
В качестве альтернативы я выбрал систему . Эта система начала разрабатываться усилиями Роберта Джентльмена и Росса Ихака на факультете статистики университета Мельбурна в 1995 году. Первые буквы имен авторов определили ее название. Впоследствии к развитию и расширению этой системы подключились ведущие специалисты-статистики.

Достоинствами обсуждаемой системы я считаю:

  • Распространение программы под GNU Public License;
  • Доступность как исходных текстов, так и бинарных модулей в обширной сети репозитариев 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;
  • Возможность обмена данным с электронными таблицами;
  • Возможность сохранения всей истории вычислений для целей документирования.
К первому занятию были подготовлены CD, на которые были записаны установочные файлы, документация и руководства. О последних скажу подробнее. В CRAN имеются подробные руководства пользователя по установке, языку R (и его подмножеству S), написанию дополнительных статистических процедур, экспорту и импорту данных. В разделе Contributed Documentation имеется большое число публикаций преподавателей-статистиков, использующих этот пакет в учебном процессе. К сожалению, на русском языке ничего нет, хотя, например, есть даже на польском. Из англоязычных книг отмечу «Using R for introductory statistics» профессора Джона Верзани из городского университета Нью-Йорка и «Introduction to the R project for Statistical Computing» профессора Росситера (Голландия) из Международного института Геоинформатики и наблюдений Земли.

Первое занятие было посвящено установке и обучению пользоваться пакетом, знакомство с синтаксисом языка 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]
> plot(u,v)
> i=0.5*3*length(u)/10000

Первые две строчки задают равномерное распределение точек в прямоугольнике x, затем отбираются те точки, которые попали под график экспоненциальной плотности 3*exp(-3*x), функция plot отображает точки в окне графического вывода, наконец, вычисляется искомый интеграл.
Второе занятие было посвящено вычислению описательных статистик (квантилям, медиане, среднему, дисперсии, корреляции и ковариации) и выводу графиков (гистограммы, ящик-с-усами).
В последующих занятиях использовалась библиотека «Rcmdr». Это - графический интерфейс пользователя (GUI) для среды R. Библиотека создается усилиями профессора Джона Фокса из университета McMaster в Канаде.

Установка этой библиотеки производится выполнением команды install.packages(«Rcmdr», dependencies=TRUE) внутри среды R. Если сама среда - интерпретатор языка R, то надстройка «Rcmdr» - это дополнительное окно, снабженное системой меню, содержащей большое число команд, соответствующих стандартным статистическим процедурам. Это особенно удобно для курсов, где главное - научить студента нажимать на кнопочки (к моему сожалению, такие встречаются сейчас все в большем количестве).

Из предыдущего моего курса были расширены заметки к семинарам. Они также доступны через FTP с сайта isdwiki.rsuh.ru. Эти заметки содержали таблицы критических значений, которые использовались для вычислений у доски. В этом году студентам предлагалось решать эти задачи на компьютере, а также проверять таблицы, использовав (нормальные) аппроксимации, также указанные в заметках.

Имелись и некоторые мои промахи. Например, я слишком поздно понял, что Rcmdr позволяет импортировать данные из загруженных пакетов, поэтому относительно большие выборки обрабатывались только на занятиях, посвященных регрессионному анализу. При изложении непараметрических тестов данные студенты вводили руками, используя мои заметки. Другим недостатком, как я сейчас понимаю, было недостаточное число домашних заданий на написание достаточно сложных программ на языке R.

Следует отметить, что на мои занятия ходили несколько студентов старших курсов, а некоторые скачивали материалы лекций и семинаров. Студенты отделения интеллектуальных систем РГГУ получают фундаментальную подготовку по математике и программированию, поэтому использование среды R (вместо электронных таблиц и статистических пакетов с фиксированными статистическими процедурами) представляется мне очень полезным.

Если перед Вами стоит задача изучения статистики, а особенно написание нестандартных процедур статистической обработки данных, то рекомендую обратить свое внимание на пакет R.


© 2024
zane-host.ru - Программы. Компьютеры. Сетевое оборудование. Оргтехника