Table, delete columns with zero

14 views (last 30 days)
newbie9
newbie9 on 27 Aug 2019
Answered: Walter Roberson on 19 Jul 2021
I have a table with many rows and columns. How can I delete a column if any row contains zero? (I found a million ways to delete rows, but not columns, when dealing with tables.)

Accepted Answer

newbie9
newbie9 on 27 Aug 2019
Edited: newbie9 on 27 Aug 2019
Got it; it takes two steps. First repalce zeros with NaN, then can clean it up:
table2 = standardizeMissing(table1, 0); % the 0 is the value to be replaced with NaN
table2 = rmmissing(table2, 2); % the 2 is for deleting rows; use 1 to delete columns

More Answers (1)

Walter Roberson
Walter Roberson on 19 Jul 2021
N = T.Properties.VariableNames;
nvar = length(N);
mask = true(1,nvar);
for K = 1 : nvar
if isnumeric(T.(N{K})) && any(T.(N{K}) == 0, 'all')
mask(K) = false;
end
end
newT = T(:,mask);

Categories

Find more on Tables in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!