R можно использовать как весёлый калькулятор:
5 + 9
## [1] 14
Что-нибудь более интересное:
a <- factorial(4)
b <- 2^3
a + b
## [1] 32
Признайся, шалунишка, ты всегда мечтал поделить на ноль?
a <- 1/0
a
## [1] Inf
Что можно делать с бесконечностью?
1/(a - 9)
## [1] 0
Возьмём арктангенс!
atan(Inf)
## [1] 1.571
Ба! Да это же \( \pi/2 \):
pi/2
## [1] 1.571
Но с неопределенностью ничего не поделаешь
0/0
## [1] NaN
NaN расшифровывается как <
Вектор из чисел по порядку:
a <- 3:10
a
## [1] 3 4 5 6 7 8 9 10
Вектор из одинаковых чисел:
b <- rep(777, times = 5)
b
## [1] 777 777 777 777 777
Вектор из конкретных чисел:
vect <- c(5, -4, 1)
Что можно делать с вектором?
sum(vect)
## [1] 2
Хотите среднее арифметическое?
mean(vect)
## [1] 0.6667
Хочу 300 случайныхх натуральных чисел от 1 до 5 с повторами! И побыстрее!
h <- sample(1:5, 300, rep = TRUE)
Краткая информация о векторе \( h \) и начало вектора \( h \)
str(h)
## int [1:300] 2 3 1 1 4 2 2 1 5 1 ...
head(h)
## [1] 2 3 1 1 4 2
Хочу сгенирировать выборку из 500 значений случайной величины \( X \) с вероятностями:
\( X \) | -2 | 3 | 7 |
---|---|---|---|
\( P() \) | 0.1 | 0.2 | 0.7 |
Зададим вектор вектор возможных значений и вектор вероятностей
x.val <- c(-2, 3, 7)
x.pr <- c(0.1, 0.2, 0.7)
Получаем выборку из 500 значений:
s <- sample(x.val, 500, rep = TRUE, x.pr)
str(s)
## num [1:500] -2 7 3 3 7 7 3 7 3 3 ...
Первое шаманское заклинание, вызывает духов-построителей красивых графиков!
require(ggplot2)
## Loading required package: ggplot2
Простенькая гистограмма
qplot(factor(s), main = "Гистограмма")
И еще простенький график
x <- rnorm(500) # 500 нормальных величин со средним 0 и дисперсией 1
y <- rnorm(500) # 500 нормальных величин со средним 0 и дисперсией 1
qplot(x, y, main = "Точечки")
Выберем из вектора \( s \) значения больше \( 0 \):
b <- s[s > 0]
b
## [1] 7 3 3 7 7 3 7 3 3 7 7 7 7 7 7 3 7 7 7 7 7 3 7 7 7 7 7 7 7 7 3 7 7 7 7
## [36] 7 7 7 3 7 7 7 7 3 7 7 7 3 7 3 3 3 7 7 7 7 3 3 3 7 7 7 7 3 7 3 7 3 7 7
## [71] 7 7 3 7 3 7 7 7 7 3 7 7 7 3 7 7 7 7 3 7 7 7 7 3 7 3 3 7 7 7 7 3 3 7 7
## [106] 7 7 7 7 7 3 3 3 7 7 7 7 7 7 3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
## [141] 7 7 7 3 3 7 7 7 7 7 3 7 3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 3 7 3 3 3 7 3 3
## [176] 7 3 7 7 3 7 7 7 7 7 7 7 7 7 7 7 7 7 3 7 3 3 7 7 3 3 7 7 7 7 7 3 7 3 7
## [211] 7 7 7 3 7 7 3 7 7 7 7 7 7 7 7 7 7 7 3 7 7 7 7 3 3 7 3 3 7 3 7 7 7 3 7
## [246] 7 3 7 7 3 7 7 7 7 3 7 7 7 7 7 7 7 7 3 7 3 7 7 3 7 3 7 7 7 7 7 3 3 3 7
## [281] 7 7 7 7 7 7 3 7 3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 3 7 7 7 7 3 7 7 7 7 7 7
## [316] 7 3 7 3 7 7 7 3 7 7 3 7 7 7 7 7 7 7 7 3 7 7 7 3 7 3 7 7 7 7 3 3 3 7 7
## [351] 3 7 7 7 7 7 7 7 7 7 3 3 7 7 7 7 7 7 7 7 7 3 7 7 7 7 7 3 7 3 7 7 7 7 7
## [386] 3 7 7 3 7 7 3 3 3 3 3 7 3 3 7 3 3 3 7 7 3 7 7 7 7 3 7 7 7 7 7 7 3 7 3
## [421] 7 3 7 7 7 3 3 7 7 7 7 3 7 3 7 7 7 7 7 7 7 7 7 3 7 7 7 3
str(b)
## num [1:448] 7 3 3 7 7 3 7 3 3 7 ...
Можно выбрать конкретные \( s \), например с 6-го по 20-ое:
s[6:20]
## [1] 7 3 7 3 3 7 7 7 7 7 7 3 -2 -2 7
Хочу 5-ое, 7-ое и 13-ое!
s[c(5, 7, 13)]
## [1] 7 3 7
Можно узнать, сколько значений равно 3:
sum(s == 3)
## [1] 115
Еще полезная штучка — количество чисел в векторе
length(b)
## [1] 448