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