Latihan 1 Ketikkan perintah di bawah ini dan berikan pernyataan apa saja yang dapat kalian peroleh dari perintah tersebut!

nama_vector <- c(5, FALSE, "true", "8.3", "Statistika")
nama_vector
## [1] "5"          "FALSE"      "true"       "8.3"        "Statistika"

Ketika menggabungkan berbagai tipe data dalam satu vektor, R melakukan coercion (konversi paksa) ke tipe yang paling umum. Karena ada elemen bertipe karakter (“true”, “8.3”, “Statistika”), semua elemen dikonversi menjadi karakter, termasuk angka 5 dan logika FALSE. Artinya, vektor hanya dapat menyimpan satu tipe data secara seragam.

Latihan 2 Buatlah List dengan nama contoh_list yang memiliki elemen sama dengan Latihan no.1, dan panggil seluruh elemen. Berikan perbedaan list dan vector yang dapat kalian peroleh.

contoh_list <- list(5, FALSE, "true", "8.3", "Statistika")
contoh_list
## [[1]]
## [1] 5
## 
## [[2]]
## [1] FALSE
## 
## [[3]]
## [1] "true"
## 
## [[4]]
## [1] "8.3"
## 
## [[5]]
## [1] "Statistika"

Berbeda dengan vektor, list mempertahankan tipe data asli tiap elemennya tanpa melakukan coercion. Vektor memaksa semua elemen menjadi satu tipe data yang sama, sedangkan list dapat menampung berbagai tipe data (numerik, logika, karakter) secara bersamaan dalam satu objek.

Latihan 3 Buatlah data frame dengan nama kelompok_kkn berupa tabel tiga kolom: nama, nim, dan prodi. Isikan minimal 10 baris. Lakukan eksperimen pemanggilan isi tabel meliputi pemanggilan baris, kolom, dan elemen tabel.

kelompok_kkn <- data.frame(
  nama  = c("ghani", "gogon", "iqbal", "rama", "sinta",
             "andra", "widia", "budi", "gugups", "gutawa"),
  nim   = c("001", "002", "003", "004", "005",
             "006", "007", "008", "009", "010"),
  prodi = c("Statistika", "Matematika", "Statistika", "Informatika", "Statistika",
             "Matematika", "Informatika", "Statistika", "Matematika", "Informatika")
)

kelompok_kkn
##      nama nim       prodi
## 1   ghani 001  Statistika
## 2   gogon 002  Matematika
## 3   iqbal 003  Statistika
## 4    rama 004 Informatika
## 5   sinta 005  Statistika
## 6   andra 006  Matematika
## 7   widia 007 Informatika
## 8    budi 008  Statistika
## 9  gugups 009  Matematika
## 10 gutawa 010 Informatika

memnaggil baris pertama

kelompok_kkn[1, ]  
##    nama nim      prodi
## 1 ghani 001 Statistika

memanggil kolom prodi

kelompok_kkn[, "prodi"] 
##  [1] "Statistika"  "Matematika"  "Statistika"  "Informatika" "Statistika" 
##  [6] "Matematika"  "Informatika" "Statistika"  "Matematika"  "Informatika"

memanggil elemen baris 3 kolom 2

kelompok_kkn[3, 2]  
## [1] "003"

memanggil kolom nama menggunakan operator $

kelompok_kkn$nama 
##  [1] "ghani"  "gogon"  "iqbal"  "rama"   "sinta"  "andra"  "widia"  "budi"  
##  [9] "gugups" "gutawa"

Pemanggilan data frame dapat dilakukan dengan tiga cara: menggunakan indeks baris [baris, ] untuk mengambil seluruh baris tertentu, indeks atau nama kolom [, kolom] maupun $nama_kolom untuk mengambil seluruh kolom tertentu, dan kombinasi keduanya [baris, kolom] untuk mengakses elemen pada posisi spesifik.

Latihan 4 Buatlah data frame yang beberapa datanya berupa missing value. Carilah letak atau posisi data yang berupa missing value tersebut dengan menggunakan perintah is.na.

data_mv <- data.frame(
  nama  = c("rama", "sinta", "andra", "widia", "budi"),
  nilai = c(80, NA, 75, NA, 90),
  usia  = c(20, 21, NA, 22, 20)
)

data_mv
##    nama nilai usia
## 1  rama    80   20
## 2 sinta    NA   21
## 3 andra    75   NA
## 4 widia    NA   22
## 5  budi    90   20
is.na(data_mv)
##       nama nilai  usia
## [1,] FALSE FALSE FALSE
## [2,] FALSE  TRUE FALSE
## [3,] FALSE FALSE  TRUE
## [4,] FALSE  TRUE FALSE
## [5,] FALSE FALSE FALSE
which(is.na(data_mv), arr.ind = TRUE)
##      row col
## [1,]   2   2
## [2,]   4   2
## [3,]   3   3

Fungsi is.na() mengembalikan matriks logika yang menunjukkan posisi missing value dengan nilai TRUE. Dari output terlihat bahwa nilai NA terdapat pada kolom nilai baris 2 dan 4, serta kolom usia baris 3. Fungsi which(…, arr.ind = TRUE) memberikan informasi baris dan kolom secara tepat di mana setiap missing value berada.