ifelse()
Fungsi yang sangat berguna untuk diketahui adalah ifelse(). Fungsi ini membuat pernyataan if dalam 1 baris kode, dan lebih dari itu, berfungsi pada seluruh vektor!
Misalkan Anda memiliki sebuah vektor harga saham. Bagaimana jika Anda ingin mengembalikan "Buy!" setiap kali apple > 110, dan "Do nothing!" jika tidak? Satu pernyataan if sederhana tidak cukup untuk menyelesaikan masalah ini. Namun, dengan ifelse() Anda dapat melakukan:
apple
[1] 109.49 109.90 109.11 109.95 111.03 112.12
ifelse(test = apple > 110, yes = "Buy!", no = "Do nothing!")
[1] "Do nothing!" "Do nothing!" "Do nothing!" "Do nothing!" "Buy!"
[6] "Buy!"
ifelse() mengevaluasi test untuk menghasilkan sebuah vektor logika, dan pada posisi di mana vektor logika bernilai TRUE, TRUE diganti dengan apa pun yang ada di yes. Demikian pula, FALSE diganti dengan no.
Data frame stocks tersedia untuk Anda gunakan.
Latihan ini adalah bagian dari kursus
R Tingkat Menengah untuk Keuangan
Petunjuk latihan
- Gunakan
ifelse()untuk menguji apakahmicrdi atas60tetapi di bawah62. Jika benar, kembalikan1dan jika salah kembalikan0. Tambahkan hasilnya kestockssebagai kolommicr_buy. - Gunakan
ifelse()untuk menguji apakahapplelebih besar dari117. Nilai yang dikembalikan harus berupa kolomdatejikaTRUE, danNAjika sebaliknya. - Cetak
stocks.datemenjadi numerik!ifelse()menghapus atribut tanggal sebelum mengembalikannya, sehingga berubah menjadi numerik. - Tetapkan kolom
apple_datedenganclass()bernilai"Date". - Cetak
stockslagi.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Microsoft test
stocks$micr_buy <- ifelse(test = ___, yes = ___, no = ___)
# Apple test
stocks$apple_date <- ifelse(test = ___, yes = stocks$date, no = NA)
# Print stocks
___
# Change the class() of apple_date.
class(___) <- ___
# Print stocks again
___