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?

 Réponse acceptée

Michael
Michael le 15 Août 2019
Modifié(e) : Michael le 15 Août 2019

0 votes

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 commentaires

madhan ravi
madhan ravi le 15 Août 2019
You forgot to provide the function in the last line.
Michael
Michael le 15 Août 2019
Ups, I'm sorry. I edited my posting.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by