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

Материал Psylab.info - энциклопедии психодиагностики
Перейти к: навигация, поиск
м (Ввод и вывод из буфера обмена)
м (Ввод и вывод из буфера обмена)
Строка 255: Строка 255:
 
| 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>
 
| 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> из пакета {{s-package|psych}}.
  
 
== Примечания ==
 
== Примечания ==

Версия 05:29, 19 марта 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) выгружает пакет из памяти.

Индексирование векторов

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() из пакета Шаблон:S-package.

Примечания

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