8 minute read

Kali ini saya akan membahas terkait beberapa function dasar di R yang pasti berguna dan selalu dipakai.

Beberapa Fungsi yang Berguna

Paste

Apakah kalian mengetahui fungsi bernama CONCATENATE di Ms. Excel? Fungsi paste() mirip penggunaannya dengan perintah CONCATENATE, yakni menggabungkan beberapa data menjadi satu.

Contoh: membuat vector berisi nama_toko yang berisi urutan nama toko.

nama_toko = paste('toko ke',c(1:10),sep='-')
nama_toko
##  [1] "toko ke-1"  "toko ke-2"  "toko ke-3"  "toko ke-4"  "toko ke-5" 
##  [6] "toko ke-6"  "toko ke-7"  "toko ke-8"  "toko ke-9"  "toko ke-10"

Contoh: membuat vector dari nama_toko yang sudah pernah dibuat sebelumnya dengan rules 5 toko pertama dari Bandung dan 5 toko selanjutnya dari Bekasi.

nama_toko = paste(nama_toko,rep(c('Bandung','Bekasi'),5))
nama_toko
##  [1] "toko ke-1 Bandung" "toko ke-2 Bekasi"  "toko ke-3 Bandung"
##  [4] "toko ke-4 Bekasi"  "toko ke-5 Bandung" "toko ke-6 Bekasi" 
##  [7] "toko ke-7 Bandung" "toko ke-8 Bekasi"  "toko ke-9 Bandung"
## [10] "toko ke-10 Bekasi"

sep = berguna untuk mendefinisikan separator apa yang hendak digunakan. Secara default, separator yang digunakan adalah spasi.

Coba kalian ganti sendiri bagian separator-nya.

Print

Fungsi print() digunakan untuk menampilkan data ke layar. Biasanya digunakan pada proses looping agar hasil iterasi dapat tampil ke layar.

print(nama_toko)
##  [1] "toko ke-1 Bandung" "toko ke-2 Bekasi"  "toko ke-3 Bandung"
##  [4] "toko ke-4 Bekasi"  "toko ke-5 Bandung" "toko ke-6 Bekasi" 
##  [7] "toko ke-7 Bandung" "toko ke-8 Bekasi"  "toko ke-9 Bandung"
## [10] "toko ke-10 Bekasi"

str

Fungsi str() digunakan untuk melihat tipe dan struktur object yang ada di R. Sebagai contoh, kita akan pakai data absensi dari tulisan sebelumnya:

id = c(1:10)
nama = randomNames::randomNames(10,gender = 0,which.names = 'first')
tinggi_badan = sample(c(150:199),10,replace = F)
absensi = data.frame(id,nama,tinggi_badan)

Sebelumnya pastikan library(randomNames) sudah ter-install yah.

Berikut adalah hasil str()-nya:

str(absensi)
## 'data.frame':    10 obs. of  3 variables:
##  $ id          : int  1 2 3 4 5 6 7 8 9 10
##  $ nama        : chr  "Wei" "Tyler" "Andrew" "Asghar" ...
##  $ tinggi_badan: int  186 161 185 179 180 172 153 163 195 150

Terlihat bahwa data absensi memiliki struktur data.frame dengan ada 3 variables dan 10 observations (baris data).

Summary

Fungsi summary() digunakan untuk melihat statistik deskriptif dari suatu data (tergantung dari tipe datanya). Contoh:

summary(absensi$tinggi_badan)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   150.0   161.5   175.5   172.4   183.8   195.0

Class

Fungsi class() digunakan untuk melihat tipe atau struktur dari suatu data. Mirip dengan fungsi str(), tapi tidak sampai menampilkan dengan detail. Contoh:

class(absensi)
## [1] "data.frame"
class(absensi$tinggi_badan)
## [1] "integer"

Looping

Looping berarti pengulangan namun berbeda dengan repeat yang pernah kita bahas sebelumnya. Ada dua fungsi looping yang biasa digunakan, yakni: for() dan while(). Keduanya memiliki manfaat yang berbeda.

For

Fungsi for() biasa dilakukan untuk melakukan looping dengan syarat iterasi yang didefinisikan terlebih dahulu. Jadi kita sudah mengetahui terlebih dahulu berapa kali kita akan melakukan looping.

Contoh:

for(i in 1:10){
  print(paste('pertanyaan ke',i))
}
## [1] "pertanyaan ke 1"
## [1] "pertanyaan ke 2"
## [1] "pertanyaan ke 3"
## [1] "pertanyaan ke 4"
## [1] "pertanyaan ke 5"
## [1] "pertanyaan ke 6"
## [1] "pertanyaan ke 7"
## [1] "pertanyaan ke 8"
## [1] "pertanyaan ke 9"
## [1] "pertanyaan ke 10"

Contoh:

for(i in 1:10){
  i = 1/i
  print(round(i,3))
}
## [1] 1
## [1] 0.5
## [1] 0.333
## [1] 0.25
## [1] 0.2
## [1] 0.167
## [1] 0.143
## [1] 0.125
## [1] 0.111
## [1] 0.1

While

Fungsi while() digunakan untuk melakukan looping dengan sampai syarat iterasi terpenuhi. Jadi kita belum mengetahui berapa kali kita akan melakukan looping.

Contoh: misalkan dalam satu ruangan ada 100 orang. Saya akan membagi mereka menjadi kelompok - kelompok berisi 1 sampai 5 orang. Kira - kira ada berapa banyak kelompok yang bisa saya dapatkan?

Caranya, kita set dulu kondisi awalnya.

orang = 100
i = 0 # berapa banyak kelompok? awalnya nol dulu

Lalu kita buat iterasi dengan while(). Yakni mengurangi secara berkala 100 orang dengan kelompok berisi 1 - 3 orang lalu menghitung ada berapa banyak iterasi yang terjadi.

while(orang>0){
  n = sample(c(1:5),1)
  orang = orang - n
  i = i+1
}

Berapa banyak iterasi (kelompok) yang mungkin muncul:

i
## [1] 31

to be continued

if you find this article helpful, support this blog by clicking the ads.