# Correlation in R with Missing Values

Correlation in R with Missing Values, when one or more variables have missing values, you can compute correlation coefficients in R using the following techniques:

The examples that follow demonstrate each technique in action.

### Example 1: Determine the correlation coefficient when values are missing Present

If we try to compute the Pearson correlation coefficient between two variables using the cor() method and there are missing values.

Let’s create two variables

x <- c(60, 78, 90, 87, 84, NA, 91, 94, 83, 95) y <- c(50, NA, 79, 86, 80, 83, 88, 92, 76, 15)

Try to determine the correlation between x and y.

cor(x, y) [1] NA

Since we didn’t indicate how to handle missing values, the cor() function returns NA.

To get around this problem, we may tell R to only use paired observations when both values are present by passing it the argument use=’complete.obs’:

determine the correlation between x and y.

How to add NA values into a factor level » finnstats

cor(x, y, use='complete.obs') [1] 0.1519416

The two variables’ correlation coefficient comes out to be 0.1519416.

It should be noted that for determining the correlation coefficient, the cor() function only examined pairwise pairs in which both values were present.

### Example 2: Create a correlation matrix with missing values Present

When missing values are present, let’s say we try to use the cor() method to build a correlation matrix for a data frame with three variables:

Create a data frame that contains some missing values.

df <- data.frame(x=c(10, 18, 30, 87, 44, NA, 41, 24, 83, 15), y=c(50, NA, 79, 86, 84, 83, 88, 92, 76, 75), z=c(57, 50, 48, 59, 50, 78, 71, 33, NA, 50))

try to construct a correlation matrix for the data frame’s variables.

Convert character strings to Date in R » finnstats

cor(df)

x y z x 1 NA NA y NA 1 NA z NA NA 1

Due to the fact that we didn’t specify how to handle missing values, the cor() function returns NA in a number of places.

To get around this problem, we can tell R to only use pairwise observations when both values are present by passing it the input use=’pairwise.complete.obs’:

only pairwise full observations should be used to generate the correlation matrix for the variables.

cor(df, use='pairwise.complete.obs')

x y z x 1.0000000 0.37440384 0.34186351 y 0.3744038 1.00000000 -0.06905567 z 0.3418635 -0.06905567 1.00000000

The data frame’s correlation coefficients for each pairwise combination of variables are now displayed.