Count unique categorical values in table
Ältere Kommentare anzeigen
My table consist of only categorical values. I try to find unique elements and how many times do they appear in my table. Not my actual data but following can be used instead:
LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
Age = [38;43;38;40;49];
FirstName = {'Amanda' ;'Brenda';'Carl'; 'Denis'; 'Ethan'};
Something = {'String1' ;'String2';'String2'; 'String1'; 'String5'};
Weight = [176;163;131;133;119];
FavoriteColor = {'blue' ;'red' ;'yellow'; 'orange' ;'colorblind' };
T = table(Age,FirstName,Weight,FavoriteColor,Something,'RowNames',LastName)
T.FavoriteColor= categorical(T.FavoriteColor);
T.Something= categorical(T.Something);
I think It is similar to the idea of applying a histogram function so I tried it as well but the data being categorical makes it hard. Could you help?
2 Kommentare
Azzi Abdelmalek
am 25 Okt. 2014
What is tNonNumeric? what type of variable?
Akzeptierte Antwort
Weitere Antworten (2)
Image Analyst
am 25 Okt. 2014
0 Stimmen
For some reason you chose to use the original poster's code which he said wasn't working rather than either of the two answers that worked. Why? Why not try to use one of the scripts that worked?
3 Kommentare
Ege
am 25 Okt. 2014
Image Analyst
am 25 Okt. 2014
What he needed was the histogram. Both answers had that but his original code did not . You can use one of the Answers or try Azzi's code here.
Azzi Abdelmalek
am 25 Okt. 2014
Look at this example
LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
Age = [38;43;38;40;40];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];
tNonNumeric = table(Age,Height,Weight,BloodPressure,'RowNames',LastName)
%---------------------------------------------------------------------------
a=tNonNumeric.Age
[uniq,jj,kk]=unique(a)
freq=histc(kk,1:numel(uniq))
out=[uniq freq]
7 Kommentare
Ege
am 25 Okt. 2014
Image Analyst
am 25 Okt. 2014
I don't even see cat in Azzi's code. What are you doing?
Ege
am 25 Okt. 2014
Azzi Abdelmalek
am 25 Okt. 2014
To make things easier, post a sample of your data
Image Analyst
am 25 Okt. 2014
If they're strings, the sizes are probably different so you'll have to create a cell array instead of a character array, which must be rectangular. See http://matlab.wikia.com/wiki/FAQ#What_is_a_cell_array.3F
Ege
am 25 Okt. 2014
Azzi Abdelmalek
am 25 Okt. 2014
What is your question for the new example? what column? the first? or all the columns at the same time?
Kategorien
Mehr zu Characters and Strings finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
