Count number of unique values in column one, for each unique value in column 2
34 ビュー (過去 30 日間)
古いコメントを表示
I've been faced with a problem that is giving me lots of trouble. I need to calculate the number of unique records in one column for each unique record in the second column. For example: If I have
Activities = {'walk', 'monday'; 'walk', 'monday'; 'eat', 'monday'; 'TV', 'tuesday'; 'run','wednesday'; 'eat', 'wednesday';...}
'call', 'Thursday';'work', 'Thursday'; 'call', 'Thursday';'work', 'Thursday';'sleep','Thursday'}
What I'd like in another column is the total number of unique activies for each unique day, formatted like "Result".
Result = [2;2;2;1;2;2;3;3;3;3;3]
1 件のコメント
WAT
2015 年 9 月 29 日
This seems to be a repeat of http://www.mathworks.com/matlabcentral/answers/245839-count-the-number-of-occurrences-of-elements-in-second-column
採用された回答
Star Strider
2015 年 9 月 29 日
編集済み: Star Strider
2015 年 9 月 29 日
Expanding on Andrei Bobrov’s Answer to a related Question:
[~,~,ic1] = unique(Activities(:,1), 'stable'); % Unique Activities
[~,~,ic2] = unique(Activities(:,2), 'stable'); % Unique Days
H = accumarray([ic1 ic2], 1); % Histogram
LH = sum(H > 0); % Sum Logical Array
SH = sum(H); % Sum Event Array
Result = [];
for k1 = 1:length(LH)
Result = [Result; repmat(LH(k1), SH(k1), 1)]; % Create ‘Result’ Vector
end
3 件のコメント
Star Strider
2015 年 9 月 29 日
My pleasure!
To be a bit more descriptive, LH is the sum of different events per day, and SH is the number of total events per day.
Andrei Bobrov
2015 年 9 月 29 日
[~,~,ic1] = unique(Activities(:,1), 'stable');
[~,~,ic2] = unique(Activities(:,2), 'stable');
H = accumarray([ic1 ic2], 1);
Result = repelem(sum(H > 0),sum(H));
or
H1 = sum(H > 0);
Result = H1(ic2);
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Data Type Identification についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!