corr(x,y) nan

1 view (last 30 days)
Vishal Thakkar
Vishal Thakkar on 15 Aug 2019
Edited: Image Analyst on 16 Aug 2019
Hello, I am trying to run a correlation using corr(x,y), but my dataset has NaNs in it, for different participants (beginner coder here).
For example, my dataset and code may look like this:
a = [78 88 87 54 68 91 72 nan 88 nan];
b = [nan 35 42 44 67 55 nan 34 25 33];
x = ~isnan(a);
y = ~isnan(b);
[r,p] = corr(x,y)
The result is a table full of NaN in the ouptut.
I am trying to get the r value and the p value. Would there be another way to achieve this?

Accepted Answer

Michael
Michael on 15 Aug 2019
Edited: Michael on 15 Aug 2019
I think you are looking for corrcoef instead of corr. To exclude the nan values, use
a = [78 88 87 54 68 91 72 nan 88 nan];
b = [nan 35 42 44 67 55 nan 34 25 33];
r = corrcoef(a,b, 'rows','complete')
  2 Comments
madhan ravi
madhan ravi on 15 Aug 2019
You forgot to provide the function in the last line.
Michael
Michael on 15 Aug 2019
Ups, I'm sorry. I edited my posting.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!