<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Bug in a code . Can anybody help me out. in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Bug-in-a-code-Can-anybody-help-me-out/m-p/73258#M15756</link>
    <description>this should work as well:&lt;BR /&gt;
&lt;BR /&gt;
data have;&lt;BR /&gt;
Input Obs Name $;&lt;BR /&gt;
datalines;&lt;BR /&gt;
1 2&lt;BR /&gt;
1 3&lt;BR /&gt;
1 4&lt;BR /&gt;
1 5&lt;BR /&gt;
1 6&lt;BR /&gt;
1 7&lt;BR /&gt;
1 8&lt;BR /&gt;
1 9&lt;BR /&gt;
1 10&lt;BR /&gt;
1 11&lt;BR /&gt;
1 12&lt;BR /&gt;
1 13&lt;BR /&gt;
2 3&lt;BR /&gt;
2 4&lt;BR /&gt;
2 5&lt;BR /&gt;
2 6&lt;BR /&gt;
2 7&lt;BR /&gt;
2 7&lt;BR /&gt;
2 8&lt;BR /&gt;
;&lt;BR /&gt;
&lt;BR /&gt;
data want (keep=obs string);&lt;BR /&gt;
  set have;&lt;BR /&gt;
  by obs;&lt;BR /&gt;
  length string $ 1000;&lt;BR /&gt;
  retain string;&lt;BR /&gt;
  counter+1;&lt;BR /&gt;
  if first.obs then string=strip(Name);&lt;BR /&gt;
  else do;&lt;BR /&gt;
    if counter LE 10 then string=cats(string,',',Name);&lt;BR /&gt;
  end;&lt;BR /&gt;
  if last.obs then do;&lt;BR /&gt;
    output;&lt;BR /&gt;
    counter=0;&lt;BR /&gt;
  end;&lt;BR /&gt;
run;</description>
    <pubDate>Fri, 25 Sep 2009 14:13:46 GMT</pubDate>
    <dc:creator>Patrick</dc:creator>
    <dc:date>2009-09-25T14:13:46Z</dc:date>
    <item>
      <title>Bug in a code . Can anybody help me out.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Bug-in-a-code-Can-anybody-help-me-out/m-p/73255#M15753</link>
      <description>Input&lt;BR /&gt;
&lt;BR /&gt;
Obs     Name&lt;BR /&gt;
1	2&lt;BR /&gt;
1	3&lt;BR /&gt;
1	4&lt;BR /&gt;
1	5&lt;BR /&gt;
1	6&lt;BR /&gt;
1	7&lt;BR /&gt;
1	8&lt;BR /&gt;
1	9&lt;BR /&gt;
1	10&lt;BR /&gt;
1	11&lt;BR /&gt;
1	12&lt;BR /&gt;
1	13&lt;BR /&gt;
2               3&lt;BR /&gt;
2  	4&lt;BR /&gt;
2	5&lt;BR /&gt;
2	6&lt;BR /&gt;
2	7&lt;BR /&gt;
2	7&lt;BR /&gt;
2	8&lt;BR /&gt;
&lt;BR /&gt;
Requirment - For every similar value of Obs - I want one single row such that it concatenates any 10 &lt;BR /&gt;
&lt;BR /&gt;
Names seperated by comma.&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Output should come like this :-&lt;BR /&gt;
obs Name&lt;BR /&gt;
1   2,3,4,5,6,7,8,9,10,11&lt;BR /&gt;
2   3,4,5,6,7,7,8</description>
      <pubDate>Fri, 25 Sep 2009 11:49:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Bug-in-a-code-Can-anybody-help-me-out/m-p/73255#M15753</guid>
      <dc:creator>er_awasthi</dc:creator>
      <dc:date>2009-09-25T11:49:16Z</dc:date>
    </item>
    <item>
      <title>Re: Bug in a code . Can anybody help me out.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Bug-in-a-code-Can-anybody-help-me-out/m-p/73256#M15754</link>
      <description>I wrote this code. set 1 has Obs and Name as variables&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
DATA SET2;                                     &lt;BR /&gt;
    SET SET1;                                  &lt;BR /&gt;
    BY OBS;                                    &lt;BR /&gt;
    RETAIN STR1;                               &lt;BR /&gt;
    LENGTH STR1 $ 100.;                        &lt;BR /&gt;
    LENGTH STR2 $ 100.;                        &lt;BR /&gt;
    IF (FIRST.OBS AND LAST.OBS) THEN           &lt;BR /&gt;
    DO;                                        &lt;BR /&gt;
       STR1 = NAME;                            &lt;BR /&gt;
    END;                                       &lt;BR /&gt;
    ELSE                                       &lt;BR /&gt;
    DO;                                        &lt;BR /&gt;
       IF FIRST.OBS THEN                       &lt;BR /&gt;
         DO;&lt;BR /&gt;
         STR1 = NAME;&lt;BR /&gt;
         END;                     &lt;BR /&gt;
       ELSE                                    &lt;BR /&gt;
       DO;                                     &lt;BR /&gt;
       STR2 = STR1;                            &lt;BR /&gt;
       STR1 = ' ';                             &lt;BR /&gt;
       STR1 = TRIM(STR2)||','||TRIM(NAME);     &lt;BR /&gt;
       END;                       &lt;BR /&gt;
    END;                          &lt;BR /&gt;
    IF LAST.OBS THEN              &lt;BR /&gt;
    DO;                           &lt;BR /&gt;
    OUTPUT;                       &lt;BR /&gt;
    STR1 = ' ';                   &lt;BR /&gt;
    END;                          &lt;BR /&gt;
    DROP NAME STR2;               &lt;BR /&gt;
PROC PRINT DATA = SET2 NOOBS; &lt;BR /&gt;
&lt;BR /&gt;
But there is one bug in this code. &lt;BR /&gt;
&lt;BR /&gt;
I'm getting output as &lt;BR /&gt;
Obs Name                              &lt;BR /&gt;
1   2,3,4,5,6,7,8,9,10,11,12,13&lt;BR /&gt;
2   3,4,5,6,7,7,8&lt;BR /&gt;
&lt;BR /&gt;
But i want any 10 names in output for similar values of obs &lt;BR /&gt;
&lt;BR /&gt;
The output should be &lt;BR /&gt;
&lt;BR /&gt;
Output should come like this :-&lt;BR /&gt;
obs     Name&lt;BR /&gt;
1       2,3,4,5,6,7,8,9,10,11&lt;BR /&gt;
2       3,4,5,6,7,7,8&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Can anybody help me out to limit the  output to any 10 names for similar values of obs</description>
      <pubDate>Fri, 25 Sep 2009 11:50:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Bug-in-a-code-Can-anybody-help-me-out/m-p/73256#M15754</guid>
      <dc:creator>er_awasthi</dc:creator>
      <dc:date>2009-09-25T11:50:40Z</dc:date>
    </item>
    <item>
      <title>Re: Bug in a code . Can anybody help me out.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Bug-in-a-code-Can-anybody-help-me-out/m-p/73257#M15755</link>
      <description>Hi,&lt;BR /&gt;
&lt;BR /&gt;
I think adding these couple of lines works as you wished:&lt;BR /&gt;
&lt;BR /&gt;
DATA SET2 (drop=num); &lt;BR /&gt;
SET SET1; &lt;BR /&gt;
BY OBS; &lt;BR /&gt;
RETAIN STR1; &lt;BR /&gt;
&lt;BR /&gt;
LENGTH STR1 $ 100.; &lt;BR /&gt;
LENGTH STR2 $ 100.; &lt;BR /&gt;
&lt;BR /&gt;
&lt;B&gt;if first.obs then num=0;&lt;BR /&gt;
num+1;&lt;/B&gt;&lt;BR /&gt;
&lt;BR /&gt;
IF (FIRST.OBS AND LAST.OBS) THEN &lt;BR /&gt;
DO; &lt;BR /&gt;
STR1 = NAME; &lt;BR /&gt;
END; &lt;BR /&gt;
ELSE &lt;BR /&gt;
DO; &lt;BR /&gt;
IF FIRST.OBS THEN &lt;BR /&gt;
DO;&lt;BR /&gt;
STR1 = NAME;&lt;BR /&gt;
END; &lt;BR /&gt;
&lt;BR /&gt;
ELSE &lt;B&gt;IF num le 10 then&lt;/B&gt; DO;&lt;BR /&gt;
&lt;BR /&gt;
STR2 = STR1; &lt;BR /&gt;
STR1 = ' '; &lt;BR /&gt;
STR1 = TRIM(STR2)||','||TRIM(NAME); &lt;BR /&gt;
END; &lt;BR /&gt;
END; &lt;BR /&gt;
IF LAST.OBS THEN &lt;BR /&gt;
DO; &lt;BR /&gt;
OUTPUT; &lt;BR /&gt;
STR1 = ' '; &lt;BR /&gt;
END; &lt;BR /&gt;
DROP NAME STR2; &lt;BR /&gt;
run;</description>
      <pubDate>Fri, 25 Sep 2009 12:50:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Bug-in-a-code-Can-anybody-help-me-out/m-p/73257#M15755</guid>
      <dc:creator>ieva</dc:creator>
      <dc:date>2009-09-25T12:50:09Z</dc:date>
    </item>
    <item>
      <title>Re: Bug in a code . Can anybody help me out.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Bug-in-a-code-Can-anybody-help-me-out/m-p/73258#M15756</link>
      <description>this should work as well:&lt;BR /&gt;
&lt;BR /&gt;
data have;&lt;BR /&gt;
Input Obs Name $;&lt;BR /&gt;
datalines;&lt;BR /&gt;
1 2&lt;BR /&gt;
1 3&lt;BR /&gt;
1 4&lt;BR /&gt;
1 5&lt;BR /&gt;
1 6&lt;BR /&gt;
1 7&lt;BR /&gt;
1 8&lt;BR /&gt;
1 9&lt;BR /&gt;
1 10&lt;BR /&gt;
1 11&lt;BR /&gt;
1 12&lt;BR /&gt;
1 13&lt;BR /&gt;
2 3&lt;BR /&gt;
2 4&lt;BR /&gt;
2 5&lt;BR /&gt;
2 6&lt;BR /&gt;
2 7&lt;BR /&gt;
2 7&lt;BR /&gt;
2 8&lt;BR /&gt;
;&lt;BR /&gt;
&lt;BR /&gt;
data want (keep=obs string);&lt;BR /&gt;
  set have;&lt;BR /&gt;
  by obs;&lt;BR /&gt;
  length string $ 1000;&lt;BR /&gt;
  retain string;&lt;BR /&gt;
  counter+1;&lt;BR /&gt;
  if first.obs then string=strip(Name);&lt;BR /&gt;
  else do;&lt;BR /&gt;
    if counter LE 10 then string=cats(string,',',Name);&lt;BR /&gt;
  end;&lt;BR /&gt;
  if last.obs then do;&lt;BR /&gt;
    output;&lt;BR /&gt;
    counter=0;&lt;BR /&gt;
  end;&lt;BR /&gt;
run;</description>
      <pubDate>Fri, 25 Sep 2009 14:13:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Bug-in-a-code-Can-anybody-help-me-out/m-p/73258#M15756</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2009-09-25T14:13:46Z</dc:date>
    </item>
  </channel>
</rss>

