proportion of gender having health issue

조회 수: 4 (최근 30일)
Doaa Alamoudi
Doaa Alamoudi 2020년 5월 31일
댓글: Doaa Alamoudi 2020년 5월 31일
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
dpb 2020년 5월 31일
Look at findgroups, groupsummary with the Subject "Split-Apply-Combine" workflow under splitapply
Many examples...
Doaa Alamoudi
Doaa Alamoudi 2020년 5월 31일
Thank you

댓글을 달려면 로그인하십시오.

채택된 답변

Image Analyst
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
Image Analyst 2020년 5월 31일
I'd do
maleRows = (sex == 1); % To get male students only.
femaleRows = (sex == 2); % To get female students only.
Doaa Alamoudi
Doaa Alamoudi 2020년 5월 31일
I rewrite based on your suggestion and I think it looks bettern now. However I have problem in creating figure showing the result
score=sdq;
BoyGender= (sex == 1);
GirlGender=(sex==2);
BoysMentalHealthProblem = sum(score > 17 & BoyGender)
GirlsMentalHealthProblem = sum(score > 17 & GirlGender)

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

dpb
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
  댓글 수: 1
Doaa Alamoudi
Doaa Alamoudi 2020년 5월 31일
That was Great answer
Thanks for your help

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by