1. Nauka
  2. /
  3. Kursy
  4. /
  5. R dla finansów – poziom średnio zaawansowany

Connected

ćwiczenie

ifelse()

Warto poznać bardzo przydatną funkcję ifelse(). Pozwala ona zapisać instrukcję warunkową w jednej linii kodu, a co więcej – działa na całych wektorach!

Wyobraź sobie, że masz wektor cen akcji. Co zrobić, jeśli chcesz zwracać "Buy!" za każdym razem, gdy apple > 110, a "Do nothing!" w pozostałych przypadkach? Zwykła instrukcja if nie wystarczy do rozwiązania tego problemu. Z funkcją ifelse() możesz to zrobić tak:

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!"

Funkcja ifelse() oblicza wartość test, otrzymując wektor logiczny. Wszędzie tam, gdzie wektor logiczny ma wartość TRUE, wstawia wartość podaną w argumencie yes. Analogicznie, wartości FALSE są zastępowane przez no.

Do dyspozycji masz ramkę danych stocks.

Instrukcje

100 XP
  • Użyj funkcji ifelse(), aby sprawdzić, czy micr jest większe od 60 i jednocześnie mniejsze od 62. Gdy warunek jest spełniony, zwróć 1, w przeciwnym razie zwróć 0. Wynik dodaj do ramki danych stocks jako kolumnę micr_buy.
  • Użyj funkcji ifelse(), aby sprawdzić, czy apple jest większe od 117. Gdy warunek jest TRUE, zwróć kolumnę date, a gdy FALSE – wartość NA.
  • Wyświetl stocks. Kolumna z datą zamieniła się na liczby! Funkcja ifelse() usuwa atrybut daty przed zwróceniem wyniku, dlatego wartości stają się numeryczne.
  • Przypisz kolumnie apple_date klasę "Date" za pomocą funkcji class().
  • Wyświetl stocks ponownie.