# [Rcpp-devel] Correlation in ArmadilloRcpp with missing values (nan)

Dirk Eddelbuettel edd at debian.org
Tue Oct 9 17:37:56 CEST 2012

```On 9 October 2012 at 10:08, Douglas Bates wrote:
| You may find it easier to use the Rcpp class NumericMatrix than to use
| RcppArmadillo.  Detection of NA's is built in to R and Rcpp classes but not
| RcppArmadillo. For each pair of columns, run a loop that checks for NA's at
| each position in each column, skips the position if NA's are detected and
| otherwise increments the squared sums, cross-product and number of elements.

All true, but at the same time, once in RcppArmadillo or RcppEigen ... it is
convenient to stay there.

You should be able to set up a little "sweeper" function which applies one of

R_IsNA		just NA
R_IsNaN		just NaN
R_IsFinite		NA, NaN or Inf

across a vector or matrix and returns you an index vector. Armadillo can use
indexing vectors in ways that are similar in R.

Dirk

|
| On Oct 9, 2012 9:53 AM, "mateusz.kaduk at gmail.com" <mateusz.kaduk at gmail.com>
| wrote:
|
|     Hi,
|
|     I have written small code in C++ using Armadillo and inline with
|     The input is data.marix(X). Some cells might be NAs. Example in R: X =
|     matrix(sample(c(rnorm(10*9.9),NA)),ncol=10)
|
|     I am calculating conditional correlation on columns of that matrix, just
|     picking vectors, so cor(X,Y).
|     The problem is that sometimes I might have empty cell in one or both
|     vectors, in that case I would like to skip that row, and procede with
|     calculating Pearson's correlation on remaining data. I know that there will
|     be difference in degrees of freedom, but I have over 100 rows, so skiping
|     few shouldnt matter that much.
|
|     Basically my question boils down to solving the problem:
|     How to find which colvec cells are nan, and remove this index from both X
|     and Y colvec, before calculating correlation.
|
|     I would be very grateful for help,
|
|     Kind regards,
|
|     _______________________________________________
|     Rcpp-devel mailing list
|     Rcpp-devel at lists.r-forge.r-project.org
|     https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
|
|
| ----------------------------------------------------------------------
| _______________________________________________
| Rcpp-devel mailing list
| Rcpp-devel at lists.r-forge.r-project.org
| https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
--
Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
```