#' Fast calculation of Kendall's tau rank correlation coefficient for paired
#' non-zero observations only. Adapted from the pcaPP package source.
#'
#' @param x A vector, a matrix or a data frame of data.
#' @param y A vector of data.
#' @return The estimated correlation coefficient.
cor.fk.nz <- function (x, y = NULL) {
if (is.null(y)) { ## x is expected to be matrix or data frame
if (!is.matrix (x) && ! is.data.frame (x))
stop ("x must be either numeric vector, matrix or data.frame.")
p <- ncol(x)
dn <- colnames(x)
ret <- diag (p)
dimnames(ret) <- list(dn, dn)
xNA <- x
xNA[x == 0] <- NA
for (i in 1:p) {
if (i == p)
return(ret)
ord <- order(x[, i])
cur.x <- x[ord, i]
for (j in (i+1):p) {
cur.y <- x[ord, j]
nz <- cur.x != 0 & cur.y != 0
ret[i, j] <- ret[j, i] <- cor.fk.2d(cur.x[nz], cur.y[nz], T)
}
}
} else {
if (length (x) != length (y))
stop ("x and y must have same length.")
ord <- order (x)
return (cor.fk.2d(x[ord], y[ord], cor))
}
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.