MulaiMulai sekarang secara gratis

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

Lihat Kursus

Petunjuk latihan

  • Gunakan ifelse() untuk menguji apakah micr di atas 60 tetapi di bawah 62. Jika benar, kembalikan 1 dan jika salah kembalikan 0. Tambahkan hasilnya ke stocks sebagai kolom micr_buy.
  • Gunakan ifelse() untuk menguji apakah apple lebih besar dari 117. Nilai yang dikembalikan harus berupa kolom date jika TRUE, dan NA jika sebaliknya.
  • Cetak stocks. date menjadi numerik! ifelse() menghapus atribut tanggal sebelum mengembalikannya, sehingga berubah menjadi numerik.
  • Tetapkan kolom apple_date dengan class() bernilai "Date".
  • Cetak stocks lagi.

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
___
Edit dan Jalankan Kode