How to find NaN in a cell of type table then delete the entire row

18 views (last 30 days)
Hi there,
If anyone can help me out please that would be greatly appreciated. I have this huge data that consist of 20k rows and 75 columns in excel (.csv). But I created a small working file which looks like this.
sampleFile2.PNG
As seen, there are NaN values in this data table. So what I want to do is:
  • go through the data and locate all the NaN values.
  • if a row contains at least 1 NaN in the cell, I want to store the whole row to another list.
  • once its gone through the list, I want to create a function that deletes the listed rows at the same time.
At the end, Im hoping to not see rows that contains any NaN values in any cell. is this possible? I have been trying to figure it out for the past couple weeks. tried bits and pieces from different solutions. nothing just seems to work. it would be greatly appreciated if anyone out there knows. PLEASE.

Accepted Answer

madhan ravi
madhan ravi on 7 Jan 2019
Edited: madhan ravi on 7 Jan 2019
Try the below example:
Age = [38;43;38;40;49];
Smoker = logical([1;0;1;0;1]);
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 NaN; 122 80];
T = table(Age,Smoker,Height,Weight,BloodPressure);
T=T{:,:}; % adapt this to your data
T(~any(isnan(T),2),:) % adapt this to your data
  9 Comments
Luna
Luna on 7 Jan 2019
unique function may help you on this but how will you decide which duplicate you want to remove or keep?
Andrea Del Rosario
Andrea Del Rosario on 7 Jan 2019
I was thinking as you can see there is a 'TestTime' in my set of data. the last time stamp determines that it's the unique row I want to keep! Would you be able to guide me on this?

Sign in to comment.

More Answers (0)

Categories

Find more on Tables in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!