Изменения

Перейти к: навигация, поиск

R:Краткая справка

23 176 байтов добавлено, 14:10, 30 марта 2014
м
Получение информации об объектах
Большинство функций в R имеют онлайн-документацию.
* {| class="prettytable wide"| <code>help(topic)</code>: || документация по теме>.* |-| <code>?topic</code>: || эквивалент команды <code>help(topic)</code>; специальные символы должны быть заключены в кавычки: <code>?"&&"</code>.* |-| <code>help.search("topic")</code>: || поиск информации по "topic" во всей встроенной справочной системе R; эквивалент команды <code>??тема</code>.* |-| <code>apropos("topic")</code>: || выводит имена всех объектов, содержащих регулярное выражение "topic".* |-| <code>help.start()</code>: || запускает html-версию встроенной справочной системы R.* |-| <code>summary(x)</code>: || функция общего назначения<ref>Т.е. используется для многих классов объектов.</ref>, выводит обобщённую информацию об объекте <code>x</code>, как правило, это набор статистических параметров.* |-| <code>str(x): </code> || отображает внутреннюю структуру R-объекта <code>x</code>.* |-| <code>ls()</code>: || выводит список всех объектов в заданном окружении (environment); с помощью аргумента <code>pattern</code> можно отфильтровать объекты по заданному шаблону.* |-| <ccodecode>ls.str()</code>: || отображает структуру всех R-объектов в заданном окружении.* |-| <code>dir()</code>: || отображает список файлов в указанной директории.* |-| <code>methods(x)</code>: || отображает S3-методы для объекта <code>x</code>.* |-| <code>methods(class = class(x))</code>: || список всех методов, обрабатывающих класс <code>x</code>.* |-| <code>findFn()</code>: || ищет функцию в базе данных справки пакетов и возвращает <code>data.frame</code> (пакет {{r-package|sos}}).|}
== Операторы ==
* {| class="prettytable wide"| <code><-</code>: || оператор присвоения (левый), бинарный.* |-| <code>-></code>: || оператор присвоения (правый), бинарный.* |-| <code>=</code>: || оператор присвоения (левый), не рекомендуется к использованию<ref>Используется в основном для присвоения значений аргументам функций.</ref>.* |-| <code><<-</code>: || оператор присвоения (левый) вне лексического контекста, не для начинающих.* |-| <code>$</code>: || подмножество списка, бинарный.|-| <code>-</code> || минус, может как унарным, так и бинарным.|-| <code>+</code> || плюс, может как унарным, так и бинарным.|-| <code>~</code> || тильда, используется для определения формул в моделировании.|-| <code>:</code> || двоеточие, бинарный, используется в формулах в моделировании для обозначения взаимодействия.|-| <code>::</code> || двойное двоеточие, используется для доступа к функции внутри пакета, без его предварительной загрузки <code>pkg::function</code>.|-| <code>*</code> || произведение, бинарный.|-| <code>/</code> || деление, бинарный.|-| <code>^</code> || возведение в степень, бинарный.|-| <code>%x%</code> || специальные бинарные операторы, <code>x</code> может быть заменён на любое допустимое имя.|-| <code>%%</code> || [http://ru.wikipedia.org/wiki/Неполное_частное остаток от деления], бинарный.|-| <code>%/%</code> || [http://ru.wikipedia.org/wiki/Неполное_частное неполное частное], бинарный.|-| <code>%*%</code> || [http://ru.wikipedia.org/wiki/Умножение_матриц умножение матриц], бинарный.|-| <code>%o%</code> || [http://ru.wikipedia.org/wiki/Тензорное_произведение тензорное произведение], бинарный.|-| <code>%x%</code> || [http://ru.wikipedia.org/wiki/Произведение_Кронекера произведение Кронекера], бинарный.|-| <code>%in%</code> || оператор соответствия, бинарный.|-| <code>!x</code> || логическое отрицание: НЕ <code>x</code>.|-| <code>x & y</code> || поэлементное логическое И.|-| <code>x && y</code> || логическое векторное И.|-| <code><nowiki>x | y</nowiki></code> || поэлементное логическое ИЛИ.|-| <code><nowiki>x || y</nowiki></code> || поэлементное векторное ИЛИ.|-| <code>xor(x, y)</code> || поэлементное исключающее ИЛИ.|-| <code><</code> || меньше чем, бинарный.|-| <code>></code> || больше чем, бинарный.|-| <code>==</code> || равно, бинарный.|-| <code><= </code> || меньше или равно, бинарный.|-| <code>>= </code> || больше или равно, бинарный.|} == Пакеты == {| class="prettytable wide"| <code>install.packages(“pkgs”, lib)</code> || загружает и установливает пакеты из репозитория <code>lib</code> или другого внешнего источника.|-| <code>update.packages</code> || проверка новых версий и рекомендаций к установке.|-| <code>library(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>.|}
== Примечания ==

Навигация