1. 학습
  2. /
  3. 강의
  4. /
  5. 금융을 위한 R 중급

Connected

연습 문제

ifelse()

ifelse()는 알아 두면 아주 유용한 함수예요. 한 줄로 if 문을 만들 수 있을 뿐 아니라, 전체 벡터에도 작동해요!

주가 벡터가 있다고 해 보죠. apple > 110일 때마다 "Buy!"를, 그렇지 않으면 "Do nothing!"을 반환하고 싶다면 어떨까요? 간단한 if 문만으로는 해결하기 어려워요. 하지만 ifelse()를 쓰면 다음과 같이 할 수 있어요:

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()는 test를 평가해 논리 벡터를 만들고, 그 값이 TRUE인 위치에는 yes의 값을, FALSE인 위치에는 no의 값을 채워 넣어요.

stocks 데이터 프레임이 준비되어 있어요.

지침

100 XP
  • ifelse()로 micr가 60 초과이면서 62 미만인지 테스트하세요. 참이면 1, 거짓이면 0을 반환하고, 결과를 stocks에 micr_buy 열로 추가하세요.
  • ifelse()로 apple이 117보다 큰지 테스트하세요. TRUE이면 date 열의 값을, 그렇지 않으면 NA를 반환해야 해요.
  • stocks를 출력하세요. date가 숫자로 바뀌었죠! ifelse()는 반환 전에 날짜의 속성(attribute)을 제거하기 때문에 숫자로 변환돼요.
  • apple_date 열의 class()를 "Date"로 지정하세요.
  • 다시 stocks를 출력하세요.