R cpp сахар может повторить операцию путем объединения is_na()
и any()
. is_na()
обнаружит пропущенные значения, а any()
подтвердит, что единственное значение равно TRUE
. Обратите внимание, что для получения логического значения any()
должен использоваться с is_true()
.
#include<Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
bool contains_na(NumericMatrix M){
return is_true(any(is_na(M)));
}
Контрольный пример:
A = matrix(1:4, nrow = 2)
contains_na(A)
# [1] FALSE
M = matrix(c(1, 2, NA, 4), nrow = 2)
contains_na(M)
# [1] TRUE