```Date: Fri, 20 Jun 2008 11:48:28 -0400 Reply-To: Prasad Samala Sender: "SAS(r) Discussion" From: Prasad Samala Subject: Re: Comparing across respondents Thank you very much. I am very new to the listserv and the response to my first post is overhelming. I bet I am gonna spend good amount of time here. Coming to the problem in hand, now I have 6 ways of arriving at the solution. I have my own 3 ways and 1 each from Mary, Datanull & Barry. Thank you, guys. I am using proc sql on one version(almost similar to what Datanull was suggesting), proc freq on the second one and IML on the third one. I find all the solutions you provided, to be very efficient way of doing things (like the one where Mary suggested to check for duplicates). But the common problem on all these codes except one is the time it takes to arrive at the solution, as I am dealing with 5000 respondents here. I came up with a code in IML, which looks naive compared to your styles, but gives me a solution with in 3 min real time. AS I don't have much exposure to IML and pitfalls of using it, I would really appreciate if you can provide me some feedback on my code (pasted below). data in; infile cards; input id \$3. v1 v2 v3; cards; 101 1 3 3 102 2 2 4 103 2 1 2 104 1 2 1 105 2 3 3 106 1 2 4 ; run; proc transpose data = in out = in_t;run; %let resp = 6; %let var = 3; %let data = in_t; proc iml; show space; use &data; read all into Y; iter = 0; fc = shape(0,%eval(&resp*&var),&resp); summer = shape(0,&resp,&resp); do i = 1 to &resp; do j = 1 to &resp; do k = 1 to &var; if Y[k,i] = Y[k,j] then fc[k+iter,j] = 1; end; end; iter = iter+&var; end; do i = 1 to &resp; summer[i,] = fc[((i-1)*&var)+1:i*&var,][+,]; end; create out from summer; append from summer; quit; Also, a very silly question...the code above works fine, but on the program editor the words 'do' and 'if' are appearing in red color...Any one has any idea? Its not hurting the result, but it looks strange!! Thanks guys. ```

Back to: Top of message | Previous page | Main SAS-L page