2.1 Membuat Vektor
x <- c(10, 20, 30, 40, 50)
x
## [1] 10 20 30 40 50
length(x)
## [1] 5
Operasi Matematika pada Vektor
x <- c(10, 20, 30, 40, 50)
x + 5
## [1] 15 25 35 45 55
x * 2
## [1] 20 40 60 80 100
x / 10
## [1] 1 2 3 4 5
x^2
## [1] 100 400 900 1600 2500
Membuat Urutan Angka
1:10
## [1] 1 2 3 4 5 6 7 8 9 10
Atau
seq(1, 10)
## [1] 1 2 3 4 5 6 7 8 9 10
Jika ingin interval tertentu
seq(1, 10, by = 2)
## [1] 1 3 5 7 9
Mengulang data
x <- c(1, 2, 3)
rep(x, times = 3)
## [1] 1 2 3 1 2 3 1 2 3
x <- c(1, 2, 3)
rep(x, each = 3)
## [1] 1 1 1 2 2 2 3 3 3
2.4 Logical Vector
x <- c(10, 15, 20, 25, 30)
x > 20
## [1] FALSE FALSE FALSE TRUE TRUE
x[x > 20]
## [1] 25 30
2.5 Missing Value/NA
Mengecek missing value
x <- c(10, 20, NA, 40, 50)
is.na(x)
## [1] FALSE FALSE TRUE FALSE FALSE
Mengecek data yang tidak missing
x <- c(10, 20, NA, 40, 50)
x[!is.na(x)]
## [1] 10 20 40 50
2.6 Character Vector
nama <- c("Ani", "Budi", "Citra")
paste("Mahasiswa", 1:5)
## [1] "Mahasiswa 1" "Mahasiswa 2" "Mahasiswa 3" "Mahasiswa 4" "Mahasiswa 5"
Atau
nama <- c("Ani", "Budi", "Citra")
paste("Data", 1:5, sep = "")
## [1] "Data1" "Data2" "Data3" "Data4" "Data5"
2.7 Mengambil Sebagian Data
Contoh data
x <- c(10, 20, 30, 40, 50)
Ambil data ke-3
x <- c(10, 20, 30, 40, 50)
x[3]
## [1] 30
Ambil data 1 sampai 3
x[1:3]
## [1] 10 20 30
Ambil data >25
x[x > 25]
## [1] 30 40 50
Membuang data pertama
x[-1]
## [1] 20 30 40 50
3.1 Tipe Data
Misalnya
x <- c(10, 20, 30)
Cek tipe data
x <- c(10, 20, 30)
mode(x)
## [1] "numeric"
Cek jumlah data
x <- c(10, 20, 30)
length(x)
## [1] 3
3.2 Mengubah Tipe Data
Misalnya
x <- 1:5
Ubah menjadi character
x <- 1:5
x_char <- as.character(x)
Ubah kembali menjadi integer
x_num <- as.integer(x_char)
3.3 Mengubah Panjang Objek
x <- c(10, 20, 30)
x[5] <- 50
3.4 Atribut
Untuk melihat atribut
attributes(x)
## NULL
Untuk melihat atribut tertentu
attr(x, "dim")
## NULL
Contoh
z <- 1:100
attr(z, "dim") <- c(10,10)
z
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## [1,] 1 11 21 31 41 51 61 71 81 91
## [2,] 2 12 22 32 42 52 62 72 82 92
## [3,] 3 13 23 33 43 53 63 73 83 93
## [4,] 4 14 24 34 44 54 64 74 84 94
## [5,] 5 15 25 35 45 55 65 75 85 95
## [6,] 6 16 26 36 46 56 66 76 86 96
## [7,] 7 17 27 37 47 57 67 77 87 97
## [8,] 8 18 28 38 48 58 68 78 88 98
## [9,] 9 19 29 39 49 59 69 79 89 99
## [10,] 10 20 30 40 50 60 70 80 90 100
3.5 Class
Misalnya
x <- c(1,2,3)
class(x)
## [1] "numeric"
kalau matriks
M <- matrix(1:6, nrow = 2)
class(M)
## [1] "matrix" "array"
Buku menjelaskan bahwa class dapat berupa “matrix”, “array”, “factor”, “data.frame”, dan sebagainya.
4.0 Ordered and Unordered Factors
Misalnya
gender <- c("Laki-laki", "Perempuan", "Perempuan",
"Laki-laki", "Perempuan")
Membuat factor
gender <- c("Laki-laki", "Perempuan", "Perempuan",
"Laki-laki", "Perempuan")
gender_factor <- factor(gender)
gender_factor
## [1] Laki-laki Perempuan Perempuan Laki-laki Perempuan
## Levels: Laki-laki Perempuan
levels(gender_factor)
## [1] "Laki-laki" "Perempuan"
4.1 Mengapa Factor itu Penting?
Misalnya kita punya
nilai <- c(80, 70, 90, 60, 85)
kelas <- c("A", "B", "A", "C", "A")
Kita bisa membuat
nilai <- c(80, 70, 90, 60, 85)
kelas <- c("A", "B", "A", "C", "A")
kelas <- factor(kelas)
Sekarang R tahu bahwa A, B, dan C adalah kategori, bukan sekadar teks.
4.2 Tapply
Misalnya
nilai <- c(80, 70, 90, 60, 85)
kelas <- factor(c("A", "B", "A", "C", "A"))
Kita ingin mencari rata-rata setiap kelas Gunakan:
nilai <- c(80, 70, 90, 60, 85)
kelas <- factor(c("A", "B", "A", "C", "A"))
tapply(nilai, kelas, mean)
## A B C
## 85 70 60
4.3 Ordered Factor
Kalau kategorinya memiliki urutan Gunakan
ukuran <- c("Kecil", "Sedang", "Besar")
ukuran <- ordered(
ukuran,
levels = c("Kecil", "Sedang", "Besar")
)
ukuran
## [1] Kecil Sedang Besar
## Levels: Kecil < Sedang < Besar
5.1 Membuat Matrix
A <- matrix(
1:6,
nrow = 2,
ncol = 3
)
A
## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
5.2 Mengambil Elemen Matrix
Misalnya
A[1,2]
## [1] 3
Ambil baris pertama
A[1,]
## [1] 1 3 5
Ambil kolom kedua
A[,2]
## [1] 3 4
5.3 Array
z <- array(
1:24,
dim = c(3,4,2)
)
z
## , , 1
##
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
##
## , , 2
##
## [,1] [,2] [,3] [,4]
## [1,] 13 16 19 22
## [2,] 14 17 20 23
## [3,] 15 18 21 24
5.4 Matrix Multiplication
Misalnya
A <- matrix(c(1,2,3,4), nrow=2)
B <- matrix(c(5,6,7,8), nrow=2)
A * B
## [,1] [,2]
## [1,] 5 21
## [2,] 12 32
5.5 Transpose
A <- matrix(c(1,2,3,4), nrow=2)
t(A)
## [,1] [,2]
## [1,] 1 2
## [2,] 3 4
5.6 Determinan
A <- matrix(c(1,2,3,4), nrow=2)
det(A)
## [1] -2
5.7 Inverse Matrix
A <- matrix(c(2,1,1,3), nrow=2)
solve(A)
## [,1] [,2]
## [1,] 0.6 -0.2
## [2,] -0.2 0.4
5.8 Eigenvalue dan Eigenvector
Sm <- matrix(c(2,1,1,2), nrow=2)
Sm
## [,1] [,2]
## [1,] 2 1
## [2,] 1 2
eigen(Sm)
## eigen() decomposition
## $values
## [1] 3 1
##
## $vectors
## [,1] [,2]
## [1,] 0.7071068 -0.7071068
## [2,] 0.7071068 0.7071068
**5.9 cbind() dan rbind()
cbind()
x1 <- c(1, 2, 3)
x2 <- c(4, 5, 6)
X <- cbind(x1, x2)
X
## x1 x2
## [1,] 1 4
## [2,] 2 5
## [3,] 3 6
rbind
x1 <- c(1, 2, 3)
x2 <- c(4, 5, 6)
X <- rbind(x1, x2)
X
## [,1] [,2] [,3]
## x1 1 2 3
## x2 4 5 6
5.10 Frequency Table
gender <- factor(c(
"L", "P", "P", "L", "P", "L"
))
table(gender)
## gender
## L P
## 3 3