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

R R-settings

Давайте поговорим о задании окружения в 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-сессии? Вас утомляет каждый раз их импортировать? Так давай те же сделаем это единожды:

library(ggplot2)
library(rgl)

Создание псевдонимов для часто используемых функций

А есть ли у вас любимые функции, которые вы вызываете очень часто? Их названия слишком длинные? Так давайте же создадим для них псевдонимы:

s <- base::summary; # используем s(obj) вместо summary(obj)
h <- utils::head;   # используем h(obj) вместо head(obj)
n <- base::names;   # используем n(obj) вместо names(obj)

Задание предпочитаемого репозитория

У стандартного репозитория CRAN есть много зеркал. Вы можете задать любимый репозиторий несколькими строчками кода:

 local({r <- getOption("repos")
       r["CRAN"] <- "http://cran.gis-lab.info/"
       options(repos=r)})

Задание основного языка

А давайте сделаем так, чтобы по умолчанию язык был английский:

Sys.setenv(lang = "en")

Установка различных опций

Вы можете установить любые опции на свой вкус:

options(papersize="a4")
options(editor="notepad")
options(pager="internal")
options(help_type="html")
options("width"=160)
options("digits.secs"=3)
options(prompt="R> ", digits=4, show.signif.stars=FALSE)