Данный материал представляет собой перевод R Reference Card 2.0. При подготовке материала также использовался перевод
R Reference Card, сделанный Сергеем Мастицким.
Получение информации о функциях и объектах
Большинство функций в R имеют онлайн-документацию.
help(topic) |
документация по теме.
|
?topic |
эквивалент команды help(topic) ; специальные символы должны быть заключены в кавычки: ?"&&" .
|
help.search("topic") |
поиск информации по "topic" во всей встроенной справочной системе R; эквивалент команды ??тема .
|
apropos("topic") |
выводит имена всех объектов, содержащих регулярное выражение "topic".
|
help.start() |
запускает html-версию встроенной справочной системы R.
|
summary(x) |
функция общего назначения[1], выводит обобщённую информацию об объекте x , как правило, это набор статистических параметров.
|
str(x) |
отображает внутреннюю структуру R-объекта x .
|
ls() |
выводит список всех объектов в заданном окружении (environment); с помощью аргумента pattern можно отфильтровать объекты по заданному шаблону.
|
ls.str() |
отображает структуру всех R-объектов в заданном окружении.
|
dir() |
отображает список файлов в указанной директории.
|
methods(x) |
отображает S3-методы для объекта x .
|
methods(class = class(x)) |
список всех методов, обрабатывающих класс x .
|
findFn() |
ищет функцию в базе данных справки пакетов и возвращает data.frame (пакет sos ).
|
Операторы
<- |
оператор присвоения (левый), бинарный.
|
-> |
оператор присвоения (правый), бинарный.
|
= |
оператор присвоения (левый), не рекомендуется к использованию[2].
|
<<- |
оператор присвоения (левый) вне лексического контекста, не для начинающих.
|
$ |
подмножество списка, бинарный.
|
- |
минус, может как унарным, так и бинарным.
|
+ |
плюс, может как унарным, так и бинарным.
|
~ |
тильда, используется для определения формул в моделировании.
|
: |
двоеточие, бинарный, используется в формулах в моделировании для обозначения взаимодействия.
|
:: |
двойное двоеточие, используется для доступа к функции внутри пакета, без его предварительной загрузки pkg::function .
|
* |
произведение, бинарный.
|
/ |
деление, бинарный.
|
^ |
возведение в степень, бинарный.
|
%x% |
специальные бинарные операторы, x может быть заменён на любое допустимое имя.
|
%% |
остаток от деления, бинарный.
|
%/% |
неполное частное, бинарный.
|
%*% |
умножение матриц, бинарный.
|
%o% |
тензорное произведение, бинарный.
|
%x% |
произведение Кронекера, бинарный.
|
%in% |
оператор соответствия, бинарный.
|
!x |
логическое отрицание: НЕ x .
|
x & y |
поэлементное логическое И.
|
x && y |
логическое векторное И.
|
x | y |
поэлементное логическое ИЛИ.
|
x || y |
поэлементное векторное ИЛИ.
|
xor(x, y) |
поэлементное исключающее ИЛИ.
|
< |
меньше чем, бинарный.
|
> |
больше чем, бинарный.
|
== |
равно, бинарный.
|
<= |
меньше или равно, бинарный.
|
>= |
больше или равно, бинарный.
|
Пакеты
install.packages(“pkgs”, lib) |
загружает и установливает пакеты из репозитория lib или другого внешнего источника.
|
update.packages |
проверка новых версий и рекомендаций к установке.
|
library(pkg) |
загружает пакет, если пакет не указан, то выводится список пакетов.
|
detach(pkg) |
выгружает пакет из памяти.
|
Индексирование объектов в R
Индексирование векторов
x[n] |
возвращает n-й элемент вектора x .
|
x[-n] |
возвращает все элементы вектора x , за исключением n-го.
|
x[1:n] |
возвращает первые n элементов вектора x .
|
x[-(1:n)] |
возвращает элементы вектора x с [math]n+1[/math] до последнего.
|
x[c(1,4,2)] |
возвращает определенные элементы вектора x (здесь 1-й, 4-й и 2-й).
|
x["name"] |
возвращает элемент вектора [math]x[/math] с именем "name".
|
x[x > 3] |
возвращает все элементы вектора x со значением [math]\gt3[/math].
|
x[x > 3 & x < 5] |
возвращает все элементы вектора x со значением [math]\gt3[/math] и [math]\lt5[/math].
|
x[x %in% c("a", "if")] |
возвращает только те элементы вектора x , которые указаны после оператора %in% (здесь из вектора x были бы извлечены текстовые значения "a", и "if").
|
Индексирование списков
x[n] |
возвращает список элементами n.
|
x[[n]] |
возвращает n-й элемент списка x .
|
x[["name"]] |
возвращает элемент списка x с именем "name".
|
x$name |
команда, идентичная предыдущей (с частичным совпадением).
|
Индексирование матриц
x[i, j] |
возвращается элемент матрицы x на пересечении i-й строки и j-го столбца.
|
x[i, ] |
возвращает i-ю строку матрицы x .
|
x[, j] |
возвращает j-й столбец матрицы x .
|
x[, c(1, 3)] |
возвращает указанные номера столбцов матрицы x (здесь 1-й и 3-й столбцы).
|
x[ʺnameʺ, ] |
возвращает строку матрицы x с именем "name".
|
Индексирование таблиц данных
То же, что и индексирование матриц плюс следующее ниже:
x[["name"]] |
возвращает столбец таблицы данных x с именем "name".
|
x$name |
команда, идентичная предыдущей (с частичным совпадением).
|
Ввод и вывод (I/O)
Ввод и вывод объектов данных R
data(x) |
загружает таблицу данных x , если аргумент не указан, выводит список доступных таблиц данных.
|
save(file, ...) |
сохраняет все указанные объекты (... ) в кросс-платформенном двоичном файле XDR-формата (.RData , .Rda ).
|
save.image(file) |
сохраняет все объекты, созданные в ходе работы, в кросс-платформенном двоичном файле XDR-формата (.RData , .Rda ).
|
load(file) |
загружает данные, записанные с помощью функции save() .
|
saveRDS(x, file) |
сохраняет единичный объект x в указанный файл.
|
readRDS(file) |
загружает объект, сохранённый с помощью функции saveRDS() .
|
Ввод и вывод из баз данных
Полезные пакеты:
DBI |
предоставляет интерфейс для взаимодействия R и реляционных баз данных СУБД.
|
RJDBC |
предоставляет доступ к базам данных через JDBC интерфейс.
|
RMySQL |
предоставляет интерфейс для взаимодействия R с базами данных MySQL.
|
RODBC |
предоставляет доступ к базам данных через ODBC.
|
ROracle |
предоставляет интерфейс для взаимодействия R с базами данных Oracle.
|
RpgSQL |
предоставляет интерфейс для взаимодействия R с базами данных PostgreSQL.
|
RSQLite |
предоставляет интерфейс для взаимодействия R с базами данных SQLite.
|
Ввод и вывод из разных форматов
read.table(file) |
считывает файл с данными и создает из него таблицу данных (data.frame ), тип разделителя указывается аргументом sep (по умолчанию sep = " " , т.е. пробел).
|
read.csv(file) |
считывает файл с данными, разделёнными запятыми (csv-файл), и создает из него таблицу данных (data.frame ).
|
read.delim(“file”) |
считывает файл с данными, разделёнными отступами (tsv-файл), и создает из него таблицу данных (data.frame ).
|
read.fwf(“file”) |
считывает файл с данными фиксированной ширины (fwf-файл) и создает из него таблицу данных (data.frame ).
|
write.table(x, file) |
сохраняет объект x в файл, предварительно преобразовав этот объект в таблицу данных (data.frame ).
|
write.csv(x, file) |
сохраняет объект x в csv-файл, предварительно преобразовав этот объект в таблицу данных (data.frame ).
|
download.file(url) |
загружает файл из сети Интернет.
|
url.show(url) |
отображает удалённый адрес.
|
file.chow |
отображает локальный или удалённый файл.
|
cat(..., file = ʺʺ, sep = ʺ ʺ) |
превращает все указанные аргументы (...) в текст и выводит результат на экран[3]; разделитель между получаемыми текстовыми значениями задается при помощи аргумента sep .
|
print(x, ...) |
выводит на экран объект x ; это функция общего назначения - конкретный результат ее работы будет зависеть от класса объекта x .
|
format(x,...) |
позволяет отформатировать объект x так, что он будет выглядеть "аккуратно" при выводе на экран.
|
sink(file) |
выводит результаты выполнения других команд в файл в режиме реального времени; для прекращения действия этой команды выполните команду sink() .
|
Ввод и вывод из буфера обмена
Вместо файлов R может также работать с буфером обмена.
Windows/Linux: x <‐ read.delim(ʺclipboardʺ) [4]
|
копирует таблицу данных из буфера обмена в переменную x [5].
|
MacOS: x <‐ read.delim(pipe(“pbpaste”))
|
Windows: write.table(x, "clipboard", sep ="\t", col.names = NA)
|
копирует содержимое переменной x в буфер обмена[6].
|
MacOS: write.table(x, pipe("pbcopy", "w"), sep ="\t", col.names = NA)
|
Linux: write.table(x, pipe("xclip -i", "w"), sep = "\t", col.names = NA) [7]
|
См. также функцию read.clipboard()
из пакета psych
.
Создание данных
c(...) |
функция общего назначения, объединяет аргументы в один вектор определенного типа; с аргументом recursive = TRUE объединяет все элементы списка в один вектор.
|
от:до |
создаёт последовательность; оператор : имеет приоритет перед другими операторами: 1:4 + 1 будет 2 3 4 5 .
|
seq(from, to) |
формирует последовательность числовых или других значений; by указывает шаг; length - продолжительность.
|
seq(along = x) |
формирует последовательность 1, 2, ..., length(along) ; полезно при использовании циклов.
|
rep(x, times) |
повторяет x то количество раз, которое задано аргументом times ; используется аргумент each для повторения каждого элемента x : rep(c(1, 2, 3), 2) будет 1 2 3 1 2 3 ; rep(c(1, 2, 3), each = 2) будет 1 1 2 2 3 3 .
|
data.frame(...) |
создает таблицу данных из поименованных или непоименованных аргументов; если объект x не обладает достаточной длиной, его элементы при создании массива будут использованы повторно.
|
list(...) |
создает список объектов из поименованных или непоименованных аргументов; в отличие от столбцов таблицы данных, список может содержать объекты разной длины.
|
array(x, dim) |
создаёт массив данных из объекта x ; аргумент dim используется для указания размерности массива (например, dim = c(3,4,2)) ); если объект x не обладает достаточной длиной, его элементы при создании массива будут использованы повторно.
|
matrix(x, nrow, ncol) |
создает матрицу из вектора x ; количество строк задается аргументом nrow , количество столбцов - аргументом ncol ; если объект x не обладает достаточной длиной, его элементы при создании матрицы будут использованы повторно.
|
gl(n, k, length = n*k, labels = 1:n) |
создаёт фактор; n - количество уровней фактора; k - число повторов для каждого уровня; length - размер итогового объекта; labels - необязательный аргумент, который можно использовать для указания названий каждого уровня фактора.
|
expand.grid(...) |
создаёт таблицу данных (data.frame ) из сочетания всех элементов вектора или уровней фактора.
|
Преобразование объектов
Следующие команды конвертируют объект x
в объект соответствующего класса[8]:
as.array(x) |
массив данных.
|
as.character(x) |
вектор строк/символов.
|
as.data.frame(x) |
таблица данных.
|
as.factor(x) |
фактор.
|
as.logical(x) |
логический вектор.
|
as.numeric(x) |
числовой вектор.
|
Получение информации об объектах
Следующие команды позволяют проверить, принадлежит ли объект x
или его отдельные элементы к определенному типу[9]:
is.na(x) |
отсутствующее (пропущенное) значение.
|
is.null(x) |
ноль.
|
is.nan(x) |
NaN.
|
is.array(x) |
массив данных.
|
is.data.frame(x) |
таблица данных.
|
is.numeric(x) |
числовой вектор.
|
is.complex(x) |
вектор комплексных чисел.
|
is.character(x) |
вектор строк/символов.
|
x |
выводит объект x .
|
head(x) |
возвращает первую часть объекта x [10].
|
tail(x) |
возвращает последнюю часть объекта x .
|
summary(x) |
выводит обобщенную информацию об объекте x [11].
|
length(x) |
возвращает число элементов, содержащихся в объекте x .
|
dim(x) |
возвращает размерность объекта х ; используя команду вроде dim(x) = c(3,2) можно принудительно задать определенную размерность объекта x .
|
nrow(x) |
возвращает число строк в таблице или матрице x .
|
ncol(x) |
возвращает число столбцов в таблице или матрице x .
|
class(x) |
возвращает или задает (например, class(x) <- "myclass" ) класс объекта x .
|
unclass(x) |
удаляет атрибут класса у объекта x .
|
attr(x, which) |
возвращает или задает атрибут "which" объекта x .
|
attributes(obj) |
возвращает или задает список атрибутов объекта obj .
|
Примечания
- ↑ Т.е. используется для многих классов объектов.
- ↑ Используется в основном для присвоения значений аргументам функций.
- ↑ Для вывода результата в файл необходимо указать имя файла:
file = "filename"
.
- ↑ При возникновении проблем с отображением символов следует указать кодировку символов с помощью аргумента
encoding
.
- ↑ Может использоваться для копирования таблиц из MS Excel или OpenOffice Calc.
- ↑ Из буфера обмена данная таблица может быть вставлена в текстовый редактор или редактор таблиц.
- ↑ Для работы с буфером обмена в Linux необходимо установить пакет
xclip
и запустить его командой xclip -silent
перед запуском R-сессии.
- ↑ Полный список доступен с помощью команды
methods(as)
.
- ↑ Полный список доступен с помощью команды
methods(is)
.
- ↑ Количество возвращаемых элементов объекта указывает с помощью аргумента
n
(по умолчанию равен 6).
- ↑
summary()
является функцией общего назначения и результат её работы зависит от класса объекта x
.