how extract table RowNames based on table elements
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Yunwei
el 22 de Feb. de 2023
Respondida: Steven Lord
el 22 de Feb. de 2023
Hello all,
I have a table of only one colume with RowNames.
The table have numerical values and NaN.
I want to extract the RowNames of all of the NaN in the table. How can I do that?
Thanks in advance!
0 comentarios
Respuesta aceptada
Voss
el 22 de Feb. de 2023
% a table as you describe
t = table([1;NaN;3;4;NaN],'RowNames',{'A';'B';'C';'D';'E'})
% extract RowNames of the NaN rows
nan_rows = t.Properties.RowNames(isnan(t{:,:}))
0 comentarios
Más respuestas (1)
Steven Lord
el 22 de Feb. de 2023
I'd use ismissing, to avoid the need to extract the whole contents of the table into a separate array.
% a table as you describe
t = table([1;NaN;3;4;NaN],'RowNames',{'A';'B';'C';'D';'E'})
% extract RowNames of the NaN rows
nan_rows = t.Properties.RowNames(ismissing(t))
This also works if t has variables of different types. Yes, I could have listed "elderberry" but I need a missing value for the example.
t.FruitNames = ["apple"; "banana"; "cherry"; "date"; missing]
ismissing(t)
rowWithMissingNumberAndFruit = t.Properties.RowNames(all(ismissing(t), 2))
rowWithMissingNumberOrFruit = t.Properties.RowNames(any(ismissing(t), 2))
The approach Voss posted wouldn't work here.
isnan(t{:,:})
0 comentarios
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!