Первая лекция про R

Это просто текст.

2 + 3
## [1] 5
2 * (3 + 1)
## [1] 8
2 ^ 5
## [1] 32
3 ** 4
## [1] 81
x <- 10
y <- 20
x + y
## [1] 30
10 -> x
20 -> y
x + y
## [1] 30
10.0
## [1] 10
sqrt(2)
## [1] 1.414214
v <- c(1, 2, 3, 4)
w <- c(100, 200, 300, 400)
c(12, "hello", 32)
## [1] "12"    "hello" "32"
w[1]
## [1] 100
v + w
## [1] 101 202 303 404
3
## [1] 3
c(3) == 3
## [1] TRUE
123
## [1] 123
v <- rep(c(12, 3, 5),  100)
v
##   [1] 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3
##  [24]  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12
##  [47]  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5
##  [70] 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3
##  [93]  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12
## [116]  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5
## [139] 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3
## [162]  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12
## [185]  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5
## [208] 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3
## [231]  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12
## [254]  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5
## [277] 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3
## [300]  5
v[176]
## [1] 3
-4:30
##  [1] -4 -3 -2 -1  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18
## [24] 19 20 21 22 23 24 25 26 27 28 29 30
v[c(2, 3, 4)]
## [1]  3  5 12
v
##   [1] 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3
##  [24]  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12
##  [47]  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5
##  [70] 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3
##  [93]  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12
## [116]  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5
## [139] 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3
## [162]  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12
## [185]  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5
## [208] 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3
## [231]  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12
## [254]  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5
## [277] 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3
## [300]  5
v[c(-2, -30)]
##   [1] 12  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5
##  [24] 12  3  5 12  3 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5
##  [47] 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3
##  [70]  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12
##  [93]  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5
## [116] 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3
## [139]  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12
## [162]  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5
## [185] 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3
## [208]  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12
## [231]  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5
## [254] 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3
## [277]  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5
v[-c(2, 30)]
##   [1] 12  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5
##  [24] 12  3  5 12  3 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5
##  [47] 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3
##  [70]  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12
##  [93]  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5
## [116] 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3
## [139]  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12
## [162]  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5
## [185] 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3
## [208]  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12
## [231]  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5
## [254] 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3
## [277]  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5
v[length(v)-1]
## [1] 3
v[2:20]
##  [1]  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3  5 12  3
v <- c(1, 2, 3, 4, 5, 4, 10, 4, 2, 6)
v[v < 5]
## [1] 1 2 3 4 4 4 2
v < 5
##  [1]  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE
v <- c(1, 2, 3, 4)
w <- c(10, 20)
v + w
## [1] 11 22 13 24
v <- c(1, 2, 3, 4)
w <- c(10, 20, 30)
v + w
## Warning in v + w: longer object length is not a multiple of shorter object
## length
## [1] 11 22 33 14
v <- c(10, 20, 30, 40, 100, 18, 20, 100)
w <- v * c(1, 0)
w
## [1]  10   0  30   0 100   0  20   0
1:20
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
seq(1, 20, 3)
## [1]  1  4  7 10 13 16 19
v <- c(10, 20, 30)
names(v) <- c("alpha", "beta", "gamma")
v
## alpha  beta gamma 
##    10    20    30
v + c(100, 200, 300)
## alpha  beta gamma 
##   110   220   330
v["alpha"]
## alpha 
##    10
v[1]
## alpha 
##    10
w <- c(100, 200, 300)
names(w) <- c("beta", "alpha", "gamma")
v + w
## alpha  beta gamma 
##   110   220   330
unname(v)
## [1] 10 20 30
w[2] <- 1000
w
##  beta alpha gamma 
##   100  1000   300
w <- c(w, 200)
w
##  beta alpha gamma       
##   100  1000   300   200
sin(c(1, 2, 3, 2, 3))
## [1] 0.8414710 0.9092974 0.1411200 0.9092974 0.1411200
s <- "Hello, World!"
s
## [1] "Hello, World!"
s[2:4]
## [1] NA NA NA
substr(s, 2, 4)
## [1] "ell"
paste("Hello", "World", 2020)
## [1] "Hello World 2020"
paste("Hello", "World", sep = "_")
## [1] "Hello_World"
paste0("Hello", "World")
## [1] "HelloWorld"
my_list <- list(x=c(1, 2, 3), y="Hello")
my_list
## $x
## [1] 1 2 3
## 
## $y
## [1] "Hello"
my_list$x
## [1] 1 2 3
my_list[[1]]
## [1] 1 2 3
my_list[2]
## $y
## [1] "Hello"
my_list[[2]]
## [1] "Hello"
my_list[["x"]]
## [1] 1 2 3
my_list <- list(x = list(y = 2, z = 3), u = 100)
my_list$x$y
## [1] 2
list(1, y=2, 3, x= 4)
## [[1]]
## [1] 1
## 
## $y
## [1] 2
## 
## [[3]]
## [1] 3
## 
## $x
## [1] 4
for (i in c(1, 20, 5)) {
  print(i)
}
## [1] 1
## [1] 20
## [1] 5
for (i in 1:10) {
  print("Hello")
}
## [1] "Hello"
## [1] "Hello"
## [1] "Hello"
## [1] "Hello"
## [1] "Hello"
## [1] "Hello"
## [1] "Hello"
## [1] "Hello"
## [1] "Hello"
## [1] "Hello"
v <- 10
if (v == 10) {
  print("v == 10")
} else  {
  print("v != 10")
}
## [1] "v == 10"
v <- 10
if (v == 10) {
  print("v == 10")
} else if (v == 5)  {
  print("v == 5")
} else {
  print("v != 10")
}
## [1] "v == 10"
x <- 1
if (x == 1 || x == 2) {
  print("x is ok")
}
## [1] "x is ok"
# || = or
# && = and
my_func <- function(x, y) {
  x <- x * 2
  return (x + y)
}
my_func(10, 20)
## [1] 40
my_list = [1, 2, 3]
print(my_list[1])
## 2
my_list
## [1, 2, 3]
install.packages("knitr")
## 
## The downloaded binary packages are in
##  /var/folders/79/1y_t9vcx3ws9shyf4nd1vblc0000gn/T//RtmpzBw59p/downloaded_packages
dat <- data.frame(x=c(1, 2, 15), y=c(100, 200, 300), z=c("a", "b", "c"))
dat$x
## [1]  1  2 15
dat$y
## [1] 100 200 300
class(dat)
## [1] "data.frame"
as.numeric("12")
## [1] 12
as.character(12)
## [1] "12"
dat <- data.frame(x=c(1, 2, 15), y=c(100, 200, 300), z=c("a", "b", "c"))
dat
dat[,1]
## [1]  1  2 15
dat[1,]
dat[1, 2]
## [1] 100
dat[dat$x < 10]
dat[2]
plot(-20:20, sin(-20:20))