Creating a conditional variable or function such that

Hi, I'm struggling for hours to do this...
Suppose I have this data:
schoolid classid classsize enrollment newcolumn
1001 1 10 22 11
1001 2 12 22 11
1005 1 14 29 14.5
1005 2 15 29 14.5
1018 1 8 22 22/3
1018 2 4 22 22/3
1018 3 10 22 22/3
.
.
.
I would like to generate a function that gives "newColumn" above.
Plaese help me out. Thanks.

 채택된 답변

Ameer Hamza
Ameer Hamza 2020년 6월 3일
Try this
schoolID = [1001 1001 1005 1005 1018 1018 1018];
enrollment = [22 22 29 29 22 22 22];
grps = findgroups(schoolID);
avg = splitapply(@(x) x(1)/numel(x), enrollment.', grps.');
newcolumn = avg(grps);

댓글 수: 2

Wow... Thank you so much! It worked perfectly. I don't know how it worked. I will study closely each codes. Anyways, thanks again!
I am glad to be of help! Documentation pages will be helpful in understanding this.

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 MATLAB에 대해 자세히 알아보기

질문:

JB
2020년 6월 3일

댓글:

2020년 6월 4일

Community Treasure Hunt

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

Start Hunting!

Translated by