# fastcov2: Calculate Covariance Matrix in Parallel In dipsaus: A Dipping Sauce for Data Analysis and Visualizations

## Description

Speed up covariance calculation for large matrices. The default behavior is similar `cov`. Please remove any `NA` prior to calculation.

## Usage

 `1` ```fastcov2(x, y = NULL, col1, col2, df) ```

## Arguments

 `x` a numeric vector, matrix or data frame; a matrix is highly recommended to maximize the performance `y` NULL (default) or a vector, matrix or data frame with compatible dimensions to x; the default is equivalent to `y = x` `col1` integers indicating the subset (columns) of `x` to calculate the covariance; default is all the columns `col2` integers indicating the subset (columns) of `y` to calculate the covariance; default is all the columns `df` a scalar indicating the degrees of freedom; default is `nrow(x)-1`

## Value

A covariance matrix of `x` and `y`. Note that there is no `NA` handling. Any missing values will lead to `NA` in the resulting covariance matrices.

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22``` ```# Get numbers of threads to 2 RcppParallel::setThreadOptions(numThreads = 2) x <- matrix(rnorm(400), nrow = 100) # Call `cov(x)` to compare fastcov2(x) # Calculate covariance of subsets fastcov2(x, col1 = 1, col2 = 1:2) # Speed comparison x <- matrix(rnorm(100000), nrow = 1000) microbenchmark::microbenchmark( fastcov2 = { fastcov2(x, col1 = 1:50, col2 = 51:100) }, cov = { cov(x[,1:50], x[,51:100]) }, unit = 'ms', times = 10 ) ```

dipsaus documentation built on Sept. 6, 2021, 5:08 p.m.