| Type: | Package | 
| Title: | Create and Format Correlation Matrices | 
| Version: | 1.0.7.2 | 
| Date: | 2023-06-15 | 
| Description: | Create correlation (or partial correlation) matrices. Correlation matrices are formatted with significance stars based on user preferences. Matrices of coefficients, p-values, and number of pairwise observations are returned. Send resultant formatted matrices to the clipboard to be pasted into excel and other programs. A plot method allows users to visualize correlation matrices created with 'corx'. | 
| License: | MIT + file LICENSE | 
| Encoding: | UTF-8 | 
| URL: | https://github.com/conig/corx | 
| Depends: | R (≥ 3.6) | 
| Imports: | crayon, ggcorrplot, glue, clipr, tidyselect, moments, ggpubr, ggplot2, stats, methods, ppcor | 
| RoxygenNote: | 7.2.3 | 
| Suggests: | covr, papaja, psych, testthat | 
| NeedsCompilation: | no | 
| Packaged: | 2023-06-15 23:35:20 UTC; james | 
| Author: | James Conigrave  | 
| Maintainer: | James Conigrave <james.conigrave@gmail.com> | 
| Repository: | CRAN | 
| Date/Publication: | 2023-06-16 04:10:02 UTC | 
adjust_p
Description
adjust_p
Usage
adjust_pmat(pmat, p_adjust)
Arguments
pmat | 
 matrix of p-values to adjust  | 
p_adjust | 
 character describing adjustment to make. See stats::p.adjust  | 
apa matrix
Description
Creates an apa matrix
Usage
apa_matrix(r_matrix, p_matrix, stars, round, remove_lead, triangle)
Arguments
r_matrix | 
 correlation coefficient matrix  | 
p_matrix | 
 p-value matrix  | 
stars | 
 a vector of pvalue stars  | 
round | 
 How many digits to round to?  | 
remove_lead | 
 a logical. Should leading zeros be removed?  | 
triangle | 
 can select lower upper or NULL  | 
apa_table.corx
Description
method for papaja::apa_table for corx objects
Usage
apa_table.corx(corx, ...)
Arguments
corx | 
 corx object  | 
... | 
 Other arguments to papaja::apa_table  | 
check_classes
Description
check all classes are as expected
Usage
check_classes(data, ok_classes, stop_message, stop = TRUE)
Arguments
data | 
 the data object  | 
ok_classes | 
 a vector of allowed classes  | 
stop_message | 
 a character string provided to users if error triggers.  | 
stop | 
 should the variable stop, or create a warning?  | 
cormat_list
Description
cormat_list
Usage
cormat_list(data, x, y, z, method, p_adjust)
Arguments
data | 
 data.frame  | 
x | 
 character vector, row names  | 
y | 
 character vector, column names  | 
z | 
 character vector, partial variable names  | 
method | 
 string, passed to cor.test  | 
p_adjust | 
 string, passed to p.adjust  | 
corx
Description
Calculates correlations matrices. Relevant values are stored in a list with methods for easy retrieval and formatting in publication ready tables.
Usage
corx(
  data,
  x = NULL,
  y = NULL,
  z = NULL,
  method = c("pearson", "spearman", "kendall"),
  stars = c(0.05, 0.01, 0.001),
  p_adjust = c("none", "holm", "hochberg", "hommel", "bonferroni", "BH", "BY", "fdr"),
  round = 2,
  remove_lead = TRUE,
  triangle = NULL,
  caption = NULL,
  note = NULL,
  describe = FALSE,
  grey_nonsig = TRUE,
  call_only = FALSE
)
Arguments
data | 
 data.frame or matrix  | 
x | 
 a vector of rownames. Defaults to all  | 
y | 
 a vector of colnames. If not supplied, y is set to x.  | 
z | 
 a vector of variable names. Control variables to be used in partial correlations - defaults to NULL  | 
method | 
 character. One of "pearson", "spearman", or "kendall"  | 
stars | 
 a numeric vector. This argument defines cut-offs for p-value stars.  | 
p_adjust | 
 character. What adjustment for multiple tests should be used? One of "none" (default), "holm", "hochberg", "hommel", "bonferroni", "BH", "BY", or "fdr"  | 
round | 
 numeric. Number of digits in printing  | 
remove_lead | 
 logical. if TRUE (the default), leading zeros are removed in summaries  | 
triangle | 
 character. one of "lower", "upper" or NULL (the default)  | 
caption | 
 character. table caption. Passed to plots  | 
note | 
 character. Text for a table note  | 
describe | 
 list of named functions. If functions are supplied to describe, new columns will be bound to the 'APA matrix' for each function in the list. Describe also accepts a variety of shortcuts. If describe is set to TRUE, mean and standard deviation are returned for all row variables. Describe can accept a character vector to call the following descriptive functions: c('mean','sd','var','median','iqr','skewness','kurtosis'). These shortcuts are powered by 'tidyselect'. Skewness and kurtosis are calculated using the 'moments' package. All functions retrieved with shortcuts remove missing values.  | 
grey_nonsig | 
 logical. Should non-significant values be grey in output? This argument does nothing if describe is not set to FALSE  | 
call_only | 
 logical. For debugging, if TRUE only the call is returned  | 
Details
Constructs correlation matrices using 'stats::cor.test' unless z is specified. When z is specified ppcor::ppcor.test is used instead. Character and factor variables are not accepted. To prevent errors, users must first convert all variables to numeric.
## Partial correlations:
Supplying the argument z will call ppcor::pcor.test the correlation pair are supplied to arguments x and y. The vector of z given to corx is passed to argument z in pcor.test.
## Missing data:
Observations containing missing data required to complete a correlation or partial correlation are automatically removed.
## P-adjust:
P-values attained can be adjusted for multiple comparisons by using the 'p_adjust' argument. This calls the function stats::p.adjust. When a matrix is symmetrical, p-values are only adjusted for unique comparisons. When a correlation matrix is not symmetrical, all comparisons are assumed to be unique.
Value
A list of class 'corx' which includes: * "call" The call which if evaluated reproduces the object * "apa" An 'APA' formatted correlation matrix with significance stars * "r" Raw correlation coefficients * "p" p-values * "n" Pairwise observations * "caption" Object caption * "note" Object note
Examples
cor_mat <- corx(mtcars, x = c(mpg,cyl,disp), y = c(wt,drat,disp,qsec),
           z = wt, round = 2, stars = c(0.05),
           caption = "Controlling for weight" ,
           describe = list("mean" = function(x) mean(x,na.rm=TRUE)))
cor_mat
coef(cor_mat)
cor_mat$p
plot(cor_mat)
cor_2 <- corx(iris[,-5], describe = c(median, IQR = iqr, kurt = kurtosis),
         note = "Using shortcuts to select describe functions", triangle = "lower")
cor_2
digits
Description
Consistent rounding for strings
Usage
digits(x, n = 2)
Arguments
x | 
 number to round  | 
n | 
 number of digits  | 
partial_n_matrix
Description
Calculate complete observations for a crosstab + a third variable
Usage
partial_n_matrix(data, x, y, z)
Arguments
data | 
 data.frame or matrix  | 
x | 
 rownames  | 
y | 
 colnames  | 
z | 
 partial variable vector  | 
plot.corx
Description
plot.corx
Usage
## S3 method for class 'corx'
plot(x, ...)
Arguments
x | 
 a corx object  | 
... | 
 other arguments to ggcorrplot::ggcorrplot  | 
plot_mds
Description
Perform multidimensional scaling of a corx object and plot results
Usage
plot_mds(corx, k = NULL, abs = TRUE, ...)
Arguments
corx | 
 corx object  | 
k | 
 numeric. The number of clusters. If set to "auto" will be equal to the number of principal components that explain more than 5% of total variance.  | 
abs | 
 logical. If TRUE (the default) negative correlations will be turned positive. This means items with high negative correlations will be treated as highly similar.  | 
... | 
 additional arguments passed to ggpubr::ggscatter  | 
Details
plot_mds performs classic multidimensional scaling on a correlation matrix. The correlation matrix is first converted to a distance matrix using psych::cor2dist. This function employs the following formula:
d = \sqrt(2*(1-r))
These distances are then passed to stats::cmdscale where k = 2. To compute latex, distances are predict from the cmdscale output and correlated with input distances. This correlation is squared.
If the value of R^2 is less than 70%, a warning will inform users that two-dimensions may not be sufficient to represent item relationships.
The position of variables is then plotted with ggplot2. Clusters of items are identified using stats::kmeans. The number of clusters is determined using principal component analysis unless specified.
References
Carlson, D.L., 2017. Quantitative methods in archaeology using R. Cambridge University Press.
print.corx
Description
print.corx
Usage
## S3 method for class 'corx'
print(x, ...)
Arguments
x | 
 object  | 
... | 
 extra arguments  | 
rename if needed
Description
Renames columns
Usage
rename_if_needed(data, x)
Arguments
data | 
 data object  | 
x | 
 a character vector. If named, columns will be renamed  | 
star_matrix
Description
Replaces p-values with stars
Usage
star_matrix(m, stars)
Arguments
m | 
 matrix of p-values  | 
stars | 
 a vector of p-value thresholds to replace with stars  | 
to_clipboard
Description
Sends a formatted corx table to the clipboard so that it can be pasted into excel.
Usage
to_clipboard(x, ...)
Arguments
x | 
 a corx object, matrix, or data.frame  | 
... | 
 additional arguments passed to 'clipr::write_clip'  | 
to_table
Description
Tabulate correlation matrices
Usage
to_table(corx, include_p = FALSE)
Arguments
corx | 
 a corx object  | 
include_p | 
 logical. should p-values be included?  |