Vector
name1 <- 'Brian'
name2 <- 'Toby'
name_vec <- c('Brian', 'Toby', 'Sherry')
height_vec <- c(180,169,173)
x <- c(1,2,3,4)
y <- c(2,3,4,5)
x + y
## [1] 3 5 7 9
x - y
## [1] -1 -1 -1 -1
x * y
## [1] 2 6 12 20
x / y
## [1] 0.5000000 0.6666667 0.7500000 0.8000000
x <- c(1,2,3,4,5,6,7,8,9,10,11)
x <- 1:20
x
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
y <- seq(1,20)
y
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
?seq
## starting httpd help server ... done
seq(1,3.5, 0.5)
## [1] 1.0 1.5 2.0 2.5 3.0 3.5
seq(1,10, length = 2)
## [1] 1 10
seq(1,10, length = 3)
## [1] 1.0 5.5 10.0
x <- c(1,2,3,5,7)
sum(x)
## [1] 18
?sum
sum(seq(1,100))
## [1] 5050
height_vec <- c(180, 169, 173)
name_vec <- c('Brian', 'Toby' , 'Sherry')
names(height_vec) <- name_vec
height_vec
## Brian Toby Sherry
## 180 169 173
height_vec
## Brian Toby Sherry
## 180 169 173
height_vec > 175
## Brian Toby Sherry
## TRUE FALSE FALSE
height_vec < 175
## Brian Toby Sherry
## FALSE TRUE TRUE
height_vec >= 175
## Brian Toby Sherry
## TRUE FALSE FALSE
height_vec <= 175
## Brian Toby Sherry
## FALSE TRUE TRUE
height_vec == 180
## Brian Toby Sherry
## TRUE FALSE FALSE
height_vec != 180
## Brian Toby Sherry
## FALSE TRUE TRUE
height_vec[height_vec > 175]
## Brian
## 180
names(height_vec[height_vec > 175])
## [1] "Brian"
height_vec > 170 & height_vec < 180
## Brian Toby Sherry
## FALSE FALSE TRUE
height_vec > 170 | height_vec < 180
## Brian Toby Sherry
## TRUE TRUE TRUE
Matrix
kevin <- c(85,73)
marry <- c(72,64)
jerry <- c(59,66)
mat <- matrix(c(kevin, marry, jerry), nrow = 3, byrow = TRUE)
1:9
## [1] 1 2 3 4 5 6 7 8 9
matrix(1:9, nrow = 3)
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
matrix(1:9, nrow = 3, byrow = TRUE)
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
## [3,] 7 8 9
kevin <- c(85,73)
marry <- c(72,64)
jerry <- c(59,66)
mat <- matrix(c(kevin, marry, jerry), nrow = 3, byrow = TRUE)
colnames(mat) <- c('first', 'second')
rownames(mat) <- c('kevin', 'marry', 'jerry')
mat
## first second
## kevin 85 73
## marry 72 64
## jerry 59 66
mat2 <- matrix(c(kevin, marry, jerry), nrow = 3, byrow = TRUE, dimnames = list(c('kevin', 'marry', 'jerry'),c('first', 'second') ))
mat2
## first second
## kevin 85 73
## marry 72 64
## jerry 59 66
dim(mat)
## [1] 3 2
nrow(mat)
## [1] 3
ncol(mat)
## [1] 2
height_vec
## [1] 180 169 173
height_vec[1]
## [1] 180
height_vec[2]
## [1] 169
mat[1,]
## first second
## 85 73
mat[,1]
## kevin marry jerry
## 85 72 59
mat[2:3,]
## first second
## marry 72 64
## jerry 59 66
mat[2,1]
## [1] 72
mat2 <- rbind(mat, c(78,63))
mat2
## first second
## kevin 85 73
## marry 72 64
## jerry 59 66
## 78 63
rownames(mat2)
## [1] "kevin" "marry" "jerry" ""
rownames(mat2)[4] <- 'Sam'
mat2
## first second
## kevin 85 73
## marry 72 64
## jerry 59 66
## Sam 78 63
mat3 <- cbind(mat,c(82,77,70))
mat3
## first second
## kevin 85 73 82
## marry 72 64 77
## jerry 59 66 70
colnames(mat3)
## [1] "first" "second" ""
colnames(mat3)[3] <- 'third'
mat3
## first second third
## kevin 85 73 82
## marry 72 64 77
## jerry 59 66 70
m1 <- matrix(1:4, nrow = 2, byrow = TRUE)
m2 <- matrix(5:8, nrow = 2, byrow = TRUE)
m1 + m2
## [,1] [,2]
## [1,] 6 8
## [2,] 10 12
m1 - m2
## [,1] [,2]
## [1,] -4 -4
## [2,] -4 -4
m1 * m2
## [,1] [,2]
## [1,] 5 12
## [2,] 21 32
m1 / m2
## [,1] [,2]
## [1,] 0.2000000 0.3333333
## [2,] 0.4285714 0.5000000
mat
## first second
## kevin 85 73
## marry 72 64
## jerry 59 66
rowSums(mat)
## kevin marry jerry
## 158 136 125
colSums(mat)
## first second
## 216 203
?colSums
m1 %*% m2
## [,1] [,2]
## [1,] 19 22
## [2,] 43 50
matrix(1:9, byrow = TRUE) %*% c(1:9)
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
## [1,] 1 2 3 4 5 6 7 8 9
## [2,] 2 4 6 8 10 12 14 16 18
## [3,] 3 6 9 12 15 18 21 24 27
## [4,] 4 8 12 16 20 24 28 32 36
## [5,] 5 10 15 20 25 30 35 40 45
## [6,] 6 12 18 24 30 36 42 48 54
## [7,] 7 14 21 28 35 42 49 56 63
## [8,] 8 16 24 32 40 48 56 64 72
## [9,] 9 18 27 36 45 54 63 72 81