R:Краткая справка — различия между версиями
Материал Psylab.info - энциклопедии психодиагностики
м (→Пакеты) |
м (→Получение информации об объектах) |
||
(не показано 27 промежуточных версий этого же участника) | |||
Строка 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>::</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" | + | {| class="prettytable wide" |
| <code>install.packages(“pkgs”, lib)</code> || загружает и установливает пакеты из репозитория <code>lib</code> или другого внешнего источника. | | <code>install.packages(“pkgs”, lib)</code> || загружает и установливает пакеты из репозитория <code>lib</code> или другого внешнего источника. | ||
|- | |- | ||
Строка 111: | Строка 109: | ||
| <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 .
|
Примечания
- ↑ Т.е. используется для многих классов объектов.
- ↑ Используется в основном для присвоения значений аргументам функций.
- ↑ Для вывода результата в файл необходимо указать имя файла:
file = "filename"
. - ↑ При возникновении проблем с отображением символов следует указать кодировку символов с помощью аргумента
encoding
. - ↑ Может использоваться для копирования таблиц из MS Excel или OpenOffice Calc.
- ↑ Из буфера обмена данная таблица может быть вставлена в текстовый редактор или редактор таблиц.
- ↑ Для работы с буфером обмена в Linux необходимо установить пакет
xclip
и запустить его командойxclip -silent
перед запуском R-сессии. - ↑ Полный список доступен с помощью команды
methods(as)
. - ↑ Полный список доступен с помощью команды
methods(is)
. - ↑ Количество возвращаемых элементов объекта указывает с помощью аргумента
n
(по умолчанию равен 6). - ↑
summary()
является функцией общего назначения и результат её работы зависит от класса объектаx
.