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

Материал Psylab.info - энциклопедии психодиагностики
Перейти к: навигация, поиск
м (Пакеты)
м (Получение информации об объектах)
 
(не показана одна промежуточная версия этого же участника)
Строка 6: Строка 6:
 
Большинство функций в R имеют онлайн-документацию.
 
Большинство функций в R имеют онлайн-документацию.
  
{| class="prettytable"
+
{| class="prettytable wide"
|-
+
 
| <code>help(topic)</code> || документация по теме.
 
| <code>help(topic)</code> || документация по теме.
 
|-
 
|-
Строка 37: Строка 36:
 
== Операторы ==
 
== Операторы ==
  
{| class="prettytable"
+
{| class="prettytable wide"
|-
+
 
| <code><-</code> || оператор присвоения (левый), бинарный.
 
| <code><-</code> || оператор присвоения (левый), бинарный.
 
|-
 
|-
Строка 57: Строка 55:
 
| <code>:</code> || двоеточие, бинарный, используется в формулах в моделировании для обозначения взаимодействия.
 
| <code>:</code> || двоеточие, бинарный, используется в формулах в моделировании для обозначения взаимодействия.
 
|-
 
|-
| <code>::</code> || двойное двоеточие, используется для доступа к функции внутри пакет, без его предварительной загрузки <code>pkg::function</code>.
+
| <code>::</code> || двойное двоеточие, используется для доступа к функции внутри пакета, без его предварительной загрузки <code>pkg::function</code>.
 
|-
 
|-
 
| <code>*</code> || произведение, бинарный.
 
| <code>*</code> || произведение, бинарный.
Строка 75: Строка 73:
 
| <code>%o%</code> || [http://ru.wikipedia.org/wiki/Тензорное_произведение тензорное произведение], бинарный.
 
| <code>%o%</code> || [http://ru.wikipedia.org/wiki/Тензорное_произведение тензорное произведение], бинарный.
 
|-
 
|-
| <code>%x%</code> || [http://ru.wikipedia.org/wiki/Произведение_Кронекера Произведение Кронекера], бинарный.
+
| <code>%x%</code> || [http://ru.wikipedia.org/wiki/Произведение_Кронекера произведение Кронекера], бинарный.
 
|-
 
|-
 
| <code>%in%</code> || оператор соответствия, бинарный.
 
| <code>%in%</code> || оператор соответствия, бинарный.
Строка 104: Строка 102:
 
== Пакеты ==
 
== Пакеты ==
  
{|
+
{| class="prettytable wide"
| <code>install.packages(“pkgs”, lib)</code> || загрузить и установить пакеты из репозитория <code>lib</code> или другого внешнего источника.
+
| <code>install.packages(“pkgs”, lib)</code> || загружает и установливает пакеты из репозитория <code>lib</code> или другого внешнего источника.
 +
|-
 
| <code>update.packages</code> || проверка новых версий и рекомендаций к установке.
 
| <code>update.packages</code> || проверка новых версий и рекомендаций к установке.
 +
|-
 
| <code>library(pkg)</code> || загружает пакет, если пакет не указан, то выводится список пакетов.
 
| <code>library(pkg)</code> || загружает пакет, если пакет не указан, то выводится список пакетов.
| <code>detach(pkg)</code> || выгружает пакет.
+
|-
 +
| <code>detach(pkg)</code> || выгружает пакет из памяти.
 +
|}
 +
 
 +
== Индексирование объектов в R ==
 +
 
 +
=== Индексирование векторов ===
 +
 
 +
{| class="prettytable wide"
 +
| <code>x[n]</code> || возвращает n-й элемент вектора <code>x</code>.
 +
|-
 +
| <code>x[-n]</code> || возвращает все элементы вектора <code>x</code>, за исключением n-го.
 +
|-
 +
| <code>x[1:n]</code> || возвращает первые n элементов вектора <code>x</code>.
 +
|-
 +
| <code>x[-(1:n)]</code> || возвращает элементы вектора <code>x</code> с <math>n+1</math> до последнего.
 +
|-
 +
| <code>x[c(1,4,2)]</code> || возвращает определенные элементы вектора <code>x</code> (здесь 1-й, 4-й и 2-й).
 +
|-
 +
| <code>x["name"]</code> || возвращает элемент вектора <math>x</math> с именем "name".
 +
|-
 +
| <code>x[x > 3]</code> || возвращает все элементы вектора <code>x</code> со значением <math>>3</math>.
 +
|-
 +
| <code>x[x > 3 & x < 5]</code> || возвращает все элементы вектора <code>x</code> со значением <math>>3</math> и <math><5</math>.
 +
|-
 +
| <code>x[x %in% c("a", "if")] </code> || возвращает только те элементы вектора <code>x</code>, которые указаны после оператора <code>%in%</code> (здесь из вектора <code>x</code> были бы извлечены текстовые значения "a", и "if").
 +
|}
 +
 
 +
=== Индексирование списков ===
 +
 
 +
{| class="prettytable wide"
 +
| <code>x[n]</code> || возвращает список элементами n.
 +
|-
 +
| <code><nowiki>x[[n]]</nowiki></code> || возвращает n-й элемент списка <code>x</code>.
 +
|-
 +
| <code><nowiki>x[["name"]]</nowiki></code> || возвращает элемент списка <code>x</code> с именем "name".
 +
|-
 +
| <code>x$name</code> || команда, идентичная предыдущей (с частичным совпадением).
 +
|}
 +
 
 +
=== Индексирование матриц ===
 +
 
 +
{| class="prettytable wide"
 +
| <code>x[i, j]</code> || возвращается элемент матрицы <code>x</code> на пересечении i-й строки и j-го столбца.
 +
|-
 +
| <code>x[i, ]</code> || возвращает i-ю строку матрицы <code>x</code>.
 +
|-
 +
| <code>x[, j]</code> || возвращает j-й столбец матрицы <code>x</code>.
 +
|-
 +
| <code>x[, c(1, 3)]</code> || возвращает указанные номера столбцов матрицы <code>x</code> (здесь 1-й и 3-й столбцы).
 +
|-
 +
| <code>x[ʺnameʺ, ]</code> || возвращает строку матрицы <code>x</code> с именем "name".
 +
|}
 +
 
 +
=== Индексирование таблиц данных ===
 +
 
 +
То же, что и [[R:Краткая справка#Индексирование_матриц|индексирование матриц]] плюс следующее ниже:
 +
 
 +
{| class="prettytable wide"
 +
| <code><nowiki>x[["name"]]</nowiki></code> || возвращает столбец таблицы данных <code>x</code> с именем "name".
 +
|-
 +
| <code>x$name</code> || команда, идентичная предыдущей (с частичным совпадением).
 +
|}
 +
 
 +
== Ввод и вывод (I/O) ==
 +
 
 +
=== Ввод и вывод объектов данных R ===
 +
 
 +
{| class="prettytable wide"
 +
| <code>data(x)</code> || загружает таблицу данных <code>x</code>, если аргумент не указан, выводит список доступных таблиц данных.
 +
|-
 +
| <code>save(file, ...)</code> || сохраняет все указанные объекты (<code>...</code>) в кросс-платформенном двоичном файле [http://ru.wikipedia.org/wiki/External_Data_Representation XDR]-формата (<code>.RData</code>, <code>.Rda</code>).
 +
|-
 +
| <code>save.image(file)</code> || сохраняет все объекты, созданные в ходе работы, в кросс-платформенном двоичном файле [http://ru.wikipedia.org/wiki/External_Data_Representation XDR]-формата (<code>.RData</code>, <code>.Rda</code>).
 +
|-
 +
| <code>load(file)</code> || загружает данные, записанные с помощью функции <code>save()</code>.
 +
|-
 +
| <code>saveRDS(x, file)</code> || сохраняет единичный объект <code>x</code> в указанный файл.
 +
|-
 +
| <code>readRDS(file)</code> || загружает объект, сохранённый с помощью функции <code>saveRDS()</code>.
 +
|}
 +
 
 +
=== Ввод и вывод из баз данных ===
 +
 
 +
Полезные пакеты:
 +
 
 +
{| class="prettytable wide"
 +
| {{r-package|DBI}} || предоставляет интерфейс для взаимодействия R и реляционных баз данных [http://ru.wikipedia.org/wiki/Система_управления_базами_данных СУБД].
 +
|-
 +
| {{r-package|RJDBC}} || предоставляет доступ к базам данных через [http://ru.wikipedia.org/wiki/Java_Database_Connectivity JDBC] интерфейс.
 +
|-
 +
| {{r-package|RMySQL}} || предоставляет интерфейс для взаимодействия R с базами данных [http://ru.wikipedia.org/wiki/MySQL MySQL].
 +
|-
 +
| {{r-package|RODBC}} || предоставляет доступ к базам данных через [http://ru.wikipedia.org/wiki/ODBC ODBC].
 +
|-
 +
| {{r-package|ROracle}} || предоставляет интерфейс для взаимодействия R с базами данных [http://ru.wikipedia.org/wiki/Oracle_Database Oracle].
 +
|-
 +
| {{r-package|RpgSQL}} || предоставляет интерфейс для взаимодействия R с базами данных [http://ru.wikipedia.org/wiki/PostgreSQL PostgreSQL].
 +
|-
 +
| {{r-package|RSQLite}} || предоставляет интерфейс для взаимодействия R с базами данных [http://ru.wikipedia.org/wiki/SQLite SQLite].
 +
|}
 +
 
 +
=== Ввод и вывод из разных форматов ===
 +
 
 +
{| class="prettytable wide"
 +
| <code>read.table(file)</code> || считывает файл с данными и создает из него таблицу данных (<code>data.frame</code>), тип разделителя указывается аргументом <code>sep</code> (по умолчанию <code>sep  = " "</code>, т.е. пробел).
 +
|-
 +
| <code>read.csv(file)</code> || считывает файл с данными, разделёнными запятыми ([http://ru.wikipedia.org/wiki/CSV csv-файл]), и создает из него таблицу данных (<code>data.frame</code>).
 +
|-
 +
| <code>read.delim(“file”)</code> || считывает файл с данными, разделёнными отступами ([http://ru.wikipedia.org/wiki/TSV tsv-файл]), и создает из него таблицу данных (<code>data.frame</code>).
 +
|-
 +
| <code>read.fwf(“file”)</code> || считывает файл с данными фиксированной ширины (fwf-файл) и создает из него таблицу данных (<code>data.frame</code>).
 +
|-
 +
| <code>write.table(x, file)</code> || сохраняет объект <code>x</code> в файл, предварительно преобразовав этот объект в таблицу данных (<code>data.frame</code>).
 +
|-
 +
| <code>write.csv(x, file)</code> || сохраняет объект <code>x</code> в csv-файл, предварительно преобразовав этот объект в таблицу данных (<code>data.frame</code>).
 +
|-
 +
| <code>download.file(url)</code> || загружает файл из сети Интернет.
 +
|-
 +
| <code>url.show(url)</code> || отображает удалённый адрес.
 +
|-
 +
| <code>file.chow</code> || отображает локальный или удалённый файл.
 +
|-
 +
| <code>cat(..., file = ʺʺ, sep = ʺ ʺ)</code> ||  превращает все указанные аргументы (...) в текст и выводит результат на экран<ref>Для вывода результата в файл необходимо указать имя файла: <code>file = "filename"</code>.</ref>; разделитель между получаемыми текстовыми значениями задается при помощи аргумента <code>sep</code>.
 +
|-
 +
| <code>print(x, ...)</code> || выводит на экран объект <code>x</code>; это функция общего назначения - конкретный результат ее работы будет зависеть от класса объекта <code>x</code>.
 +
|-
 +
| <code>format(x,...)</code> || позволяет отформатировать объект <code>x</code> так, что он будет выглядеть "аккуратно" при выводе на экран.
 +
|-
 +
| <code>sink(file)</code> || выводит результаты выполнения других команд в файл в режиме реального времени; для прекращения действия этой команды выполните команду <code>sink()</code>.
 +
|}
 +
 
 +
=== Ввод и вывод из буфера обмена ===
 +
 
 +
Вместо файлов R может также работать с буфером обмена.
 +
 
 +
{| class="prettytable wide"
 +
| Windows/Linux: <code>x <‐ read.delim(ʺclipboardʺ)</code><ref>При возникновении проблем с отображением символов следует указать кодировку символов с помощью аргумента <code>encoding</code>.</ref>
 +
| rowspan="2" | копирует таблицу данных из буфера обмена в переменную <code>x</code><ref>Может использоваться для копирования таблиц из MS Excel или OpenOffice Calc.</ref>.
 +
|-
 +
| MacOS: <code>x <‐ read.delim(pipe(“pbpaste”))</code>
 +
|-
 +
| Windows: <code>write.table(x, "clipboard", sep ="\t", col.names = NA)</code>
 +
| rowspan="3" | копирует содержимое переменной <code>x</code> в буфер обмена<ref>Из буфера обмена данная таблица может быть вставлена в текстовый редактор или редактор таблиц.</ref>.
 +
|-
 +
| MacOS: <code>write.table(x, pipe("pbcopy", "w"), sep ="\t", col.names = NA)</code>
 +
|-
 +
| style="width: 1px; white-space: nowrap;" | Linux: <code>write.table(x, pipe("xclip -i", "w"), sep = "\t", col.names = NA)</code><ref>Для работы с буфером обмена в Linux необходимо установить пакет <code>xclip</code> и запустить его командой <code>xclip -silent</code> перед запуском R-сессии.</ref>
 +
|}
 +
 
 +
См. также функцию <code>read.clipboard()</code> из пакета {{r-package|psych}}.
 +
 
 +
== Создание данных ==
 +
 
 +
{| class="prettytable wide"
 +
| <code>c(...)</code> || функция общего назначения, объединяет аргументы в один вектор определенного типа; с аргументом <code>recursive = TRUE</code> объединяет все элементы списка в один вектор.
 +
|-
 +
| <code>от:до</code> || создаёт последовательность; оператор <code>:</code> имеет приоритет перед другими операторами: <code>1:4 + 1</code> будет <code>2 3 4 5</code>.
 +
|-
 +
| <code>seq(from, to)</code> || формирует последовательность числовых или других значений; <code>by</code> указывает шаг; length - продолжительность.
 +
|-
 +
| <code>seq(along = x)</code> || формирует последовательность <code>1, 2, ..., length(along)</code>; полезно при использовании циклов.
 +
|-
 +
| <code>rep(x, times)</code> || повторяет <code>x</code> то количество раз, которое задано аргументом <code>times</code>; используется аргумент <code>each</code> для повторения каждого элемента <code>x</code>: <code>rep(c(1, 2, 3), 2)</code> будет <code>1 2 3 1 2 3</code>; <code>rep(c(1, 2, 3), each = 2)</code> будет <code>1 1 2 2 3 3</code>.
 +
|-
 +
| <code>data.frame(...)</code> || создает таблицу данных из поименованных или непоименованных аргументов; если объект <code>x</code> не обладает достаточной длиной, его элементы при создании массива будут использованы повторно.
 +
|-
 +
| <code>list(...)</code> || создает список объектов из поименованных или непоименованных аргументов; в отличие от столбцов таблицы данных, список может содержать объекты разной длины.
 +
|-
 +
| <code>array(x, dim)</code> || создаёт массив данных из объекта <code>x</code>; аргумент dim используется для указания размерности массива (например, <code>dim = c(3,4,2))</code>); если объект <code>x</code> не обладает достаточной длиной, его элементы при создании массива будут использованы повторно.
 +
|-
 +
| <code>matrix(x, nrow, ncol)</code> || создает матрицу из вектора <code>x</code>; количество строк задается аргументом <code>nrow</code>, количество столбцов - аргументом <code>ncol</code>; если объект <code>x</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>x</code> в объект соответствующего класса<ref>Полный список доступен с помощью команды <code>methods(as)</code>.</ref>:
 +
 
 +
{| class="prettytable wide"
 +
| <code>as.array(x)</code> || массив данных.
 +
|-
 +
| <code>as.character(x)</code> || вектор строк/символов.
 +
|-
 +
| <code>as.data.frame(x)</code> || таблица данных.
 +
|-
 +
| <code>as.factor(x)</code> || фактор.
 +
|-
 +
| <code>as.logical(x)</code> || логический вектор.
 +
|-
 +
| <code>as.numeric(x)</code> || числовой вектор.
 +
|}
 +
 
 +
== Получение информации об объектах ==
 +
 
 +
Следующие команды позволяют проверить, принадлежит ли объект <code>x</code> или его отдельные элементы к определенному типу<ref>Полный список доступен с помощью команды <code>methods(is)</code>.</ref>:
 +
 
 +
{| class="prettytable wide"
 +
| <code>is.na(x)</code> || отсутствующее (пропущенное) значение.
 +
|-
 +
| <code>is.null(x)</code> || ноль.
 +
|-
 +
| <code>is.nan(x)</code> || [http://ru.wikipedia.org/wiki/NaN NaN].
 +
|-
 +
| <code>is.array(x)</code> || массив данных.
 +
|-
 +
| <code>is.data.frame(x)</code> || таблица данных.
 +
|-
 +
| <code>is.numeric(x)</code> || числовой вектор.
 +
|-
 +
| <code>is.complex(x)</code> || вектор комплексных чисел.
 +
|-
 +
| <code>is.character(x)</code> || вектор строк/символов.
 +
|-
 +
| <code>x</code> || выводит объект <code>x</code>.
 +
|-
 +
| <code>head(x)</code> || возвращает первую часть объекта <code>x</code><ref>Количество возвращаемых элементов объекта указывает с помощью аргумента <code>n</code> (по умолчанию равен 6).</ref>.
 +
|-
 +
| <code>tail(x)</code> || возвращает последнюю часть объекта <code>x</code>.
 +
|-
 +
| <code>summary(x)</code> || выводит обобщенную информацию об объекте <code>x</code><ref><code>summary()</code> является функцией общего назначения и результат её работы зависит от класса объекта <code>x</code>.</ref>.
 +
|-
 +
|- <code>str(x)</code> || возвращает внутреннюю структуру объекта <code>x</code>.
 +
|-
 +
| <code>length(x)</code> || возвращает число элементов, содержащихся в объекте <code>x</code>.
 +
|-
 +
| <code>dim(x)</code> || возвращает размерность объекта <code>х</code>; используя команду вроде <code>dim(x) = c(3,2)</code> можно принудительно задать определенную размерность объекта <code>x</code>.
 +
|-
 +
|- <code>dimnames(x)</code> || возвращает число элементов, содержащихся в объекте <code>x</code>.
 +
|-
 +
| <code>nrow(x)</code> || возвращает число строк в таблице или матрице <code>x</code>.
 +
|-
 +
| <code>ncol(x)</code> || возвращает число столбцов в таблице или матрице <code>x</code>.
 +
|-
 +
| <code>class(x)</code> || возвращает или задает (например, <code>class(x) <- "myclass"</code>) класс объекта <code>x</code>.
 +
|-
 +
| <code>unclass(x)</code> || удаляет атрибут класса у объекта <code>x</code>.
 +
|-
 +
| <code>attr(x, which)</code> || возвращает или задает атрибут "which" объекта <code>x</code>.
 +
|-
 +
| <code>attributes(obj)</code> || возвращает или задает список атрибутов объекта <code>obj</code>.
 
|}
 
|}
  

Текущая версия на 17:10, 30 марта 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) из сочетания всех элементов вектора или уровней фактора.

Преобразование объектов

Следующие команды конвертируют объект 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.

Примечания

  1. Т.е. используется для многих классов объектов.
  2. Используется в основном для присвоения значений аргументам функций.
  3. Для вывода результата в файл необходимо указать имя файла: file = "filename".
  4. При возникновении проблем с отображением символов следует указать кодировку символов с помощью аргумента encoding.
  5. Может использоваться для копирования таблиц из MS Excel или OpenOffice Calc.
  6. Из буфера обмена данная таблица может быть вставлена в текстовый редактор или редактор таблиц.
  7. Для работы с буфером обмена в Linux необходимо установить пакет xclip и запустить его командой xclip -silent перед запуском R-сессии.
  8. Полный список доступен с помощью команды methods(as).
  9. Полный список доступен с помощью команды methods(is).
  10. Количество возвращаемых элементов объекта указывает с помощью аргумента n (по умолчанию равен 6).
  11. summary() является функцией общего назначения и результат её работы зависит от класса объекта x.