Значения NA в условном Rcpp

У меня проблемы с условными выражениями в Rcpp. Лучший способ объяснить мою проблему — это пример.

z <- seq(from=1,to=10,by=0.1)
z[c(5,10,15,20,40,50,80)] <- NA
src <- '
 Rcpp::NumericVector vecz(z);
 for (int i=0;i<vecz.size();i++) {
   if (vecz[i] == NA_REAL) {
     std::cout << "Here is  a missing value" << std::endl;
   }
  }
'
func <- cxxfunction(signature(z="numeric"),src,plugin="Rcpp")
func(z)
# NULL

Насколько я понимаю, NA_REALпредставляет значения NA для вещественных чисел в Rcpp, а NA_Integerпредставляет значения NA для целых чисел. Я не уверен, почему приведенное выше условное выражение никогда не возвращает true, учитывая z.

9
задан sgibb 19 July 2012 в 07:27
поделиться