Nomor 1

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

Fungsi c() (combine) di R digunakan untuk membentuk atomic vector.

Sifat utama atomic vector adalah: Semua elemen harus memiliki tipe data yang sama (homogen)

  1. 5 → numeric

  2. FALSE → logical

  3. “true” → character

  4. “8.3” → character

  5. “Statistika” → character

Output yang dihasilkan : [1] “5” “FALSE” “true” “8.3” “Statistika”

Karena terdapat elemen bertipe character, maka R akan melakukan type coercion otomatis ke tipe data yang paling “tinggi” dalam hierarki coercion

Kesimpulan

  1. nama_vector adalah atomic vector bertipe character

  2. Semua elemen mengalami implicit coercion ke character

  3. Nilai numerik 5 dan logical FALSE berubah menjadi string

  4. Panjang vector adalah 5 (length(nama_vector) = 5)

  5. Vector bersifat satu dimensi dan homogen

Nomor 2

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"

Perbedaan List dan Vektor

  1. Homogenitas vektor harus 1 tipe, jika list bisa berbeda tipe

  2. Coercion vektor tejadi otomatis, sedangkan list tidak terjadi

  3. Struktur vektor itu Atomic, sedangkan list Recursive

  4. Akses elemen vektor menggunakan [] sedangkan list menggunakan [] dan [[]]

  5. Fleksibilitas vektor terbatas, sedangkan list sangat fleksibel

Kesimpulannya

  1. Vector memaksakan homogenitas tipe data.

  2. List mempertahankan tipe asli tiap elemen.

  3. List lebih tepat untuk struktur kompleks (misalnya model, data frame, nested object).

  4. Vector lebih efisien untuk komputasi numerik.

Nomor 3

Nomor 3a

Kelompok_Project <- data.frame(
  Nama = c("Afiq","Deswa","Wafi","Dewi","Key","Syakila","Naufal","Zahrul","Hanif","Refa"),
  NIM = c(101,102,103,104,105,106,107,108,109,110),
  Prodi = c("Staterkom","SSD","Staterkom","PGSD",
            "Kedokteran","Agroteknologi","Staterkom","Pend Kimia",
            "Farmasi","Teknik Sipil")
)
Kelompok_Project
##       Nama NIM         Prodi
## 1     Afiq 101     Staterkom
## 2    Deswa 102           SSD
## 3     Wafi 103     Staterkom
## 4     Dewi 104          PGSD
## 5      Key 105    Kedokteran
## 6  Syakila 106 Agroteknologi
## 7   Naufal 107     Staterkom
## 8   Zahrul 108    Pend Kimia
## 9    Hanif 109       Farmasi
## 10    Refa 110  Teknik Sipil

Nomor 3b

Kelompok_Project <- data.frame(
  Nama = c("Afiq","Deswa","Wafi","Dewi","Key","Syakila","Naufal","Zahrul","Hanif","Refa"),
  NIM = c(101,102,103,104,105,106,107,108,109,110),
  Prodi = c("Staterkom","SSD","Staterkom","PGSD",
            "Kedokteran","Agroteknologi","Staterkom","Pend Kimia",
            "Farmasi","Teknik Sipil")
)
Kelompok_Project[1, ]
##   Nama NIM     Prodi
## 1 Afiq 101 Staterkom

Nomor 3c

Kelompok_Project <- data.frame(
  Nama = c("Afiq","Deswa","Wafi","Dewi","Key","Syakila","Naufal","Zahrul","Hanif","Refa"),
  NIM = c(101,102,103,104,105,106,107,108,109,110),
  Prodi = c("Staterkom","SSD","Staterkom","PGSD",
            "Kedokteran","Agroteknologi","Staterkom","Pend Kimia",
            "Farmasi","Teknik Sipil")
)
Kelompok_Project[ , 3]
##  [1] "Staterkom"     "SSD"           "Staterkom"     "PGSD"         
##  [5] "Kedokteran"    "Agroteknologi" "Staterkom"     "Pend Kimia"   
##  [9] "Farmasi"       "Teknik Sipil"

Nomor 3d

Kelompok_Project <- data.frame(
  Nama = c("Afiq","Deswa","Wafi","Dewi","Key","Syakila","Naufal","Zahrul","Hanif","Refa"),
  NIM = c(101,102,103,104,105,106,107,108,109,110),
  Prodi = c("Staterkom","SSD","Staterkom","PGSD",
            "Kedokteran","Agroteknologi","Staterkom","Pend Kimia",
            "Farmasi","Teknik Sipil")
)
Kelompok_Project[ , "Nama"]
##  [1] "Afiq"    "Deswa"   "Wafi"    "Dewi"    "Key"     "Syakila" "Naufal" 
##  [8] "Zahrul"  "Hanif"   "Refa"

Nomor 3e

Kelompok_Project <- data.frame(
  Nama = c("Afiq","Deswa","Wafi","Dewi","Key","Syakila","Naufal","Zahrul","Hanif","Refa"),
  NIM = c(101,102,103,104,105,106,107,108,109,110),
  Prodi = c("Staterkom","SSD","Staterkom","PGSD",
            "Kedokteran","Agroteknologi","Staterkom","Pend Kimia",
            "Farmasi","Teknik Sipil")
)
Kelompok_Project[6, 1]
## [1] "Syakila"

Nomor 4

Nomor 4a

data_missing <- data.frame(
  Nama = c("Nadiyya","Refa", NA, "Olive","Syakila"),
  NilaiAkhir = c(89, NA, 83, 87, 99),
  ProgramStudi = c("Farmasi","Teknik Sipil","Akuntansi", NA, "Agroteknologi")
)
is.na(data_missing)
##       Nama NilaiAkhir ProgramStudi
## [1,] FALSE      FALSE        FALSE
## [2,] FALSE       TRUE        FALSE
## [3,]  TRUE      FALSE        FALSE
## [4,] FALSE      FALSE         TRUE
## [5,] FALSE      FALSE        FALSE

Nomor 4b

data_missing <- data.frame(
  Nama = c("Nadiyya","Refa", NA, "Olive","Syakila"),
  NilaiAkhir = c(89, NA, 83, 87, 99),
  ProgramStudi = c("Farmasi","Teknik Sipil","Akuntansi", NA, "Agroteknologi")
)
which(is.na(data_missing), arr.ind = TRUE)
##      row col
## [1,]   3   1
## [2,]   2   2
## [3,]   4   3

Nomor 4c

data_missing <- data.frame(
  Nama = c("Nadiyya","Refa", NA, "Olive","Syakila"),
  NilaiAkhir = c(89, NA, 83, 87, 99),
  ProgramStudi = c("Farmasi","Teknik Sipil","Akuntansi", NA, "Agroteknologi")
)
sum(is.na(data_missing))
## [1] 3

Penjelasan

  1. NA adalah representasi missing value dalam R.

  2. is.na() mengembalikan nilai logika.

  3. Missing value berbeda dengan string kosong ““.

  4. Operasi aritmatika dengan NA menghasilkan NA kecuali ditangani dengan na.rm = TRUE.