1. Learn
  2. /
  3. Courses
  4. /
  5. Rcpp로 R 코드 최적화하기

Connected

Exercise

결측값 처리

R에서 결측값을 확인하려면 is.na(x)를 사용해야 해요. (x == NA를 시도하면 어떻게 될까요?)

Rcpp에서의 대응은 정적 메서드 is_na()입니다. 정적(static)이라는 것은 메서드가 특정 변수에 속하는 것이 아니라 클래스의 일부라는 뜻이에요. 예를 들어, NumericVector::is_na(x)는 double x가 결측값인지 검사합니다.
마찬가지로, 정적 메서드 get_na()는 해당 클래스의 NA 값을 제공합니다. 예를 들어, CharacterVector::get_na()는 결측 문자값을 반환해요.

C++에서 논리합(or)은 R과 동일하게 ||입니다.

Instructions

100 XP
  • 이전 연습 문제의 weighted_mean_cpp() 함수를 업데이트하여, x나 w에서 결측값을 발견하는 즉시 결측값을 반환하도록 하세요.
    • x의 i번째 원소가 NA이거나 w의 i번째 원소가 NA인지 확인하는 if 블록을 추가하세요.
    • 해당 if 블록 안에서 숫자형 NA를 반환하세요.