Re: Need Help Creating a Matrix #2

  • Follow


Ya Huang, thanks very much for your response... ... I will try out the code
later tonight and report back.

rgds, Cy
------------------------------------------------------------------



On Mon, Oct 26, 2009 at 2:31 PM, Ya Huang <ya.huang@amylin.com> wrote:

> Here is one:
>
> data xx;
> input ClassA $ OtherStud $ WorkWith;
> cards;
> AA  DD  1
> AA  EE  0
> AA  BB  1
> BB  FF  1
> BB  GG  1
> BB  KK  0
> CC  AA  1
> CC  BB  1
> ;
>
> proc sql;
> select distinct classa into :colnm separated by ' '
> from xx;
>
> data yy;
>  array col &colnm;
>  do until(last.classa);
>  set xx;
>  by classa;
>   do over col;
>   if otherstud=vname(col) and workwith=1 then col=1;
>   end;
>   do over col;
>   if col=. then col=0;
>   end;
>  end;
> run;
>
> proc print;
> var classa &colnm;
> run;
>
>         Class
>  Obs      A      AA    BB    CC
>
>   1      AA       0     1     0
>   2      BB       0     0     0
>   3      CC       1     1     0
>
>
> On Mon, 26 Oct 2009 09:41:45 -0400, Chao Yawo <Yawo1964@YAHOO.COM> wrote:
>
> >Hi,
> >
> >I have a dataset with the following structure.
> >
> >
> >ColumnA            ColumnB         ColumnC
> >ClassA            OtherStud        WorkWith
> >
> >AA                     DD                1
> >AA                     EE                0
> >AA                     BB                1
> >BB                     FF                1
> >BB                     GG                1
> >BB                     KK                0
> >CC                     AA                1
> >CC                     BB                1
> >
> >
> >ColumnA refers to students in ClassroomA, and Column B refers to "Other
> >Students" in the school who could act as work and/or playmates.
> >
> >
> >
> >Note, ColumnB could also include some of the same students in
> >ColumnA(ClassA) who work with each other (For example, Students: AA
> >and BB).
> >
> >If a Student in Classroom A works with a student in ClassroomB, ColumnC
> >takes the value of 1, and 0(zero) if otherwise
> >
> >So, looking at ColumnA, we find that there are three students:  AA, BB and
> >CC. Student_AA for instance interacts with three students <DD, EE, BB> but
> only
> >works with DD and BB.  Similarly, Student_CC interacts with two students
> ><AA, and BB> and works and plays with each of them.
> >
> >Now, I am interested in constructing a matrix indicating which
> >students in ClassroomA work with each other. This means
> >that student_AA for instance works with student_BB, who is in his/her
> >classroom, hence the cell in their matrix will have a "1".
> >
> >Again, Student_CC in ClassroomA works with 2 other members of
> >his/her own class<ie, AA and BB>.  So CC would have two "1s" in the
> matrix.
> >
> >The resulting matrix for the "Works With" relation (ColumnC) among the 3
> >students in ClassroomA would look like this.
> >
> >        AA    BB      CC
> >AA      0     1        0
> >BB      0     0        0
> >CC      1     1        0
> >
> >This matrix is the output I am interested in, and need to produce for
> >the relationship specified in Column C.
> >
> >I would certainly appreciate some ideas to help me produce this.
> >
> >
> >Thanks in advance for your assistance.
> >
> >Sincerely, Cy
> >
> >
> >------------------------------------------------------------------
>
0
Reply Yawo1964 (17) 10/27/2009 4:48:27 PM


0 Replies
24 Views

(page loaded in 0.082 seconds)


Reply: