add_sig_cor {quest} | R Documentation |
Add Significance Symbols to a Correlation Matrix
Description
add_sig_cor
adds symbols for various p-values cutoffs of statistical
significance. The function inputs a correlation matrix and a numeric matrix
of p-values that correspond to the correlations (i.e., each row and column
match) and then returns a data.frame of correlations with appended
significance symbols. One of the primary applications of this function is use
within corp
corp_by
, and corp_ml
for correlation matrices.
Usage
add_sig_cor(
r,
p,
digits = 3,
p.10 = "",
p.05 = "*",
p.01 = "**",
p.001 = "***",
lead.zero = FALSE,
trail.zero = TRUE,
plus = FALSE,
diags = FALSE,
lower = TRUE,
upper = FALSE
)
Arguments
r |
double numeric matrix of correlation coefficients for which statistical significance is available. Since its a correlation matrix, it must be symmetrical and is expected to be a full matrix with all elements included (not just lower or upper diagonals values included). |
p |
double matrix of p-values for the correlations in |
digits |
integer vector of length 1 specifying the number of decimals to round to. |
p.10 |
character vector of length 1 specifying which symbol to append to the end of any correlation significant at the p < .10 level. |
p.05 |
character vector of length 1 specifying which symbol to append to the end of any correlation significant at the p < .05 level. |
p.01 |
character vector of length 1 specifying which symbol to append to the end of any correlation significant at the p < .01 level. |
p.001 |
character vector of length 1 specifying which symbol to append to the end of any correlation significant at the p < .001 level. |
lead.zero |
logical vector of length 1 specifying whether to retain a zero in front of the decimal place. |
trail.zero |
logical vector of length 1 specifying whether to retain zeros after the decimal place (due to rounding). |
plus |
logical vector of length 1 specifying whether to include a plus sign in front of positive correlations (minus signs are always in front of negative correlations). |
diags |
logical vector of length 1 specifying whether to retain the
values in the diagonal of the correlation matrix. If TRUE, then the
diagonal will be 1s with |
lower |
logical vector of length 1 specifying whether to retain the lower triangle of the correlation matrix. If TRUE, then the lower triangle correlations and their significance symbols are retained. If FAlSE, then the lower triangle will all be NA. |
upper |
logical vector of length 1 specifying whether to retain the upper triangle of the correlation matrix. If TRUE, then the upper triangle correlations and their significance symbols are retained. If FAlSE, then the upper triangle will all be NA. |
Details
There are several functions out there that do similar things. Here is one
posted to R-bloggers that uses the corr
function from the Hmisc
package:
https://www.r-bloggers.com/2020/07/create-a-publication-ready-correlation-matrix-with-significance-levels-in-r/.
Value
data.frame with the same dimensions as r
containing the
correlations and their significance symbols. Elements may or may not contain NA
values depending on the arguments diags
, lower
, and
upper
.
Examples
corr_test <- psych::corr.test(mtcars[1:5])
r <- corr_test[["r"]]
p <- corr_test[["p"]]
add_sig_cor(r = r, p = p)
add_sig_cor(r = r, p = p, digits = 2)
add_sig_cor(r = r, p = p, diags = TRUE)
add_sig_cor(r = r, p = p, lower = FALSE, upper = TRUE)
add_sig_cor(r = r, p = p, lead.zero = TRUE, trail.zero = FALSE)
add_sig_cor(r = r, p = p, plus = TRUE)