R Warning Message in cor() : standard deviation is zero (2 Examples)

 

This article explains how to deal with the “warning message in cor(X) : the standard deviation is zero” in the R programming language.

The tutorial will contain the following content:

So now the part you have been waiting for – the R code…

 

Example 1: Reproduce the Warning Message in cor() – the standard deviation is zero

In this example, I’ll illustrate how to replicate the “warning message in cor(X) : the standard deviation is zero”.

Let’s assume that we have the two variables x1 and x2 as shown below:

x1 <- rep(1, 5)              # Create first example vector
x1                           # Print first example vector
# [1] 1 1 1 1 1
y1 <- 1:5                    # Create second example vector
y1                           # Print second example vector
# [1] 1 2 3 4 5

Furthermore, let’s assume that we want to calculate the correlation of these two variables using the cor function.

Then, we might use the following R code:

cor(x1, y1)                  # Apply cor function
# [1] NA
# Warning message:
# In cor(x1, y1) : the standard deviation is zero

Unfortunately, the RStudio console returns the “warning message in cor(X) : the standard deviation is zero” after executing the previous R syntax.

The reason for this is that our first vector object x1 contains only one value, i.e. all elements are the same. This leads to an NA output and the previously described warning message.

So how can we debug this problem?

 

Example 2: Fix the Warning Message in cor() – the standard deviation is zero

Example 2 explains how to handle the “warning message in cor(X) : the standard deviation is zero”.

For this, we could modify our two vector objects:

x2 <- c(rep(1, 5), 2)        # Modify first example vector
x2                           # Print first modified example vector
# [1] 1 1 1 1 1 2
y2 <- 1:6                    # Modify second example vector
y2                           # Print second modified example vector
# [1] 1 2 3 4 5 6

Now, we could apply the cor function to our updated variables:

cor(x2, y2)                  # Apply cor function
# [1] 0.6546537

As you can see, a valid output is returned and no warning messages are shown.

Note that updating the data as shown in this example usually doesn’t make sense from a theoretical viewpoint. In case this warning message occurs, you should investigate why one of your variables contains only one specific value.

Maybe you have performed a previous data manipulation step wrong, or maybe your data is just not suited for the calculation of a correlation coefficient.

 

Video & Further Resources

Have a look at the following video on the Statistics Globe YouTube channel. I illustrate the R programming codes of this tutorial in the video:

 

The YouTube video will be added soon.

 

In addition, you might have a look at the related articles on this homepage:

 

To summarize: In this article, I have explained how to avoid the “warning message in cor(X) : the standard deviation is zero” in the R programming language. Don’t hesitate to let me know in the comments section below, if you have additional questions. Furthermore, don’t forget to subscribe to my email newsletter to get regular updates on the newest tutorials.

 

Subscribe to the Statistics Globe Newsletter

Get regular updates on the latest tutorials, offers & news at Statistics Globe.
I hate spam & you may opt out anytime: Privacy Policy.


Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.

Top