Ketikkan perintah berikut dan jelaskan hasilnya.
nama_vector <- c(5, FALSE, "true", "8.3", "Statistika")
nama_vector
## [1] "5" "FALSE" "true" "8.3" "Statistika"
class(nama_vector)
## [1] "character"
Vector nama_vector berisi lima elemen dengan tipe data
yang berbeda, yaitu: numeric (5), logical (FALSE), dan character
(“true”, “8.3”, “Statistika”).
Namun, karena dalam vector terdapat elemen bertipe character, maka R secara otomatis melakukan coercion (konversi tipe data). Akibatnya, seluruh elemen dalam vector diubah menjadi tipe data character.
Hal ini terjadi karena R mengikuti hirarki tipe data sebagai berikut:
logical < numeric < character
Sehingga tipe data dengan prioritas tertinggi (character) akan mendominasi. Oleh karena itu, angka 5 dan nilai FALSE ikut dikonversi menjadi “5” dan “FALSE”.
Cobalah untuk membuat 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 setelah
melakukan perintah tersebut.
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"
class(contoh_list)
## [1] "list"
List contoh_list berisi elemen yang sama seperti pada
Latihan 1, yaitu: numeric (5), logical (FALSE), dan character (“true”,
“8.3”, “Statistika”).
Setelah dijalankan, terlihat bahwa setiap elemen pada list tetap mempertahankan tipe data aslinya dan tidak mengalami perubahan tipe data.
Hal ini berbeda dengan vector pada Latihan 1, di mana seluruh elemen mengalami coercion dan diubah menjadi tipe character karena vector hanya dapat menyimpan satu tipe data.
Dengan demikian, perbedaan utama antara list dan vector adalah:
Dalam melakukan pemanggilan elemen, kita dapat menggunakan index
elemen atau nama kolom. Buatlah data frame dengan nama
kelompok_kkn berupa tabel tiga kolom terdiri atas: nama,
nim, dan prodi. Isikan minimal 10 baris.
Lakukan eksperimen pemanggilan isi tabel, meliputi pemanggilan baris, kolom, dan elemen tabel. Jelaskan mengenai perbedaan cara pemanggilan dalam data frame tersebut.
# Membuat data frame
kelompok_kkn <- data.frame(
nama = c("Abel", "Nabila", "Amel", "Iqbal", "Nopal",
"Zahrul", "Disa", "Kirana", "Deswa", "Ayis"),
nim = c("2404010022", "2404010015", "2404010012", "2404010004", "2404010009",
"2404010006", "2404010011", "2404010010", "2404010003", "2404010027"),
prodi = c("Statistika", "Matematika", "Informatika", "Statistika", "Fisika",
"Statistika", "Kimia", "Matematika", "Informatika", "Statistika")
)
kelompok_kkn
## nama nim prodi
## 1 Abel 2404010022 Statistika
## 2 Nabila 2404010015 Matematika
## 3 Amel 2404010012 Informatika
## 4 Iqbal 2404010004 Statistika
## 5 Nopal 2404010009 Fisika
## 6 Zahrul 2404010006 Statistika
## 7 Disa 2404010011 Kimia
## 8 Kirana 2404010010 Matematika
## 9 Deswa 2404010003 Informatika
## 10 Ayis 2404010027 Statistika
kelompok_kkn[2, ]
## nama nim prodi
## 2 Nabila 2404010015 Matematika
kelompok_kkn[, 1]
## [1] "Abel" "Nabila" "Amel" "Iqbal" "Nopal" "Zahrul" "Disa" "Kirana"
## [9] "Deswa" "Ayis"
kelompok_kkn$nama
## [1] "Abel" "Nabila" "Amel" "Iqbal" "Nopal" "Zahrul" "Disa" "Kirana"
## [9] "Deswa" "Ayis"
kelompok_kkn[, "nama"]
## [1] "Abel" "Nabila" "Amel" "Iqbal" "Nopal" "Zahrul" "Disa" "Kirana"
## [9] "Deswa" "Ayis"
kelompok_kkn[3, 2]
## [1] "2404010012"
Data frame kelompok_kkn merupakan struktur data berbentuk tabel dua dimensi yang terdiri dari baris (row) dan kolom (column). Setiap kolom dapat memiliki tipe data yang berbeda, namun panjang setiap kolom harus sama.
Struktur umum pemanggilan elemen dalam data frame di R adalah:
data[baris, kolom]
Tanda koma (,) digunakan untuk memisahkan indeks baris dan kolom. Jika salah satu bagian dikosongkan, maka R akan mengambil seluruh bagian tersebut.
Perintah:
kelompok_kkn[2, ]
Artinya mengambil baris ke-2 dan seluruh kolom. Bagian kolom dikosongkan sehingga R menampilkan semua kolom pada baris tersebut.
Hasilnya tetap berbentuk data frame karena masih memiliki lebih dari satu kolom (masih dua dimensi).
Pemanggilan kolom dapat dilakukan dengan beberapa cara: - kelompok_kkn[, 1] → berdasarkan posisi kolom. - kelompok_kkn$nama → berdasarkan nama kolom menggunakan simbol $. - kelompok_kkn[, “nama”] → berdasarkan nama kolom dalam bentuk string. Ketiga cara tersebut menghasilkan isi kolom yang sama. Namun terdapat perbedaan penting:
Ketika satu kolom saja dipanggil, R secara otomatis menyederhanakan hasilnya menjadi vector. Hal ini terjadi karena data frame bersifat dua dimensi, dan ketika hanya satu kolom diambil, dimensinya menjadi satu sehingga berubah menjadi vector.
Perintah:
kelompok_kkn[3, 2]
Artinya mengambil nilai pada baris ke-3 dan kolom ke-2. Karena hanya satu baris dan satu kolom yang ditentukan, maka hasilnya adalah satu nilai tunggal.
Perbedaan Cara Pemanggilan - data[baris, ] → mengambil satu baris penuh. - data[, kolom] → mengambil satu kolom penuh. - data[baris, kolom] → mengambil satu elemen tertentu. - data$nama_kolom → mengambil kolom berdasarkan nama.
Perbedaan utama terletak pada bagian indeks yang diisi dalam tanda [ , ]. Pemahaman terhadap struktur ini sangat penting dalam manipulasi dan analisis data menggunakan R.
Buatlah data frame yang beberapa datanya berupa missing value. Carilah letak atau posisi data yang berupa missing value tersebut dengan menggunakan perintah is.na.
# Membuat data frame dengan missing value
data_mahasiswa <- data.frame(
nama = c("Andi", "Budi", "Citra", "Dina", "Eka"),
umur = c(20, NA, 19, 21, NA),
ipk = c(3.5, 3.8, NA, 3.6, 3.9)
)
data_mahasiswa
## nama umur ipk
## 1 Andi 20 3.5
## 2 Budi NA 3.8
## 3 Citra 19 NA
## 4 Dina 21 3.6
## 5 Eka NA 3.9
is.na(data_mahasiswa)
## nama umur ipk
## [1,] FALSE FALSE FALSE
## [2,] FALSE TRUE FALSE
## [3,] FALSE FALSE TRUE
## [4,] FALSE FALSE FALSE
## [5,] FALSE TRUE FALSE
which(is.na(data_mahasiswa), arr.ind = TRUE)
## row col
## [1,] 2 2
## [2,] 5 2
## [3,] 3 3
Missing value dalam R direpresentasikan dengan NA (Not Available). NA menunjukkan bahwa suatu data tidak tersedia atau tidak diketahui nilainya.
Fungsi is.na() digunakan untuk mendeteksi apakah suatu elemen bernilai NA. Perintah is.na(data_mahasiswa) menghasilkan matriks logika yang berisi TRUE pada posisi yang mengandung NA dan FALSE pada posisi lainnya.
Untuk mengetahui posisi secara spesifik (baris dan kolom), digunakan perintah:
which(is.na(data_mahasiswa), arr.ind = TRUE)
Perintah tersebut menampilkan indeks baris dan kolom dari data yang bernilai NA.