에 나는 행렬의 목록을 가지고 노나 그들 중 일부는 다음과 같이, NA 있습니다확인 행렬의 목록의 요소가있는 경우 rcpp
listToCheck <- list(NA, matrix(0,nrow = 2, ncol = 2))
내가 확인 Rcpp에서 코드를 작성하고 싶습니다 리스트의 요소가 NA인지 아닌지를 나타냅니다.
나는// [[Rcpp::depends(RcppArmadillo)]]
#include <RcppArmadillo.h>
using namespace Rcpp;
// [[Rcpp::export]]
bool checkNa(int i, List elemInCluster){
arma::mat matrix = elemInCluster[i];
if(R_IsNA(matrix(0,0))){
return true;
}
return false;
}
다음 두 가지를 시도하지만 매트릭스는 NA 경우에도 첫 번째 요소에 액세스하려고으로 내가 checkNa(0, listToCheck)
을 시도 할 때 Error in checkNa(0, listToCheck) : Not a matrix.
을 제공대로 작동하지 않습니다.
R_IsNA는 double에서 작동하므로, 해당 요소 중 하나에 액세스하지 않고 행렬이 NA인지 확인하는 방법이 있습니까? this example가 작동하는 것 같다에서 같은 시도 - 캐치 사용
기능을'''ARMA : is_finite'''은'''elemInCluster [I]'''에서 작동하지 않습니다. 이것이 왜 복제되어야하는지 더 잘 설명해주십시오. – adaien
'NA', 'NaN'및 'NULL'감지는 여러 번 논의되었습니다. –
그리고 list 요소는 NA가 될 수 없습니다. 이것은 하나의 NA 요소가있는 1x1 행렬입니다. 어쩌면 OP는 목록 요소 i가 NULL이 될 수도 있음을 의미합니다. 우리는 질문이 불충분하게 표현되고 재현 할 수없는 예제로 말할 수 없습니다. –