ifelse()
Bilinmesi gereken güçlü bir fonksiyon ifelse()'dır. Tek satırda bir if deyimi oluşturur ve dahası, tüm vektörler üzerinde çalışır!
Diyelim ki bir hisse fiyatları vektörün var. Her apple > 110 olduğunda "Buy!", aksi halde "Do nothing!" döndürmek istersen ne olur? Basit bir if deyimi bu problemi çözmeye yetmez. Ancak ifelse() ile şunu yapabilirsin:
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() önce test ifadesini değerlendirerek mantıksal bir vektör elde eder ve bu vektörde TRUE olan yerlerde TRUE değerini yes içindekiyle değiştirir. Benzer şekilde, FALSE değerleri de no ile değiştirilir.
stocks veri çerçevesi kullanımın için hazır.
Bu egzersiz, kursun bir parçasıdır
Finans için Orta Düzey R
Egzersiz talimatları
ifelse()kullanarakmicr'ın60'ın üzerinde ama62'nin altında olup olmadığını test et. Doğruysa1, yanlışsa0döndür. Sonucustocks'amicr_buysütunu olarak ekle.ifelse()kullanarakapple'ın117'den büyük olup olmadığını test et. Dönen değerTRUEisedatesütunu, aksi haldeNAolmalı.stocks'u yazdır.datesayısal oldu!ifelse()döndürmeden önce tarihin özniteliğini kaldırır, bu yüzden sayısala dönüşür.apple_datesütununa"Date"class()'ını ata.stocks'u tekrar yazdır.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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
___