Is there such a table units identification approach?

6 visualizaciones (últimos 30 días)
Leon
Leon el 21 de Oct. de 2020
Comentada: Leon el 21 de Oct. de 2020
Imagine I have a table T1. We know its units will be
Units = T1.Properties.VariableUnits;
Similarly, its header will be
Headers = T1.Properties.VariableNames;
If I know the location of the VariableName, I can find its units easily. For example, if I know Header #35 is "dissolved_oxygen", I can find its unit easily as Units{35}. The thing is that sometimes I may not know the location of the VariableName. The only thing I know is its variableName Is there a similar approach like the Table values?
Column = T1.dissolved_oxygen;
I tried the below and it did not work:
Unit = Units.dissolved_oxygen;
Many thanks!

Respuesta aceptada

Steven Lord
Steven Lord el 21 de Oct. de 2020
Let's make a sample table and give it some units:
>> load patients
>> patients = table(LastName,Gender,Age);
>> patients.Properties.VariableUnits{1} = 'person';
>> patients.Properties.VariableUnits{2} = 'N/A';
>> patients.Properties.VariableUnits{3} = 'years';
Extract the variable names and units from the table:
>> names = patients.Properties.VariableNames;
>> units = patients.Properties.VariableUnits;
Get the units associated with the variable named Age:
>> units(names == "Age")
If you have multiple variable names, use ismember with two outputs to determine which element of the names array corresponds to the variable names you seek.
  1 comentario
Leon
Leon el 21 de Oct. de 2020
Many thanks!
This is what I'm looking for. I find curly parenthesis works even better.
units{names == "Age"}

Iniciar sesión para comentar.

Más respuestas (1)

drummer
drummer el 21 de Oct. de 2020
Try this:
opts = detectImportOptions('yourXLfile.xlsx')
opts.selectedVariableNames = {'dissolved_oxygen'};
T1 = readtable('yourXLfile.xlsx', opts);
summary(T1)
Cheers.
  4 comentarios
drummer
drummer el 21 de Oct. de 2020
I made a different approach from Stephen's, using the same example.
His approach is more dynamic, though. I walked through all the headers.
T = readtable('patients.dat');
headers = T.Properties.VariableNames
for i = 1 : numel(headers)
if strcmp(headers(i), 'Gender') == 1 % if the header is your variable of interest
i % you could replace here by your Unit{i}, for example.
end
end
Leon
Leon el 21 de Oct. de 2020
Many thanks for sharing!

Iniciar sesión para comentar.

Categorías

Más información sobre Tables en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by