Matrix of Correlations and Generalized Spearman Rank Correlation

rcorr Computes a matrix of Pearson's r or Spearman's rho rank correlation coefficients for all possible pairs of columns of a matrix. Missing values are deleted in pairs rather than deleting all rows of x having any missing variables. Ranks are computed using efficient algorithms (see reference 2), using midranks for ties.

spearman2 computes the square of Spearman's rho rank correlation and a generalization of it in which x can relate non-monotonically to y. This is done by computing the Spearman multiple rho-squared between (rank(x), rank(x)^2) and y. When x is categorical, a different kind of Spearman correlation used in the Kruskal-Wallis test is computed (and spearman2 can do the Kruskal-Wallis test). This is done by computing the ordinary multiple R^2 between k-1 dummy variables and rank(y), where x has k categories. x can also be a formula, in which case each predictor is correlated separately with y, using non-missing observations for that predictor. print and plot methods allow one to easily print or plot the results of spearman2(formula). The adjusted rho^2 is also computed, using the same formula used for the ordinary adjusted R^2. The F test uses the unadjusted R2. For plot, a dot chart is drawn which by default shows, in sorted order, the adjusted rho^2.

spearman computes Spearman's rho on non-missing values of two variables. spearman.test is a simple version of spearman2.default.

htest, nonparametric
rcorr(x, y, type=c("pearson","spearman"))

## S3 method for class 'rcorr': print(x, ...)

spearman2(x, ...)

## S3 method for class 'default': spearman2(x, y, p=1, minlev=0, exclude.imputed=TRUE, ...)

## S3 method for class 'formula': spearman2(x, p=1, data, subset, na.action, minlev=0, exclude.imputed=TRUE, ...)

## S3 method for class 'spearman2.formula': print(x, ...)

## S3 method for class 'spearman2.formula': plot(x, what=c('Adjusted rho2','rho2','P'), sort.=TRUE, main, xlab, ...)

spearman(x, y)

spearman.test(x, y, p=1)

a numeric matrix with at least 5 rows and at least 2 columns (if y is absent). For spearman2, the first argument may be a vector of any type, including character or factor. The first argument may also be a formula, in which cas
specifies the type of correlations to compute. Spearman correlations are the Pearson linear correlations computed on the ranks of non-missing elements, using midranks for ties.
a numeric vector or matrix which will be concatenated to x. If y is omitted for rcorr, x must be a matrix.
for numeric variables, specifies the order of the Spearman rho^2 to use. The default is p=1 to compute the ordinary rho^2. Use p=2 to compute the quadratic rank generalization to allow non-monotonicity
data, subset, na.action
the usual options for models. Default for na.action is to retain all values, NA or not, so that NAs can be deleted in only a pairwise fashion.
minimum relative frequency that a level of a categorical predictor should have before it is pooled with other categories (see combine.levels) in spearman2. The default, minlev=0 causes no pooling.
set to FALSE to include imputed values (created by impute) in the calculations.
specifies which statistic to plot
set sort.=FALSE to suppress sorting variables by the statistic being plotted
main title for plot. Default title shows the name of the response variable.
x-axis label. Default constructed from what.
other arguments that are passed to dotchart2

Uses midranks in case of ties, as described by Hollander and Wolfe. P-values are approximated by using the t distribution.


  • rcorr returns a list with elements r, the matrix of correlations, n the matrix of number of observations used in analyzing each pair of variables, and P, the asymptotic P-values. Pairs with fewer than 2 non-missing values have the r values set to NA. The diagonals of n are the number of non-NAs for the single variable corresponding to that row and column. spearman2.default (the function that is called for a single x, i.e., when there is no formula) returns a vector of statistics for the variable. spearman2.formula returns a matrix with rows corresponding to predictors.


Hollander M. and Wolfe D.A. (1973). Nonparametric Statistical Methods. New York: Wiley.

Press WH, Flannery BP, Teukolsky SA, Vetterling, WT (1988): Numerical Recipes in C. Cambridge: Cambridge University Press.

See Also

hoeffd, cor, combine.levels, varclus, dotchart2, impute

  • rcorr
  • print.rcorr
  • spearman2
  • spearman2.default
  • spearman2.formula
  • print.spearman2.formula
  • plot.spearman2.formula
  • spearman
  • spearman.test
x <- c(-2, -1, 0, 1, 2)
y <- c(4,   1, 0, 1, 4)
z <- c(1,   2, 3, 4, NA)
v <- c(1,   2, 3, 4, 5)

spearman2(x, y)
plot(spearman2(z ~ x + y + v, p=2))
Documentation reproduced from package Hmisc, version 2.0-0, License: GPL version 2 or newer

Community examples

catherine.crp@gmail.com at Oct 9, 2019 Hmisc v4.2-0

```{r} #install.packages("corrplot") library(corrplot) library(Hmisc) matriz <-rcorr(as.matrix(df), type=c("spearman")) matriz ```