Programming on R. Level 1. Basics
Язык R – самый популярный в мире инструмент статистического анализа данных. Он содержит широчайший спектр возможностей для анализа данных, их визуализации, а также создания документов и веб-приложений. Хотите освоить этот мощный язык под руководством опытного наставника? Приглашаем вас на курс «Программирование на языке R. Уровень 1. Базовые знания» .
Этот курс предназначен для широкого круга специалистов, которым необходимо искать закономерности в большом количестве данных, визуализировать их и строить статистически корректные выводы: социологов, менеджеров клинических испытаний/фармакологов, исследователей (астрономия, физика, биология, генетика, медицина и т.д.), IT-аналитиков, бизнес-аналитиков, финансовых аналитиков, маркетологов. Курс также понравится специалистам, которым не подходит функционал (или платность) / .
На занятиях вы получите основные навыки анализа и визуализации данных в среде R . Большая часть времени отводится практическим заданиям и работе с реальными наборами данных. Вы изучите все новые инструменты работы с данными и научитесь их применять в своей работе.
После курса выдается удостоверение о повышении квалификации центра.
Давайте немного поговорим о языке программирования под названием R. В последнее время вы могли у нас в блогах прочитать статьи о и , тех сферах, где просто необходимо под рукой иметь мощный язык для работы со статистикой и графиками. И R как раз из таких. Новичку в мире программирования буде достаточно непросто в это поверить, но сегодня R уже популярнее SQL, он активно используется в коммерческих организациях, исследовательских и университетах.
Не вникая в правила, синтаксис и конкретные области применения, просто давайте рассмотрим основные книги и ресурсы, которые помогут вам с нуля изучить R.
Что такое язык R, зачем он вам нужен и как его можно использовать с умом, можно узнать из прекрасного Руслана Купцова, который он провёл чуть меньше года назад в рамках GeekWeek-2015.
Книги
Теперь, когда в голове есть определённый порядок, можно приступать к чтению литературы, благо её более чем достаточно. Начнём с отечественных авторов:
Интернет-ресурсы
Любой человек, желающий изучить какой-либо язык программирования обязательно должен посетить в поисках знаний два ресурса: официальный сайт его разработчиков и самое крупное онлайн сообщество. Что ж. не будем делать исключение и для R:
Но опять проникшись заботой к тем, кто английский язык выучить ещё не успел, а вот изучить R ну очень хочет, упомянем несколько российских ресурсов:
А пока довершим картину небольшим списком англоязычных, но от этого не менее познавательных сайтов:
CRAN - собственно, место где можно загрузить к себе на компьютер среду разработки R. Кроме того мануалы, примеры и прочее полезное чтиво;
Quick-R - коротко и понятно про статистику, методы её обработки и язык R;
Burns-Stat - про R и про предшественника его S с огромным количеством примеров;
R for Data Science - ещё одна книга от Гаррета Гроулмунда (Garrett Grolemund), переведённая в формат онлайн учебника;
Awesome R - подборка лучшего кода с официального сайта, размещённая на нашем любимом GitHub;
Mran - язык R от Microsoft;
Tutorial R - ещё один ресурс с упорядоченной информацией с официального сайта.
В августе 1993 г. двое молодых новозеландских ученых из университета Окленда анонсировали свою новую разработку, которую они назвали R. По замыслу создателей, Роберта Джентльмена (Robert Gentleman) и Росса Ихака (Ross Ihaka), она должна была стать новой реализацией языка S, отличающейся от S-PLUS некоторыми деталями, например, обращением с глобальными и локальными переменными, а также работой с памятью. Фактически, они создали не полный аналог S-PLUS, а новую «ветку» на «дереве S». Многие вещи, которые отличают R от S-PLUS, связаны с влиянием языка Scheme (функциональный язык программирования, один из наиболее популярных диалектов языка Lisp).
На середину 2016 года R догнал SAS и SPSS (которые являются платными) и вошел в тройку самых распространенных систем для обработки статистической информации. Также следует отметить, что R входит в 10 языков программирования общего назначения.
Возможности
В среде R реализованы многие статистические методы: линейные и нелинейным модели , проверка статистических гипотез , анализ временных рядов , классификация , кластеризация , графическая визуализация . Язык R позволяет определять собственные функции. Многие функции R написаны на самом R. Для вычислительно сложных задач имеется возможность реализации функций на C, C++ и Fortran. Продвинутые пользователи могут непосредственно обращаться с объектами R из кода на языке C. R является более строгим объектно-ориентированным языком, чем большинство языков, предназначенных для статистических вычислений. Графические функции позволяют создавать графики хорошего полиграфического качества, с возможностью включения математических символов. Имеется собственный LaTeX -подобный формат документации.
Хотя R чаще всего применяется для статистических вычислений, он также может использоваться в качестве средства матричных вычислений. Как и MATLAB , R трактует результат любой операции с числами как вектор единичной длины. Скаляров в R, вообще говоря, нет.
Скрипты
Просто открыть сессию R и вводить в окно программы команды, одну за другой - это лишь один из возможных способов работы. Гораздо более продуктивный метод, который является заодно и серьёзнейшим преимуществом R - это создание скриптов (программ), которые потом загружаются в R и интерпретируются им. С самого начала работы следует создавать скрипты, даже для таких задач, которые кажутся пустяковыми - в будущем это значительно сэкономит время. Создание скриптов по любому поводу и даже без особого повода - одна из основ культуры работы в R.
Пакеты
Ещё одно важное преимущество R - наличие для него многочисленных расширений или пакетов. Несколько базовых пакетов присутствуют сразу после установки R на компьютер, без них система просто не работает (скажем, пакет, который так и называется base, или пакет grDevices, который управляет выводом графиков), а также «рекомендованные» пакеты (пакет для специализированного кластерного анализа cluster, пакет для анализа нелинейных моделей nlme и другие). Кроме того, можно поставить любой из почти восьми тысяч (на середину 2016 года) доступных на CRAN пакетов. При наличии доступа в Интернет это можно сделать прямо из R командой install.packages()
Ссылки
- CRAN (Comprehensive R Archive Network) - центральная система хранения и распространения R и его пакетов.
Что такое 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 пакет своими руками!
Всем привет, если вы занимаетесь интернет маркетингом наверняка вам ежедневно приходится сталкиваться со множеством рекламных сервисов и как минимум одной платформой веб аналитики, если вам требуется хотя бы раз в месяц, или может быть даже раз в неделю руками сводить данные о расходах, и прочую статистическую информацию из всех источников то это чревато не только большими временными затратами, но и вероятность ошибки при консолидации данных из множества источников в ручном режиме достаточно велика. В этой статье я подскажу готовые расширения (пакеты) для языка R, с помощью которых вы можете автоматизировать процесс сбора данных из большинства популярных рекламных систем и платформ веб аналитики.
Солержание
- Какой софт нам потребуется
- CRAN или GitHub
- Возможности пакета rvkstat
- Пример кода для работы с пакетом rvkstat
- rmytarget - загрузка данных из API MyTarget
- Возможности пакета rmytarget
- Пример кода для работы с rmytarget
- Основные функции пакета rym
- Пример работы с пакетом rym
- Заключение
Какой софт нам потребуется
Т.к. в данной статье мы говорим про язык R, то вам потребуется сам и среда разработки RStudio .
И язык R, и RStudio являются бесплатным, свободно распространяемым программным обеспечением, поэтому вы свободно можете скачивать их из официальных сайтов.
Как начать работу с R пакетами
Ничего сложного для начала работы с R пакетами нет, осуществляется это следующим образом:
- Установка пакета, как правило с помощью базовой команды install.packages ;
- Подключение пакета, каждый раз при старте нового сеанса работы с 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
- Авторизация в API Яндекса;
- Загрузка списка рекламных кампаний, ключевых слов, объявлений;
- Загрузка статистических данных из аккаунтов Яндекс.Директ с помощью сервиса Reports .
- Остановка и возобновление показов объявлений на уровне рекламных кампаний, ключевых слов и объявлений.
- Запрос остатка средств и других параметров общего счёта.
- Загрузка справочной информации (курсы валют, географический справочник и т.д.)
Основные функции
Основные функции доступные в 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
- Авторизация в API Facebook
- Загрузка списка доступных вам бизнес-менеджеров;
- Загрузка списка рекламных кампаний, групп объявлений, объявлений.
- Загрузка статистики на уровне рекламного аккаунта, рекламных кампаний, групп объявлений и объявлений.
- Загрузка списка пользователей у которых есть доступ к рекламному аккаунту.
- Управление доступами к рекламным аккаунтам.
Основные функции пакета 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
- Авторизация в API Вконтакте;
- Загрузка данных из рекламных кабинетов Вконтакте;
- Загрузка справочной информации из Вконтакте;
- Загрузка некоторой информации о пользователе Вконтакте;
- Загрузка статистики из рекламного кабинета Вконтакте;
- Загрузка статистики о посещениях сообществ Вконтакте.
Основные функции пакета rvkstat
Пакет rvkstat на момент написания статьи содержит более 30 функции, вот наиболее полезные из них:
- vkAuth - Авторизация;
- vkGetAdStatistics - Загрузка статистики из рекламного кабинета;
- vkGetAdCampaigns , vkGetAds - Загрузка списка рекламных кампаний и объявлений;
- vkGetGroupStat - Загрузка статистики о посещении групп и сообществ Вконтакте.
Пример кода для работы с пакетом rvkstat
Возможности пакета rmytarget
- Авторизация в API MyTarget по схеме Code Grant;
- Загрузка списка рекламных кампаний, объявлений.
- Загрузка статистики на уровне рекламных кампаний и объявлений.
Основные функции пакета 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 интерфейсами:
- Авторизация по протоколу oAuth2;
- Работа с API управления ;
- Работа с API отчётов ;
- Работа с API совместимым с Core API Google Analytics v3 ;
- Работа с 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 и Яндекс.Метрика. Конечно это далеко не исчерпывающий список сервисов которые используются интрент маркетологами, но уместить все инструменты в одну статью достаточно проблематично, поэтому если данная статья получит положительные отзывы я напишу продолжение.
Если у вас в арсенале так же есть интересные пакеты, которые могут помочь в автоматизации сбора данных из рекламных источников или веб-аналитических платформ, оставляйте их в комментариях к этой статье.