<?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: How to get uneven row to single row in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-get-uneven-row-to-single-row/m-p/690403#M210037</link>
    <description>&lt;P&gt;Do you have exactly 7 rows of data in your data set? If not, you will need to provide rules based on the content of your variable that tells which ones need to be combined.&lt;/P&gt;</description>
    <pubDate>Fri, 09 Oct 2020 14:13:11 GMT</pubDate>
    <dc:creator>ballardw</dc:creator>
    <dc:date>2020-10-09T14:13:11Z</dc:date>
    <item>
      <title>How to get uneven row to single row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-get-uneven-row-to-single-row/m-p/690381#M210036</link>
      <description>&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;SL_no&lt;/TD&gt;&lt;TD&gt;Column&lt;/TD&gt;&lt;TD&gt;End result&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;A078&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B D BLEDSOE&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;DRAWINGS NOT CHANGED&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;A078&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B D BLEDSOE&amp;nbsp;&amp;nbsp;&amp;nbsp; DRAWINGS NOT CHANGED&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;A050&amp;nbsp;&amp;nbsp;&amp;nbsp; D A MATHISON&amp;nbsp;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;OWNERSHIP OF&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;APPLICABLE&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;A050&amp;nbsp;&amp;nbsp;&amp;nbsp; D A MATHISON&amp;nbsp;&amp;nbsp; OWNERSHIP OF APPLICABLE&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;A070&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B D BLEDSOE&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;DRAWINGS NOT&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;A070&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B D BLEDSOE DRAWINGS NOT&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1 and 2 row is one group&lt;/P&gt;&lt;P&gt;3,4,5, are another group&lt;/P&gt;&lt;P&gt;6 and 7 are another group&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please help me&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 09 Oct 2020 13:55:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-get-uneven-row-to-single-row/m-p/690381#M210036</guid>
      <dc:creator>Sharath_naik</dc:creator>
      <dc:date>2020-10-09T13:55:19Z</dc:date>
    </item>
    <item>
      <title>Re: How to get uneven row to single row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-get-uneven-row-to-single-row/m-p/690403#M210037</link>
      <description>&lt;P&gt;Do you have exactly 7 rows of data in your data set? If not, you will need to provide rules based on the content of your variable that tells which ones need to be combined.&lt;/P&gt;</description>
      <pubDate>Fri, 09 Oct 2020 14:13:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-get-uneven-row-to-single-row/m-p/690403#M210037</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2020-10-09T14:13:11Z</dc:date>
    </item>
    <item>
      <title>Re: How to get uneven row to single row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-get-uneven-row-to-single-row/m-p/690459#M210050</link>
      <description>&lt;P&gt;Did you originally read this from a text file?&lt;/P&gt;
&lt;P&gt;Do you know if the pattern of A### is an identifier for the start of each record? If so, this is pretty easy but if the pattern changes it's not as easy.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/137094"&gt;@Sharath_naik&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;TABLE border="1"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="58px" height="30px"&gt;SL_no&lt;/TD&gt;
&lt;TD width="226px" height="30px"&gt;Column&lt;/TD&gt;
&lt;TD width="426px" height="30px"&gt;End result&lt;/TD&gt;
&lt;TD width="40px" height="30px"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="58px" height="30px"&gt;1&lt;/TD&gt;
&lt;TD width="226px" height="30px"&gt;&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;A078&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B D BLEDSOE&amp;nbsp;&lt;/TD&gt;
&lt;TD width="426px" height="30px"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="40px" height="30px"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="58px" height="30px"&gt;2&lt;/TD&gt;
&lt;TD width="226px" height="30px"&gt;DRAWINGS NOT CHANGED&amp;nbsp;&lt;/TD&gt;
&lt;TD width="426px" height="30px"&gt;A078&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B D BLEDSOE&amp;nbsp;&amp;nbsp;&amp;nbsp; DRAWINGS NOT CHANGED&lt;/TD&gt;
&lt;TD width="40px" height="30px"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="58px" height="30px"&gt;3&lt;/TD&gt;
&lt;TD width="226px" height="30px"&gt;&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;A050&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; D A MATHISON&amp;nbsp;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="426px" height="30px"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="40px" height="30px"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="58px" height="30px"&gt;4&lt;/TD&gt;
&lt;TD width="226px" height="30px"&gt;OWNERSHIP OF&amp;nbsp;&lt;/TD&gt;
&lt;TD width="426px" height="30px"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="40px" height="30px"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="58px" height="30px"&gt;5&lt;/TD&gt;
&lt;TD width="226px" height="30px"&gt;APPLICABLE&amp;nbsp;&lt;/TD&gt;
&lt;TD width="426px" height="30px"&gt;A050&amp;nbsp;&amp;nbsp;&amp;nbsp; D A MATHISON&amp;nbsp;&amp;nbsp; OWNERSHIP OF APPLICABLE&amp;nbsp;&lt;/TD&gt;
&lt;TD width="40px" height="30px"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="58px" height="30px"&gt;6&lt;/TD&gt;
&lt;TD width="226px" height="30px"&gt;&lt;STRONG&gt;&lt;FONT color="#FF0000"&gt;A070&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B D BLEDSOE&amp;nbsp;&lt;/TD&gt;
&lt;TD width="426px" height="30px"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="40px" height="30px"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="58px" height="30px"&gt;7&lt;/TD&gt;
&lt;TD width="226px" height="30px"&gt;DRAWINGS NOT&amp;nbsp;&lt;/TD&gt;
&lt;TD width="426px" height="30px"&gt;A070&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B D BLEDSOE DRAWINGS NOT&amp;nbsp;&lt;/TD&gt;
&lt;TD width="40px" height="30px"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1 and 2 row is one group&lt;/P&gt;
&lt;P&gt;3,4,5, are another group&lt;/P&gt;
&lt;P&gt;6 and 7 are another group&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please help me&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 09 Oct 2020 15:28:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-get-uneven-row-to-single-row/m-p/690459#M210050</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2020-10-09T15:28:27Z</dc:date>
    </item>
    <item>
      <title>Re: How to get uneven row to single row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-get-uneven-row-to-single-row/m-p/690474#M210058</link>
      <description>&lt;P&gt;Thanks for Replying&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13879"&gt;@Reeza&lt;/a&gt;&amp;nbsp;. &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#A### is a partern ...#A or #B or #C will be generated going forward....&amp;nbsp;&lt;/P&gt;&lt;P&gt;It's not .txt, IT;s a mainframe data,... But in Sorted order&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 09 Oct 2020 15:57:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-get-uneven-row-to-single-row/m-p/690474#M210058</guid>
      <dc:creator>Sharath_naik</dc:creator>
      <dc:date>2020-10-09T15:57:33Z</dc:date>
    </item>
    <item>
      <title>Re: How to get uneven row to single row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-get-uneven-row-to-single-row/m-p/690475#M210059</link>
      <description>Thanks for replying Reeza,,,,, Yes its a pattern.. could you please share the solution</description>
      <pubDate>Fri, 09 Oct 2020 15:58:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-get-uneven-row-to-single-row/m-p/690475#M210059</guid>
      <dc:creator>Sharath_naik</dc:creator>
      <dc:date>2020-10-09T15:58:41Z</dc:date>
    </item>
    <item>
      <title>Re: How to get uneven row to single row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-get-uneven-row-to-single-row/m-p/690476#M210060</link>
      <description>It's more than 7 lines... could you please share the combined logic.... I'm worried because some group has 2 lines, some group as 3 lines</description>
      <pubDate>Fri, 09 Oct 2020 16:00:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-get-uneven-row-to-single-row/m-p/690476#M210060</guid>
      <dc:creator>Sharath_naik</dc:creator>
      <dc:date>2020-10-09T16:00:51Z</dc:date>
    </item>
    <item>
      <title>Re: How to get uneven row to single row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-get-uneven-row-to-single-row/m-p/690485#M210061</link>
      <description>&lt;P&gt;You've marked the question as solved so I'm assuming no further responses are required.&lt;/P&gt;</description>
      <pubDate>Fri, 09 Oct 2020 16:34:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-get-uneven-row-to-single-row/m-p/690485#M210061</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2020-10-09T16:34:16Z</dc:date>
    </item>
    <item>
      <title>Re: How to get uneven row to single row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-get-uneven-row-to-single-row/m-p/690487#M210062</link>
      <description>&lt;P&gt;You can use PRXMATCH to detect the 'new group of records' start condition.&lt;/P&gt;
&lt;P&gt;Use a retained result string to accumulate a concatenation of each row in the group.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Example (generate some sample data)&lt;/P&gt;
&lt;LI-SPOILER&gt;
&lt;PRE&gt;data have;
  call streaminit(123);
  do rownum = 1 to 1000;
    length mfrecord $25;  /* mainframe record */
    if rand('uniform') &amp;lt; 0.25 or rownum in (1, 101,102,103) then do;
      mfrecord = 
        byte(64+rand('integer',26)) ||
        put(rand('integer',999),z3.) ||
        '   AAAAAAAAA'
      ;
      seq = 1;
    end;
    else do;
      seq + 1;
      mfrecord = repeat(byte(64+seq), rand('integer',0,24));
    end;
    OUTPUT;   
  end;

  keep rownum mfrecord;
run;&lt;/PRE&gt;
&lt;/LI-SPOILER&gt;
&lt;P&gt;Example (compute result as a group aggregate that is&amp;nbsp;&lt;EM&gt;concatenation of rows&lt;/EM&gt;)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Version 1. One result row for each group&lt;/STRONG&gt;&lt;/P&gt;
&lt;PRE&gt;data want;
  set have end=done;
  length result $1000;  retain result;

  if prxmatch('/^[A-Z]\d+ /', mfrecord) then do;
    if _n_ &amp;gt; 1 then OUTPUT;
    call missing(result);
  end;

  result = catx(' ', result, mfrecord);

  if done then OUTPUT;

  keep result;
run;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Version 2. Concatenation result&amp;nbsp;on last record in group&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Requires&amp;nbsp;&lt;EM&gt;lead&lt;/EM&gt; processing due to synthetic group definition&lt;/P&gt;
&lt;PRE&gt;data want;
  /* MERGE with NO BY variables is 1:1 merge and provides a LEAD variable 'nextrecord' */
  merge
    have
    have(firstobs=2 rename=mfrecord=nextrecord)
    end=done
  ;

  donex = done;

  length accum $1000; retain accum;
  length result $1000;

  if prxmatch('/^[A-Z]\d+ /', nextrecord) then do;
    result = catx(' ', accum, mfrecord);
    OUTPUT;
    group_id + 1;
    call missing(accum, result);
  end;
  else do;
    accum = catx(' ', accum, mfrecord);
    if done then result = accum;
    OUTPUT;
  end;

  keep rownum mfrecord result group_id donex nextrecord;
run;&lt;/PRE&gt;
&lt;P&gt;Aggregating can be simplified if you code a grouping view first&lt;/P&gt;
&lt;PRE&gt;data groups;
  set have;
  if prxmatch('/^[A-Z]\d+ /', mfrecord) then groupno+1;
run;

data want;
  do until (last.groupno);
    set groups;
    by groupno;

    length accum result $1000;

    accum = catx(' ', accum, mfrecord);

    if last.groupno then result = accum;

    output;
  end;
  drop accum;
run;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 13 Oct 2020 11:08:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-get-uneven-row-to-single-row/m-p/690487#M210062</guid>
      <dc:creator>RichardDeVen</dc:creator>
      <dc:date>2020-10-13T11:08:03Z</dc:date>
    </item>
    <item>
      <title>Re: How to get uneven row to single row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-get-uneven-row-to-single-row/m-p/691017#M210271</link>
      <description>Thanks Bro, It worked</description>
      <pubDate>Mon, 12 Oct 2020 17:01:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-get-uneven-row-to-single-row/m-p/691017#M210271</guid>
      <dc:creator>Sharath_naik</dc:creator>
      <dc:date>2020-10-12T17:01:48Z</dc:date>
    </item>
  </channel>
</rss>

