R:Краткая справка — различия между версиями

Материал Psylab.info - энциклопедии психодиагностики
Перейти к: навигация, поиск
м (Примечания)
м (Создание данных)
Строка 283: Строка 283:
 
| <code>gl(n, k, length = n*k, labels = 1:n)</code> || создаёт фактор; <code>n</code> - количество уровней фактора; <code>k</code> - число повторов для каждого уровня; <code>length</code> - размер итогового объекта; <code>labels</code> - необязательный аргумент, который можно использовать для указания названий каждого уровня фактора.
 
| <code>gl(n, k, length = n*k, labels = 1:n)</code> || создаёт фактор; <code>n</code> - количество уровней фактора; <code>k</code> - число повторов для каждого уровня; <code>length</code> - размер итогового объекта; <code>labels</code> - необязательный аргумент, который можно использовать для указания названий каждого уровня фактора.
 
|-
 
|-
| <code>expand.grid()</code> || создаёт таблицу данных (<code>data.frame</code>) из сочетания всех элементов вектора или уровней фактора.
+
| <code>expand.grid(...)</code> || создаёт таблицу данных (<code>data.frame</code>) из сочетания всех элементов вектора или уровней фактора.
 
|}
 
|}
  

Версия 19:24, 22 марта 2014

Данный материал представляет собой перевод 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) из сочетания всех элементов вектора или уровней фактора.

Примечания

  1. Т.е. используется для многих классов объектов.
  2. Используется в основном для присвоения значений аргументам функций.
  3. Для вывода результата в файл необходимо указать имя файла: file = "filename".
  4. При возникновении проблем с отображением символов следует указать кодировку символов с помощью аргумента encoding.
  5. Может использоваться для копирования таблиц из MS Excel или OpenOffice Calc.
  6. Из буфера обмена данная таблица может быть вставлена в текстовый редактор или редактор таблиц.
  7. Для работы с буфером обмена в Linux необходимо установить пакет xclip и запустить его командой xclip -silent перед запуском R-сессии.