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