Apa tipe saya?
Anda baru saja melihat empat fungsi yang membantu Anda menentukan tipe variabel yang sedang digunakan. class() (docs) dan typeof() (docs) penting dan akan sering berguna. mode() (docs) dan storage.mode() (docs) sebagian besar ada untuk kompatibilitas dengan bahasa pemrograman S.
Dalam latihan ini, Anda akan melihat apa yang dikembalikan oleh fungsi-fungsi tersebut untuk berbagai tipe variabel. Ada beberapa tipe yang lebih jarang yang mungkin belum pernah Anda temui.
array(docs): Generalisasi dari matriks dengan jumlah dimensi sebarang.formula(docs): Digunakan oleh fungsi pemodelan dan pemetaan (plotting) untuk mendefinisikan hubungan antar variabel.
Perhatikan juga bahwa ada tiga jenis fungsi di R.
- Sebagian besar fungsi yang Anda temui disebut
closure. - Beberapa fungsi penting, seperti
length()(docs) dikenal sebagai fungsibuiltin, yang menggunakan mekanisme evaluasi khusus agar berjalan lebih cepat. - Konstruksi bahasa, seperti
if(docs) danwhile(docs) juga merupakan fungsi! Mereka dikenal sebagai fungsispecial.
Latihan ini adalah bagian dari kursus
Pemrograman Berorientasi Objek dengan S3 dan R6 di R
Petunjuk latihan
Fungsi type_info() telah didefinisikan sebelumnya di ruang kerja Anda untuk mengembalikan class(), mode(), typeof(), dan storage.mode() dari inputnya. (Ketik type_info di konsol untuk melihat cara kerjanya.)
- Buat
some_vars, list berisi objek contoh yang disediakan di editor. - Gunakan
lapplyuntuk melakukan perulangan pada elemensome_vars, memanggiltype_info()pada masing-masing objek contoh untuk menelusuri tipenya.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Look at the definition of type_info()
type_info
# Create list of example variables
some_vars <- list(
an_integer_vector = rpois(24, lambda = 5),
a_numeric_vector = rbeta(24, shape1 = 1, shape2 = 1),
an_integer_array = array(rbinom(24, size = 8, prob = 0.5), dim = c(2, 3, 4)),
a_numeric_array = array(rweibull(24, shape = 1, scale = 1), dim = c(2, 3, 4)),
a_data_frame = data.frame(int = rgeom(24, prob = 0.5), num = runif(24)),
a_factor = factor(month.abb),
a_formula = y ~ x,
a_closure_function = mean,
a_builtin_function = length,
a_special_function = `if`
)
# Loop over some_vars calling type_info() on each element to explore them
___