Последние посты доступны только в английской версии блога


R-ссылки



Английские полезные R-ресурсы

  • R-project — официальный сайт
  • CRAN — официальный репозиторий пакетов
  • Bioconductor — ещё один репозиторий пакетов
  • R graph gallery — графическая галерея R
  • Inside-R — замечательно R-сообщество
  • Full manual — полные оригинальные спецификации
  • R Cookbook — разные полезные R-сниппеты для решения типовых задач
  • Quick-R — краткий обзор языка
  • Try R — online-обучалка основам языка
  • R Wiki — небольшая вики про язык R
  • R Seek — поиск информации про R
  • R Journal — журнал про R
  • Google's R Style Guide — стандарты оформления R-кода от Google
  • R by example — подборка примеров использования R
  • R FAQ — официальный FAQ
  • Functional programming — учимся функциональному программированию на R
  • crantastic — ещё одно R-сообщество
  • omegahat — ещё один R-репозиторий
  • ProgrammingR.com — и ещё один полезный сайт
  • fractalswithr — фракталы на R

  Читать дальше    Комментарии


Множественное присваивание в R



R — мощный и лаконичный язык. С помощью коротких инструкций можно сделать очень многое. Но давайте сделаем R ещё лаконичнее.

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

x <- solve(matrix(c(2, 0, 0, 3), ncol=2), c(1, 1))
x1 <- x[1]
x2 <- x[2]

А вот было бы здорово если бы такие вещи можно было записывать в одну строчку, например так:

с(x1, x2) %=% solve(matrix(c(2, 0, 0, 3), ncol=2), c(1, 1))

Нет ничего проще!

Читать дальше    Комментарии


Progress bar в R



Давайте поговорим о долгих расчётах, ведь они не так редко встречаются в мире вычислений. Когда вы запускаете скрипт, который будет заведомо долго работать, то приятно смотреть на состояние прогресса. Эта информация поможет прикинуть время до конца вычислений («осталось ещё 30%, я успею выпить чашку кофе» ) или просигнализировать о бесконечном цикле (1438% выполнено, что-то пошло не так... ). Давайте научим наш скрипт сообщать пользователю о проценте выполненных работ.

Читать дальше    Комментарии


Rprofile — кастомизируем рабочее окружение



Давайте поговорим о задании окружения в R. Для этой цели имеется два волшебных файла:

  • Rprofile.site — глобальный файл настроек для всех сессий. Путь в Windows: c:\Program Files\R\R-x.y.z\etc\Rprofile.site, путь в Linux: /etc/R/Rprofile.site.
  • .Rprofile — локальный файл настроек для текущей сессии. Лежит в домашней директории пользователя.

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

  • .First <- function() { ... } — функция, которая запускается в начале R-сессии
  • .Last <- function() { ... } — функция, которая запускается в конце R-сессии

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

Читать дальше    Комментарии


Конкатенация строк в R



Давайте поговорим о конкатенации строк. Новички в R пытаются пробовать стандартную конструкцию

"a" + "b"

Но их постигает неудача — R так не работает. Оператор плюс — это арифметическая операция, её нельзя применять к строкам. В R полагается использовать функцию paste:

paste (..., sep = " ", collapse = NULL)
paste0(..., collapse = NULL)

Читать дальше    Комментарии


Вызов R-скрипта с аргументами из консоли



Для выполнения R-скрипта из консоли нам понадобится помощь утилит Rscript.exe и Rterm.exe. Разница между ними состоит в том, что Rscript.exe в результате выполнения выдаст нам только результат работы R-скрипта, а Rterm.exe выдаст полный лог R-сессии (включая стартовое приглашение к работе и все исполняемые команды). Если быть до конца честными, то Rscript.exe по сути вызывает Rterm.exe с специальными аргументами (об этом немного ниже). Рассмотрим пример запуска скрипта с аргументами командной строки:

Rterm.exe --no-restore --no-save --args 100 image <script.R >output.txt
Rscript.exe script.R 100 image >output.txt

Разберём эти команды чуть подробней.

Читать дальше    Комментарии


Рисуем комиксы в стиле xkcd



Многие слышали о таком замечательном комиксе, как xkcd. Это веб-комикс от Рэндела Манро о романтике, сарказме, математике и языке. Для некоторых комиксов есть переводы на русский. Для поиска и просмотра ваших любимых комиксов в R есть отдельный пакет: RXKCD. Давайте установим этот пакет и подключим его:

install.packages("RXKCD")
library("RXKCD")

Давайте поищем какой-нибудь комикс, а затем нарисуем его. Функция searchXKCD выдаст нам список всех комиксов, в описании которых встречается заданная фраза. А getXKCD выдаст нам полную информацию о комиксе по заданному номеру (включая рисование картинки).

searchXKCD("someone is wrong")
getXKCD(386)

А теперь помимо стандартных комиксов научимся рисовать свои!

Читать дальше    Комментарии


Заворачиваем C#-класс в COM



Пусть у нас имеется C#-класс, который делает что-нибудь полезное, например:

public class Calculator
{
    public int Sum(int a, int b)
    {
        return a + b;
    }
}

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

Читать дальше    Комментарии



Подписаться: RSS Atom