bab 2

#Vector dan Assignment Vector = kumpulan data yang berurutan dan memiliki tipe yang sama. contoh

x <- c(10, 20, 30, 40, 50)
x <- c(10.4, 5.6, 3.1, 6.4, 21.7)

dan menjelaskan bahwa <- digunakan untuk memasukkan hasil ke sebuah objek.

Assignment

x <- 10

#Operasi Vector Operasi pada vector dilakukan elemen per elemen. Misalnya

x <- c(10, 20, 30)
y <- c(1, 2, 3)

x + y
## [1] 11 22 33
x <- c(2, 4, 6)

x + 2
## [1] 4 6 8
x - 2
## [1] 0 2 4
x * 2
## [1]  4  8 12
x / 2
## [1] 1 2 3
x ^ 2
## [1]  4 16 36

Fungsi matematika contoh:

sqrt(25)
## [1] 5
log(10)
## [1] 2.302585
exp(2)
## [1] 7.389056
sin(pi/2)
## [1] 1

Fungsi penting untuk statistik

x <- c(10, 20, 30, 40, 50)
mean(x)
## [1] 30
sum(x)
## [1] 150
length(x)
## [1] 5

#Membuat sequence

1:10
##  [1]  1  2  3  4  5  6  7  8  9 10

mundur

10:1
##  [1] 10  9  8  7  6  5  4  3  2  1
seq(1, 10, by = 2)
## [1] 1 3 5 7 9

menentukan jumlah data

seq(1, 10, length.out = 5)
## [1]  1.00  3.25  5.50  7.75 10.00

Mengulang data

rep(1:3, times = 3)
## [1] 1 2 3 1 2 3 1 2 3

sedangkan

rep(1:3, each = 3)
## [1] 1 1 1 2 2 2 3 3 3

times → mengulang seluruh vector each → mengulang setiap elemen

#Logical vector logical hanya mempunyai: true,false,na

contoh

nilai <- c(60, 70, 80, 90)

nilai > 75
## [1] FALSE FALSE  TRUE  TRUE

artinya 60 > 75 → FALSE 70 > 75 → FALSE 80 > 75 → TRUE 90 > 75 → TRUE

Operator Arti
< kurang dari
> lebih dari
<= kurang dari/sama
>= lebih dari/sama
== sama dengan
!= tidak sama

operator logika & # AND | # OR ! # NOT

contoh

nilai > 70 & nilai < 90
## [1] FALSE FALSE  TRUE FALSE

#Missing value-na NA berarti nilai tidak tersedia/missing. contoh:

x <- c(10, 20, NA, 40)

untuk mengecek

is.na(x)
## [1] FALSE FALSE  TRUE FALSE
x <- c(10, 20, NA, 40)

mean(x)
## [1] NA

Kalau ingin mengabaikan NA:

mean(x, na.rm = TRUE)
## [1] 23.33333

#Character vektor Character digunakan untuk menyimpan teks.

x <- c(10, 20, 30, 40, 50)

mengambil elemen ke 3

x[3]
## [1] 30

#indexing

mengambil elemen 1 sampai 3

x[1:3]
## [1] 10 20 30

mengambil elemen tertentu

x[c(1, 3, 5)]
## [1] 10 30 50

menghilangkan elemen

x[-3]
## [1] 10 20 40 50

bab 3

#mode and length Dua informasi dasar: mode() mengetahui tipe dasar objek

x <- c(10, 20, 30)

mode(x)
## [1] "numeric"
#mengetahui jumlah elemen
length(x)
## [1] 3

contoh

a <- 10
b <- "Statistika"
c <- TRUE
d <- 2 + 3i

#cek
mode(a)
## [1] "numeric"
mode(b)
## [1] "character"
mode(c)
## [1] "logical"
mode(d)
## [1] "complex"

#mengubah tipe data Gunakan fungsi as…(). contoh

x <- 1:5

as.character(x)
## [1] "1" "2" "3" "4" "5"

sebaliknya

x <- c("10", "20", "30")

as.numeric(x)
## [1] 10 20 30

#attributes Attribute adalah informasi tambahan yang melekat pada sebuah objek.

Cek:

attributes(x)
## NULL

contoh:

x <- 1:6
dim(x) <- c(2, 3)

x
##      [,1] [,2] [,3]
## [1,]    1    3    5
## [2,]    2    4    6

#class gunakan class(x) contoh:

x <- c(10, 20, 30)

class(x)
## [1] "numeric"

perbedaan sederhana mode() → tipe dasar data length() → jumlah elemen attributes() → informasi tambahan class() → jenis objek yang digunakan R

BAB 4

#faktor misalnya:

gender <- c(
  "Laki-laki",
  "Perempuan",
  "Laki-laki",
  "Laki-laki",
  "Perempuan"
)

gender_f <- factor(gender)
#cek
gender_f
## [1] Laki-laki Perempuan Laki-laki Laki-laki Perempuan
## Levels: Laki-laki Perempuan
#cek kategori
levels(gender_f)
## [1] "Laki-laki" "Perempuan"

#tapply() Fungsinya: melakukan suatu fungsi pada setiap kelompok

nilai <- c(80, 90, 70, 60, 85, 75)

kelas <- factor(c(
  "A", "A", "A",
  "B", "B", "B"
))

cari rata rata masing-masing kelas

tapply(nilai, kelas, mean)
##        A        B 
## 80.00000 73.33333

Ordered Factor

factor(c("Rendah", "Sedang", "Tinggi"))
## [1] Rendah Sedang Tinggi
## Levels: Rendah Sedang Tinggi

Kalau kategorinya memiliki urutan, gunakan:

ordered(
  c("Rendah", "Sedang", "Tinggi"),
  levels = c("Rendah", "Sedang", "Tinggi")
)
## [1] Rendah Sedang Tinggi
## Levels: Rendah < Sedang < Tinggi

bab 5

#array Array = kumpulan data yang memiliki beberapa dimensi. contoh

A <- array(1:24, dim = c(3, 4, 2))

#matrix array dengan 2 dimensi.

A <- matrix(
  c(1, 2, 3, 4, 5, 6),
  nrow = 2,
  ncol = 3
)

A
##      [,1] [,2] [,3]
## [1,]    1    3    5
## [2,]    2    4    6

#indexing matrix misal

A <- matrix(1:9, nrow = 3)

untuk mengambil: Baris 1 kolom 2

A[1, 2] 
## [1] 4

seluruh baris 1

A[1, ]
## [1] 1 4 7

#array() contoh:

A <- array(
  1:12,
  dim = c(3, 4)
)

untuk melihat dimensinya

dim(A)
## [1] 3 4

#Recycling Rule

x <- c(1, 2, 3)
x + 10
## [1] 11 12 13

#Outer Product

a <- c(1, 2, 3)
b <- c(10, 20)

a %o% b
##      [,1] [,2]
## [1,]   10   20
## [2,]   20   40
## [3,]   30   60

#Transpose Matrix baris menjadi kolom dan kolom menjadi baris.

A <- matrix(
  c(1, 2, 3, 4),
  nrow = 2
)

A
##      [,1] [,2]
## [1,]    1    3
## [2,]    2    4

#diag()

diag(c(1, 2, 3))
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    0    2    0
## [3,]    0    0    3

Mengambil diagonal matrix

A <- matrix(1:9, nrow = 3)

diag(A)
## [1] 1 5 9

#Inverse Matrix

A <- matrix(
  c(2, 1,
    1, 3),
  nrow = 2,
  byrow = TRUE
)
solve(A)
##      [,1] [,2]
## [1,]  0.6 -0.2
## [2,] -0.2  0.4

#Eigenvalue dan Eigenvector

A <- matrix(
  c(2, 1,
    1, 2),
  nrow = 2,
  byrow = TRUE
)
eigen(A)
## eigen() decomposition
## $values
## [1] 3 1
## 
## $vectors
##           [,1]       [,2]
## [1,] 0.7071068 -0.7071068
## [2,] 0.7071068  0.7071068

#Singular Value Decomposition — SVD

A <- matrix(
  c(1, 2,
    3, 4),
  nrow = 2,
  byrow = TRUE
)
svd(A)
## $d
## [1] 5.4649857 0.3659662
## 
## $u
##            [,1]       [,2]
## [1,] -0.4045536 -0.9145143
## [2,] -0.9145143  0.4045536
## 
## $v
##            [,1]       [,2]
## [1,] -0.5760484  0.8174156
## [2,] -0.8174156 -0.5760484

#Determinant

A <- matrix(
  c(2, 1,
    1, 3),
  nrow = 2,
  byrow = TRUE
)

det(A)
## [1] 5