Gagal menyederhanakan
Untuk penggunaan interaktif, sapply() sangat berguna. Fungsi ini menebak tipe keluaran agar dapat menyederhanakan, dan biasanya itu baik-baik saja. Namun, sapply() bukan opsi yang aman digunakan saat menulis fungsi. Jika sapply() tidak dapat menyederhanakan keluaran Anda, maka ia akan kembali ke nilai bawaan berupa list seperti lapply(). Hal ini bisa berbahaya dan merusak fungsi kustom jika Anda menuliskannya dengan asumsi sapply() akan mengembalikan vektor yang sudah disederhanakan.
Mari kita lihat sebuah latihan menggunakan list yang berisi informasi tentang kejatuhan pasar saham tahun 2008.
Latihan ini adalah bagian dari kursus
R Tingkat Menengah untuk Keuangan
Petunjuk latihan
List market_crash telah dibuat untuk Anda.
- Gunakan
sapply()untuk mendapatkanclass()dari setiap elemen dalammarket_crash.
Sebuah list baru, market_crash2, telah dibuat. Perbedaannya ada pada pembuatan tanggal!
- Gunakan
lapply()untuk mendapatkanclass()dari setiap elemen dalammarket_crash2. - Gunakan
sapply()untuk mendapatkanclass()dari setiap elemen dalammarket_crash2.
date di market_crash2 memiliki beberapa kelas. Mengapa sapply() tidak dapat menyederhanakannya?
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Market crash with as.Date()
market_crash <- list(dow_jones_drop = 777.68,
date = as.Date("2008-09-28"))
# Find the classes with sapply()
___
# Market crash with as.POSIXct()
market_crash2 <- list(dow_jones_drop = 777.68,
date = as.POSIXct("2008-09-28"))
# Find the classes with lapply()
___
# Find the classes with sapply()
___