psych (version 1.0-17)

count.pairwise: Count number of pairwise cases for a data set with missing (NA) data.

Description

When doing cor(x, use= "pairwise"), it is nice to know the number of cases for each pairwise correlation. This is particularly useful when doing SAPA type analyses.

Usage

count.pairwise(x, y = NULL)

Arguments

x
An input matrix, typically a data matrix ready to be correlated.
y
An optional second input matrix

Value

  • result = matrix of counts of pairwise observations

Examples

Run this code
x <- matrix(rnorm(1000),ncol=6)
y <- matrix(rnorm(500),ncol=3)
x[x < 0] <- NA
y[y> 1] <- NA

count.pairwise(x)
count.pairwise(y)
count.pairwise(x,y)

## The function is currently defined as

function (x, y=NULL) 
{
    sizex <- dim(x)[2]
    if (length(y)>0) 
        {sizey <- dim(y)[2]}  else  {sizey <- dim(x)[2]}
    result <- matrix(1, nrow = sizey, ncol = sizex)
    xnames <- names(x)
    colnames(result) <- names(x)
    if (((is.data.frame(y)) | (is.matrix(y)))) { 
        rownames(result) <- names(y) }  else {rownames(result) <- names(x)}
    if (length(y) ==0) {
        for (i in 1:sizex) {
            for (j in 1:(i)) {
                result[j, i] <- sum((!is.na(x[, j])) & (!is.na(x[, 
                  i])))
                result[i, j] <- result[j, i]
            }
        }
    } else {
        for (i in 1:sizex) {
            for (j in 1:sizey) {
                result[j, i] <- sum((!is.na(x[, i])) & (!is.na(y[, 
                  j])))
            }
        }
    }
    return(result) }

Run the code above in your browser using DataLab