Функции R

Функции R

В R очень много разных функций, встроенных в язык и ещё больше доступно в многочисленных пакетах.
Часть их представлена здесь и снабжена ссылками на онлайн руководства.

Итеративные управляющие структуры (циклы типа for, while, repeat и т. д.) —
допускают повторение инструкций несколько раз. Однако при крупномасштабной обработке данных,
использование этих циклов может занять больше времени и места. Язык R имеет более эффективный и
быстрый подход к выполнению итераций с помощью функций.
Ниже представлен обзор некоторых функций R.

help(topic), ?topic — справка про topic
help.search("pattern"), ??pattern — 
глобальный поиск pattern
help(package = ) — справка о заданном пакете
help.start() — запустить помощь в браузере
apropos(what) — имена объектов,
 которые соответствуют what
args(name) — аргументы команды name
example(topic) — примеры использования topic
Текущее окружение
ls() — список всех объектов
rm(x) — удалить объект
dir() — показать все файлы в текущей директории
getwd() — получить текущую директорию
setwd(dir) — поменять текущую директорию на dir
Общая работа с объектами
str(object) — внутренняя структура объекта object
summary(object) — общая информация об объекте object
dput(x) — получить представление объекта
 в R-синтаксисе
head(x) — посмотреть начальные строки объекта
tail(x) — посмотреть последние строки объекта
Ввод и вывод
library(package) — подключить пакет package
save(file, ...) — сохраняет указанные объекты
 в двоичном XDR-формате,
 который не зависит от платформы
load() — загружает данные, сохранённые ранее
 с помощью команды save()
read.table — считывает таблицу данных
 и создаёт по ним data.frame
write.table — печатает объект,
 конвертируя его в data.frame
read.csv — считывает csv-файл
read.delim — считывание данных,
 разделённых знаками табуляции
save.image — сохраняет все объекты в файл
cat(..., file= , sep= ) — сохраняет аргументы,
 конкатенируя их через sep
sink(file) — выводит результаты выполнения
 других команд в файл в режиме реального времени
 до момента вызова этой же команды без аргументов
Создание объектов
from:to — генерирует последовательность
 чисел от from до to с шагом 1, например 1:3
с(...) — объединяет аргументы в вектор,
 например c(1, 2, 3)
seq(from, to, by = ) — генерирует последовательность
 числел от from до to с шагом by
seq(from, to, len = ) — генерирует последовательность
 числел от from до to длины len
rep(x, times) — повторяет x ровно times раз
list(...) — создаёт список объектов
data.frame(...) — создаёт фрейм данных
array(data, dims) — создаёт из data многомерные массив размерностей dim
matrix(data, nrow = , ncol = , byrow = ) — создаёт из data матрицу nrow на ncol,
 порядок заполнения определяется byrow
factor(x, levels = ) — создаёт из x фактор
 с уровнями levels
gl(n, k, length = n*k, labels = 1:n)
 — создаёт фактор
 из n уровней,
 каждый из которых повторяется k раз длины length
 с именами labels
rbind(...) — объединяет аргументы по строкам
cbind(...) — объединяет аргументы по столбцам

Векторы

x[n]
n-ый элемент
x[-n]
все элементы, кроме n-го
x[1:n]
первые n элементов
x[-(1:n)]
все элементы, кроме первых n
x[c(1,4,2)]
элементы с заданными индексами
x["name"]
элемент с заданным именем
x[x > 3]
все элементы, большие 3
x[x > 3 & x < 5]
все элементы между 3 и 5
x[x %in% c("a","and","the")]
все элементы из заданного множества
Списки

x[n]
список, состоящий из элемента n
x[[n]]
n-ый элемент списка
x[["name"]]
элемент списка с именем name
x$name
элемент списка с именем name
Матрицы

x[i, j]
элемент на пересечении i-ой строки и j-го столбца
x[i,]
i-ая строка
x[,j]
j-ый столбец
x[,c(1,3)]
заданное подмножество столбцов
x["name", ]
строка с именем name
Фреймы
x[["name"]]
столбец с именем name
x$name
столбец с именем name
Работа с переменными
as.array(x)as.data.frame(x)as.numeric(x),
 as.logical(x)as.complex(x)as.character(x) 
— преобразование переменной к заданному типу
 is.na(x)is.null(x),is.array(x)is.data.frame(x),
 is.numeric(x)is.complex(x)is.character(x)
 проверка на то, что данный объект обладает указанным типом
length(x) — число элементов в x
dim(x) — размерности объекта x
dimnames(x) — имена размерностей объекта x
names(x) — имена объекта x
nrow(x) — число строк x
ncol(x) — число столбцов x
class(x) — класс объекта x
unclass(x) — удаляет атрибут класса у объекта x
attr(x,which) — атрибут which объекта x
attributes(obj) — список атрибутов объекта obj
Манипуляция данными
which.max(x) — индекс элемента с максимальным значением
which.min(x) — индекс элемента с минимальным значением
rev(x) — реверсирует порядок элементов
sort(x) — сортирует элементы объекта по возрастанию
cut(x,breaks) — делит вектор на равные интервалы
match(x, y) — ищет элементы x, которые есть в y
which(x == a) — возвращает порядковые элементы x,
 которые равны a
na.omit(x) — исключает отсутствующие значения объекта
na.fail(x) — бросает исключение,
 если объект содержит отсутствующие значения
unique(x) — исключает из объекта повторяющиеся элементы
table(x) — создаёт таблицу
 с количеством повторений каждого уникального элемента
subset(x, ...) —
 возвращает подмножество элемента,
 которое соответствует заданному условию
sample(x, size) — возвращает случайный набор
 размера size из элементов x
replace(x, list, values) — заменяет значения x
 c индексами из list значениями из values
append(x, values) — добавляет элементы values
 в вектор x
Математика
sin(x), cos(x), tan(x), asin(x),
 acos(x), atan(x), atan2(y, x),
 log(x), log(x, base), log10(x), exp(x) 
— элементарные математические функции
min(x), max(x) — минимальный и максимальный
 элементы объекта
range(x) — вектор из минимального и максимального
 элемента объекта
pmin(x, y), pmax(x, y) —
 возвращают вектор с минимальными (максимальными) для каждой пары x[i], y[i]
sum(x) — сумма элементов объекта
prod(x) — произведение элементов объекта
diff(x) — возвращает вектор из разниц
 между соседними элементами
mean(x) — среднее арифметическое элементов объекта
median(x) — медиана (средний элемент) объекта
weighted.mean(x, w) — средневзвешенное объекта x
 (w определяет веса)
round(x, n) — округляет x до n знаков после запятой
cumsum(x), cumprod(x), cummin(x), cummax(x) 
— кумулятивные суммы,
 произведения, минимумы и максимумы вектора x
 (i-ый элемент содержит статистику по элементам x[1:i])
union(x, y), intersect(x, y),
 setdiff(x,y), setequal(x,y), is.element(el,set) —
 операции над множествами:
 объединение, пересечение, разность,
 сравнение, принадлежность
Re(x), Im(x), Mod(x), Arg(x), Conj(x) 
— операции над комплексными числами:
 целая часть, мнимая часть, модуль,
 аргумент, сопряжённое число
fft(x), mvfft(x) — быстрое преобразование Фурье
choose(n, k) — количество сочетаний
rank(x) — ранжирует элементы объекта
Матрицы
%*% — матричное умножение
t(x) — транспонированная матрица
diag(x) — диагональ матрицы
solve(a, b) — решает систему уравнений a %*% x = b
solve(a) — обратная матрица
colSums, rowSums, colMeans, rowMeans — 
суммы и средние по столбцам и по строкам
Обработка данных
apply(X,INDEX,FUN=) — возвращает вектор,
 массив или список значений,
 полученных путем применения функции
 FUN к определенным элементам массива или матрицы x;
 подлежащие обработке элементы х 
указываются при помощи аргумента MARGIN;
lapply(X,FUN) —
 возвращает список той же длины,
 что и х;
 при этом значения в новом списке
 будут результатом применения функции
 FUN к элементам исходного объекта х
tapply(X,INDEX,FUN=) — применяет функцию FUN
 к каждой совокупности значений х,
 созданной в соответствии с уровнями
 определенного фактора;
 перечень факторов указывается при помощи
 аргумента INDEX
by(data,INDEX,FUN) — аналог tapply(),
 применяемый к таблицам данных
merge(a,b) — объединяет две таблицы данных
 (а и b) по общим столбцами или строкам
aggregate(x,by,FUN) — разбивает таблицу данных х
 на отдельные наборы данных,
 применяет к этим наборам определенную функцию
 FUN и возвращает результат в удобном для чтения формате
stack(x, ...) — преобразует данные,
 представленные в объекте х в виде отдельных столбцов,
 в таблицу данных
unstack(x, ...) — выполняет операцию,
 обратную действию функции stack()
reshape(x, ...) — преобразует таблицу данных
 из «широкого формата»
 (повторные измерения какой-либо
 величины записаны в отдельных столбцах таблицы)
 в таблицу "узкого формата"
 (повторные измерения идут одно под
 одним в пределах одного столбца)
Строки
print(x) — выводит на экран x
sprintf(fmt, ...) — форматирование текста в C-style
 (можно использовать %s, %.5f и т.п.)
format(x) — форматирует объект x так,
 чтобы он выглядел красиво при выводе на экран
paste(...) — конвертирует векторы
 в текстовые переменные и объединяет их в одно текстовое выражение
substr(x,start,stop) — получение подстроки
strsplit(x,split) — разбивает строку х
 на подстроки в соответствии с split
grep(pattern,x) (а также grepl, regexpr, gregexpr, regexec)
 — поиск по регулярному выражению
gsub(pattern,replacement,x) (а также sub) 
— замена по регулярному выражению
tolower(x) — привести строку к нижнему регистру
toupper(x) — привести строку к верхнему регистру
match(x,table), x %in% table — 
выполняет поиск элементов в векторе table,
 которые совпадают со значениями из вектора х
pmatch(x,table) — выполняет поиск элементов в векторе table,
 которые частично совпадают с элементами вектора х
nchar(x) — возвращает количество знаков в строке х
Дата и время
as.Date(s) — конвертирует вектор s
 в объект класса Date
as.POSIXct(s) — конвертирует вектор s
 в объект класса POSIXct
Рисование графиков
plot(x) — график x
plot(x, y) — график зависимости y от x
hist(x) — гистограмма
barplot(x) — столбчатая диаграмма
dotchart(x) — диаграмма Кливленда
pie(x) — круговая диаграмма
boxplot(x) — график типа "коробочки с усами"
sunflowerplot(x, y) — то же, что и plot(),
 однако точки с одинаковыми координатами
 изображаются в виде "ромашек",
 количество лепестков у которых
 пропорционально количеству таких точек
coplot(x˜y | z) — график зависимости y от x
 для каждого интервала значений z
interaction.plot(f1, f2, y) — если f1 и f2 — факторы,
 эта функция создаст график со средними значениями y
 в соответствии со значениями f1 (по оси х) и f2
 (по оси у, разные кривые)
matplot(x, y) — график зависимости столбцов y от столбцов x
fourfoldplot(x) — изображает (в виде частей окружности)
 связь между двумя бинарными переменными
 в разных совокупностях
assocplot(x) — график Кохена-Френдли
mosaicplot(x) — мозаичный график остатков
 лог-линейной регрессии
pairs(x) — если х - матрица или таблица данных,
 эта функция изобразит диаграммы рассеяния
 для всех возможных пар переменных из х
plot.ts(x)ts.plot(x) — изображает временной ряд
qqnorm(x) — квантили
qqplot(x, y) — график зависимости квантилей y
 от квантилей х
contour(x, y, z) —
 выполняет интерполяцию данных и создает контурный график
filled.contour(x, y, z) — то же, что contour(),
 но заполняет области между контурами
 определёнными цветами
image(x, y, z) — отображает исходные данные
 в виде квадратов,
 цвет которых определяется значениями х и у
persp(x, y, z) — то же, что и image(),
 но в виде трехмерного графика
stars(x) — если x — матрица или таблица данных,
 изображает график в виде "звезд" так,
 что каждая строка представлена "звездой",
 а столбцы задают длину сегментов этих "звезд"
symbols(x, y, ...) — отображает различные символы
 в соответствии с координатами
termplot(mod.obj) — отображает частные
 эффекты переменных из регрессионной модели
Рисование графиков на низком уровне
points(x, y) — рисование точек
lines(x, y) — рисование линии
text(x, y, labels, ...) 
— добавление текстовой надписи
mtext(text, side=3, line=0, ...) 
— добавление текстовой надписи
segments(x0, y0, x1, y1) — рисование отрезка
arrows(x0, y0, x1, y1, angle= 30, code=2) 
— рисование стрелочки
abline(a,b) — рисование наклонной прямой
abline(h=y) — рисование вертикальной прямой
abline(v=x) — рисование горизонтальной прямой
abline(lm.obj) — рисование регрессионной прямой
rect(x1, y1, x2, y2) — рисование прямоугольника
polygon(x, y) — рисование многоугольника
legend(x, y, legend) — добавление легенды
title() — добавление заголовка
axis(side, vect) — добавление осей
rug(x) — рисование засечек на оси X
locator(n, type = "n", ...) —
 возвращает координаты на графике,
 в которые кликнул пользователь
Lattice-графика
xyplot(y˜x) — график зависимости у от х
barchart(y˜x) — столбчатая диаграмма
dotplot(y˜x) — диаграмма Кливленда
densityplot(˜x) — график плотности распределения
 значений х
histogram(˜x) — гистограмма значений х
bwplot(y˜x) — график типа "коробочки с усами"
qqmath(˜x) — аналог функции qqnorm()
stripplot(y˜x) — аналог функции stripplot(x)
qq(y˜x) — изображает квантили распределений х и у
 для визуального сравнения этих распределений;
 переменная х должна быть числовой,
 переменная у - числовой, текстовой, или фактором с двумя уровнями
splom(˜x) — матрица диаграмм рассеяния 
(аналог функции pairs())
levelplot(z˜xy|g1g2) —
 цветной график значений z,
 координаты которых заданы переменными х и у
 (очевидно, что x, y и z должны иметь одинаковую длину)
 g1, g2...
 (если присутствуют) — факторы или числовые переменные,
 чьи значения автоматически разбиваются
 на равномерные отрезки
wireframe(z˜xy|g1g2) —
 функция для построения трехмерных диаграмм
 рассеяния и плоскостей;
 z, x и у - числовые векторы; g1, g2... 
(если присутствуют) - факторы или числовые переменные,
 чьи значения автоматически разбиваются
 на равномерные отрезки
cloud(z˜xy|g1g2) — трёхмерная диаграмма рассеяния
Оптимизация и подбор параметров
optim(par, fn, method = ) — оптимизация общего назначения
nlm(f,p) — минимизация функции f алгоритмом Ньютона
lm(formula) — подгонка линейной модели
glm(formula,family=) —
 подгонка обобщённой линейной модели
nls(formula) — нелинейный метод наименьших квадратов
approx(x,y=) — линейная интерполяция
spline(x,y=) — интерполяция кубическими сплайнами
loess(formula) — подгонка полиномиальной поверхности
predict(fit,...) — построение прогнозов
coef(fit) — расчётные коэффициенты
Статистика
sd(x) — стандартное отклонение
var(x) — дисперсия
cor(x) — корреляционная матрица
var(x, y) — ковариация между x и y
cor(x, y) — линейная корреляция между x и y
aov(formula) — дисперсионный анализ
anova(fit,...) — дисперсионный анализ
 для подогнанных моделей fit
density(x) — ядерные плотности вероятностей
binom.test() — точный тест простой гипотезы
 о вероятности успеха в испытаниях Бернулли
pairwise.t.test() —
 попарные сравнения нескольких независимых
 или зависимых выборок
prop.test() —
 проверка гипотезы о том,
 что частоты какого-либо признака равны
 во всех анализируемых группах
t.test() — тест Стьюдента
Распределения
rnorm(n, mean=0, sd=1) — нормальное распределение
rexp(n, rate=1) — экспоненциальное распределение
rgamma(n, shape, scale=1) — гамма-распределение
rpois(n, lambda) — распределение Пуассона
rweibull(n, shape, scale=1) — распределение Вейбулла
rcauchy(n, location=0, scale=1) — распределение Коши
rbeta(n, shape1, shape2) — бета-распределение
rt(n, df) — распределение Стьюдента
rf(n, df1, df2) — распределение Фишера
rchisq(n, df) — распределение Пирсона
rbinom(n, size, prob) — биномиальное распределение
rgeom(n, prob) — геометрическое распределение
rhyper(nn, m, n, k) — гипергеометрическое распределение
rlogis(n, location=0, scale=1) —
 логистическое распределение
rlnorm(n, meanlog=0, sdlog=1) —
 логнормальное распределение
rnbinom(n, size, prob) — отрицательное биномиальное распределение
runif(n, min=0, max=1) — равномерное распределение
Программирование и
работа с функциями:
function(arglist) { expr } — создание пользовательской функции
return(value) — возвращение значения
do.call(funname, args) — вызывает функцию по имени
Условные операторы:
if(cond) expr
if(cond) cons.expr else alt.expr
ifelse(test, yes, no)
Циклы:
for(var in seq) expr
while(cond) expr
repeat expr
break — остановка цикла

Оставить комментарий