2*2
## [1] 4
sin(pi)
## [1] 1.224647e-16
x <- 2
5 -> y
x+y
## [1] 7
Так тоже можно использовать знак =, но не рекомендуется из-за соображений совместимости и стиля (см. также тут про разные способы приравниваний в R):
q=2
q+3
## [1] 5
l <- c(1,2,3,5,7,11)
print(l*2)
## [1] 2 4 6 10 14 22
print(sum(l))
## [1] 29
q=1:10
print(q)
## [1] 1 2 3 4 5 6 7 8 9 10
print(sum(q))
## [1] 55
x <- c(1,3,4)
y <- c(2,5,0)
plot(x,y)
Так мы нарисовали три точки с координатами соответственно \((1;2)\), \((3;5)\), \((4;0)\).
x <- 0:10
y <- sin(x) # поэлементно применили синус
print(y)
## [1] 0.0000000 0.8414710 0.9092974 0.1411200 -0.7568025 -0.9589243
## [7] -0.2794155 0.6569866 0.9893582 0.4121185 -0.5440211
plot(x,y)
x <- seq(0,10,by=0.1) # последовательность с шагом 0.2
print(x)
## [1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3
## [15] 1.4 1.5 1.6 1.7 1.8 1.9 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7
## [29] 2.8 2.9 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4.0 4.1
## [43] 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5.0 5.1 5.2 5.3 5.4 5.5
## [57] 5.6 5.7 5.8 5.9 6.0 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9
## [71] 7.0 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8.0 8.1 8.2 8.3
## [85] 8.4 8.5 8.6 8.7 8.8 8.9 9.0 9.1 9.2 9.3 9.4 9.5 9.6 9.7
## [99] 9.8 9.9 10.0
plot(x,sin(x))
plot(x,sin(x),type='l')
Есть и другие способы (например, curve, но о них позже).
s <- sample(c(0,1),10,replace=TRUE)
s
## [1] 0 0 1 0 0 0 0 0 0 0
Это реализация «урновой схемы с возвращением» (replace=TRUE). Проверим-ка закон больших чисел.
s <- sample(c(0,1),1000,replace=TRUE)
sum(s) # так можно посчитать число выпавших «орлов» (единичек)
## [1] 525
Но вообще для этого лучше использовать table:
table(s)
## s
## 0 1
## 475 525
Напомним, что случайная величина, распределенная биномиально с параметрами \(n\) и \(p\)$ — это число выпавших «орлов» при подбрасывании монетки \(n\) раз, если вероятность выпадения орла равна \(p\) (часто также говорят «число успехов» и «вероятность успеха»).
В R для каждого распределения есть четыре функции, начинающиеся с букв d, p, q, r, которые задают, соответственно, функции плотности (density), распределения (probability), квантилей (quantile) и генерирования выборки (random).
print(dbinom(1,3,0.5)) # вероятность получить ровно одного (1) орла при подбрасывании честной (0.5) монетки 3 раза
## [1] 0.375
print(pbinom(1,3,0.5)) # вероятность получить хотя бы 1 орла
## [1] 0.5
print(qbinom(0.5,3,0.5)) # функция, обратная к pbinom
## [1] 1
print(rbinom(10,3,0.5)) # сгенерировать 10 чисел, полученных как реализация данной случайной величины
## [1] 2 0 1 1 1 2 2 2 0 1
n <- 4
x <- 0:n
plot(x,dbinom(x,n,0.5))
Аналогичные 4 функции есть для нормального распределения.
print(dnorm(0))
## [1] 0.3989423
print(pnorm(0))
## [1] 0.5
print(qnorm(0.5))
## [1] 0
print(rnorm(0.5))
## numeric(0)
Картинки!
x=seq(-5,5,by=0.01)
plot(x,dnorm(x),type='l')
plot(x,dnorm(x,mean=1),type='l') # можно менять среднее
plot(x,dnorm(x,mean=1,sd=0.5),type='l') # и стандартное отклонение
dbinom для различных n и p. Нарисовать графики для n=5, 10, 100, 200 и p=0.5, 0.3, 0.1.pnorm. Что он означает? Как он связан с графиком dnorm?pbinom, а также с помощью pnorm (используя интегральную теорему Муавра—Лапласа).dbinom для n=10, p=0.5 и график плотности нормального распределения со средним \(5\) и стандартным отклонением \(sd=\sqrt{10\cdot 0{,}5\cdot 0{,}5}\). (Чтобы добавить кривую к уже нарисованной картинке, вместо plot следует использовать функцию lines.) Пояснить результат. Как следует поменять параметры нормального распределения, если вместо n=10 взять n=20?