proportion of gender having health issue
    5 ビュー (過去 30 日間)
  
       古いコメントを表示
    
I have a table that has Gender vector  (1=Boy, 2=Girl) and Healtissue  (based on score). I would like to know the proportion of girls only have a health issue if their score more than 17? 
2 件のコメント
  dpb
      
      
 2020 年 5 月 31 日
				Look at findgroups, groupsummary with the Subject "Split-Apply-Combine" workflow under splitapply
Many examples...
採用された回答
  Image Analyst
      
      
 2020 年 5 月 31 日
        Assume t is your table and you have a column for gender, a column with HealthScore (true or false), and a column for their score (continously-valued number).  Then try
% Find rows with girls who have a score more than 17.
rows1 = (t.Gender == 2) & (t.Score > 17) 
% Now find girls with a score more than 17 who ALSO have a health issue (may not be 100% - may only be part of them).
rows2 = (t.Gender == 2) & (t.Score > 17) & t.HealthIssue  % Assuming this is a logical column.
proportion = rows2 / rows1
5 件のコメント
  Image Analyst
      
      
 2020 年 5 月 31 日
				I'd do
maleRows = (sex == 1);  % To get male students only.
femaleRows = (sex == 2); % To get female students only.
その他の回答 (1 件)
  dpb
      
      
 2020 年 5 月 31 日
        Some other things to explore...
hScore=randi(100,100,1)/4;                                          % An artificial dataset...
sex=(rand(size(hScore))>0.5)+1;                                     % 50:50 roughly
tMH=table(sex,hScore,'VariableNames',{'Gender','HealthIssue'});     % make a table
tMH.Gender=categorical(tMH.Gender,[1,2],{'Boy','Girl'});            % turn into categorical instead
tMH.AtRisk=categorical(tMH.HealthIssue>17);                         % compute the risk factor
heatmap(tMH,'Sex','AtRisk')                                         % one way to look at results...
Results will vary for a random sample, but for the particular dataset generated here:
>> groupsummary(tMH,'Gender')
ans =
  2×2 table
    Gender    GroupCount
    ______    __________
     Boy          51    
     Girl         49    
>> groupsummary(tMH,'AtRisk')
ans =
  2×2 table
    AtRisk    GroupCount
    ______    __________
    false         68    
    true          32    
>> groupsummary(tMH,{'Gender','AtRisk'})
ans =
  4×3 table
    Gender    AtRisk    GroupCount
    ______    ______    __________
     Boy      false         37    
     Boy      true          14    
     Girl     false         31    
     Girl     true          18    
>> 
You can compute percentages from the GroupCounts depending upon whether want by Gender or overall...the above produces

参考
カテゴリ
				Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!