Skip to contents


Estimates the linear and partial correlation coefficients using as input a data frame or a correlation matrix.


lpcor(.data, ..., by = NULL, n = NULL, method = "pearson")



The data to be analyzed. It must be a symmetric correlation matrix or a data frame, possible with grouped data passed from dplyr::group_by().


Variables to use in the correlation. If ... is null (Default) then all the numeric variables from .data are used. It must be a single variable name or a comma-separated list of unquoted variables names.


One variable (factor) to compute the function by. It is a shortcut to dplyr::group_by(). To compute the statistics by more than one grouping variable use that function.


If a correlation matrix is provided, then n is the number of objects used to compute the correlation coefficients.


a character string indicating which correlation coefficient is to be computed. One of 'pearson' (default), 'kendall', or 'spearman'.


If .data is a grouped data passed from dplyr::group_by() then the results will be returned into a list-column of data frames, containing:

  • linear.mat The matrix of linear correlation.

  • partial.mat The matrix of partial correlations.

  • results Hypothesis testing for each pairwise comparison.


Tiago Olivoto


# \donttest{
partial1 <- lpcor(iris)

# Alternatively using the pipe operator %>%
partial2 <- iris %>% lpcor()

# Using a correlation matrix
partial3 <- cor(iris[1:4]) %>%
            lpcor(n = nrow(iris))

# Select all numeric variables and compute the partial correlation
# For each level of Species

partial4 <- lpcor(iris, by = Species)
# }