Bagian putih dari R Markdown (.Rmd) berguna untuk menulis narasi.
Pada bagian ini dapat ditambahkan heading dengan menambahkan hashtag
#
sebelum kalimat. Narasi yang tidak ditambahkan
#
sebelum kalimat akan menjadi paragraf biasa.
Bagian abu-abu dari Rmarkdown adalah chunk
. Chunk
berguna untuk menulis code.
# ini adalah sebuah comment
Tips gunakan shortcut untuk membuat, dan menjalankan chunk agar lebih efisien. - membuat chunk : ctrl + alt + i - menjalankan satu baris pada chunk : ctrl + enter - menjalankan seluruh baris pada chunk : ctrl + shift + enter
Untuk pengolahan data di R, data atau sebuah value dapat
disimpan/diassign ke dalam object. Untuk assign object dapat menggunakan
<-
dan hasilnya akan tersimpan pada environment.
Tips gunakan shortcut alt + -
untuk
membuat tanda <-
nama <- "victor"
nama
## [1] "victor"
apabila object yang sama diisi dengan nilai yang berbeda maka nilai yang akan diambil adalah nilai terakhir.
apa isi dari object object1
?
oject1 <- "laptop"
oject1
## [1] "laptop"
object1 <- "monitor"
object1
## [1] "monitor"
R merupakan bahasa pemrograman yang case sensitive, hal ini berarti penamaan kapital dan non-kapital sangat berpengaruh.
object1
## [1] "monitor"
Object1
Untuk memasukan narasi dalam chunk dapat menggunakan
comment dengan menambahkan #
sebelum
narasi tersebut. Comment tidak dianggap sebagai codingan dalam chunk,
sehingga tidak akan menimbulkan error.
object1 <- "monitor" # cara save sebuah value ke object dengan menggunakan simbol <-
Tips untuk memberikan comment bisa menggunakan
shortcut ctrl + shift + c
# object1 <- "laptop"
Dive Deeper 1 (5- 10 menit)
nama
: nama andadivisi
: divisi anda di BCAtempat
: lokasi kantor andaperiode
: lama anda berada di BCA (dalam satuan
tahun)setelah membuat keempat object diatas, berikan komentar pada setiap akhir baris
# Contoh
tempat <- "MSC" # Menara Standard Chartered lv 31
periode <- 3 # 2018 - 2021
# code here
nama <- "Victor" # nama pendek
divisi <- "Product" # Instructor
tempat <- "MSC" # Lantai 31
periode <- "1 Tahun" # Dari tahun 2021
tahun
dibawah berisi value 2019. ubah object
tahun dengan 2021
dengan melakukan
overwrite pada object tahuntahun <- 2019
tahun <- 2021
untuk mengetahui lokasi directory dari lokasi Rmd bisa menggunakan
fungsi getwd()
getwd()
## [1] "C:/Users/Victor/Downloads/BCA Foundation Class/foundation BCA"
Tipe data yang berisi huruf/karakter. ciri2 : diawali dan diakhir dengan tanda petik (““)
untuk mengetahui tipe data pada suatu object bisa menggunakan fungsi
class()
nama <- "David"
divisi <- "product"
class(nama)
## [1] "character"
class(divisi)
## [1] "character"
Tipe data berisi angka yang dapat berupa angka kontinu (ada koma/pecahan), maupun diskrit (bilangan bulat tanpa koma).
periode <- 1.3
# beberapa nilai gunakan c()
class(periode)
## [1] "numeric"
angka <- 1
class(angka)
## [1] "numeric"
Tipe data berisi angka yang berupa angka diskrit (bilangan bulat tanpa koma). Umumnya dari data ID (costumer ID, transaction ID, dll). Untuk memaksa numeric menjadi integer, dapat gunakann L dibelakang angka.
obj_int <- c(1L,12L, 33L,11L)
class(obj_int)
## [1] "integer"
Tipe data yang hanya berisi TRUE
atau
FALSE
. Penulisan TRUE/FALSE dapat disingkat menjadi
T/F.
status <- c(TRUE, FALSE, T, F)
class(status)
## [1] "logical"
Bagaimana bila campuran
mix <- c(1000, TRUE, "Tempe")
class(mix)
## [1] "character"
mix
## [1] "1000" "TRUE" "Tempe"
Dive Deeper 2
Dive Deeper 3 (10 - 15 menit)
buat 5 buah vector c()
dengan nama object dan isi
sebagai berikut
fungsi untuk membuat : c()
karakteristk : - 1 dimensi (baris saja) - hanya bisa menampung 1 tipe
data yang sama saja
deret_angka <- c(1, 1.5, 2, 2.5)
nama <- c("Nabiilah", "Yosia", "Agnes", "Victor")
nama
## [1] "Nabiilah" "Yosia" "Agnes" "Victor"
cara subset vector menggunakan []
bagaimana caranya bila saya ingin mengambil value “Agnes” pad object nama?
nama[4] # index pada R mulai dari 1
## [1] "Victor"
factor merupkan bentuk perkembangan dari vector, yang membedakan vector dan factor adalah pada factor objek memiliki levels.
card <- c("Gold", "Platinum", "Silver", "Silver", "Gold")
card <- factor(card)
card
## [1] Gold Platinum Silver Silver Gold
## Levels: Gold Platinum Silver
fungsi untuk membuat : list()
karakteristik : -
berdimensi 1 (satu kolom) - dapat memiliki lebih dari 1 tipe data
list_temp <- list(2000, TRUE, c("tempe", "tahu"))
list_temp
## [[1]]
## [1] 2000
##
## [[2]]
## [1] TRUE
##
## [[3]]
## [1] "tempe" "tahu"
cara subset-nya?
list_temp[[3]][2]
## [1] "tahu"
fungsi untuk membuat : matrix()
karakteristik: - 2
dimensi (baris dan kolom) - hanya bisa satu tipe data saja
mat1 <- matrix(11:16, nrow = 2)
mat2 <- matrix(divisi, nrow = 1)
cara subset matrix dengan menggunakan [index baris, index kolom]
# mengambil angka 13
mat1[1,2]
## [1] 13
# mengambil angka 16
mat1[2,3]
## [1] 16
fungsi untuk membuat: data.frame()
karakteristik : -
bisa lebih dari 1 tipe data - berdimensi 2 (baris dan kolom)
notes : dbl == num
buah_df <- data.frame(buah = c("Mangga", "Apel", "Durian"),
ukuran = c(14, 10, 25))
buah_df
## buah ukuran
## 1 Mangga 14
## 2 Apel 10
## 3 Durian 25
bagaimana cara mengambil nilai pada kolom buah saja
buah_df$buah
## [1] "Mangga" "Apel" "Durian"
Dive Deeper 4 (5 - 7 menit)
Buat sebuah data frame yang bernama bca_df
yang berisi
nama, divisi, tempat, periode, programming. Gunakan vector pada latihan
sebelumnya.
# Code here
Statistik deskriptif adalah statistik yang digunakan untuk menggambarkan kondisi (karakter) dari data. Terdapat 3 hal bagian dalam statistik deskriptif yaitu: 1. Ukuran Pemusatan Data 2. Ukuran Persebaran Data 3. Hubungan Antar data
pada foundation class ini kita akan membahas ukuran pemusatan data saja, selebihnya akan dibahas di kelas Practical statistics.
Ukuran pemusatan data menggambarkan dimana data berkumpul yang diwakili oleh sebuah nilai tertentu. Terdapat 3 cara untuk mengetahui ukuran pemusatan:
Cara paling umum untuk membuat perkiraan nilai tunggal dari data yang banyak adalah dengan merata-ratakannya.
Contoh : Data nasabah BCA yang datang ke cabang AAA dalam 10 hari terakhir
pengunjung <- c(1032, 43, 41, 33, 50, 49,39,37,46, 37)
# hitung rata2 dengan mean()
mean(pengunjung)
## [1] 140.7
# cek panjang vector dengan length()
length(pengunjung)
## [1] 10
Kelebihan Mean: - semua data terlibat - semua data memiliki bobot yang sama
Kekurangan Mean: * sensitif terhadap outlier
Median atau nilai tengah diperoleh dengan mengurutkan data terlebih dahulu kemudian mencari nilai tengah dari data.
# median
median(pengunjung)
## [1] 42
sort(pengunjung) # 10 data
## [1] 33 37 37 39 41 43 46 49 50 1032
Kelebihan: - Outlier tidak mempengaruhi hasil
Kelemahan: - data yang terlibat hanya data yang berada di tengah saja (1 atau 2 data)
Knowledge Check Ukuran pemusatan data
pengunjung
lebih tepat diwakili oleh mean/median? kenapa?
Jawaban: median, karena biar tidak sensitif dengan nilai outlier
Pilihan lain bila dengan menggunakan trimmed mean,
yaitu rata-rata dengan terlebih dahulu memotong x
persen
nilai terkecil dan terbesar dari data:
# gunakan parameter trim pada mean()
mean(pengunjung, trim = 0.1) # trim 0.1, akan menghapus 10 persen dari data kita pada bagian bawah dan bagian atas
## [1] 42.75
sort(pengunjung)
## [1] 33 37 37 39 41 43 46 49 50 1032
nilai yang akan dihilangkan adalah nilai 33 & 1032
ketika total datanya ada 18 dan dibagi 10 kan hasilnya 1.8. Hasilnya itu akan dibulatkan kebawah
Modus berguna untuk mencari nilai yang paling sering muncul. Modus lebih tepat digunakan pada data kategorikal. * digunakan untuk data kategorik
most <- function(x){
table_x <- table(x)
name <- names(sort(table_x, decreasing = T))
name[1]
}
card_sample <- c("Gold","Silver","Gold","Silver","Gold","Silver","Silver","Gold","Platinum","Silver","Gold","Platinum","Platinum","Silver","Gold","Platinum","Silver","Gold","Platinum","Platinum","Silver","Silver","Silver","Silver","Platinum","Gold","Silver","Gold","Platinum","Gold","Silver","Gold","Gold","Silver","Silver","Platinum","Silver","Silver","Gold","Platinum","Gold","Platinum","Platinum","Gold","Platinum","Platinum","Gold","Platinum","Silver","Gold")
table(card_sample)
## card_sample
## Gold Platinum Silver
## 17 15 18
most(card_sample)
## [1] "Silver"