MATLAB Answers

joms
0

extract column name of table with Nan column

Asked by joms
on 17 May 2019
Latest activity Answered by Peter Perkins
on 20 May 2019
How can i return the label name of column with values all Nan
sample1=[1 2 3]';%Sample data
sample2=[4 5 6]';%Sample data
sample3=[7 8 9]';%Sample data
sample4=nan(3,1);%Sample data
patients = table(sample4,sample2,sample3)
sample4 sample2 sample3
_______ _______ _______
NaN 4 7
NaN 5 8
NaN Nan 9
output should be 'sample4' as cell array
NanLabels={'sample4'}

  0 Comments

Sign in to comment.

Products


Release

R2013b

2 Answers

Answer by madhan ravi
on 17 May 2019
 Accepted Answer

patients.Properties.VariableNames(all(isnan(patients{:,:})))

  1 Comment

Thank you very much madhan ravi! This is exactly im looking for.

Sign in to comment.


Answer by Peter Perkins
on 20 May 2019

Using {:,:} to convert the entire table to a homogeneous array is perhaps one way to do this, but scales badly very quickly as the table gets big.
allMissing = all(ismissing(patients),1)
gives you a logical vector of variables in the table all of whose values are missing (whether or not they are numeric). Use that as a subscript into patients.Properties.VariableNames.

  0 Comments

Sign in to comment.