<?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: Combining two subsequen observations in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Combining-two-subsequen-observations/m-p/423146#M280936</link>
    <description>&lt;P&gt;I think LAG will be clumsy here.&amp;nbsp; You really need to look ahead, not look back.&amp;nbsp; Here is an approach:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;length line $2000;&amp;nbsp; /* long enough length to hold double current length */&lt;/P&gt;
&lt;P&gt;set have end=done;&lt;/P&gt;
&lt;P&gt;if not done then set have (firstobs=2 keep=line rename=(line=next_line));&lt;/P&gt;
&lt;P&gt;if done=0 and next_line =: '/gb/pro' then line = catx(' ', line, next_line);&lt;/P&gt;
&lt;P&gt;if line =: '/gb/pro' then delete;&lt;/P&gt;
&lt;P&gt;drop next_line;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;</description>
    <pubDate>Thu, 21 Dec 2017 16:25:39 GMT</pubDate>
    <dc:creator>Astounding</dc:creator>
    <dc:date>2017-12-21T16:25:39Z</dc:date>
    <item>
      <title>Combining two subsequen observations</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Combining-two-subsequen-observations/m-p/423132#M280934</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;I have a sample dataset of which i'd like to check if the observation starts with '/gb/pro/', and if it does, I need to concatenate it to the end of the&amp;nbsp;previous observation with a ' ' in between.&lt;/P&gt;&lt;P&gt;Kindly advice on how I could do so....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;LINES&lt;/P&gt;&lt;P&gt;chad,hardy,/gb/pro/cli/dat/ba/102/009/stab/blin/le0/tx.sas7bdat,old,xxxx,none,2/22/2008,9:51:7&lt;BR /&gt;chad,hardy,/gb/pro/cli/dat/ba/102/009/stab/blin/le0/tx.sas7bdat,new,add,read,2/22/2008,9:51:7&lt;BR /&gt;chad,hardy,/gb/pro/cli/dat/ba/102/009/stab/blin/le0/vs.sas7bdat&lt;BR /&gt;/gb/pro/cli/dat/ba/102/009/stab/blin/le0/yc.sas7bdat,old,xxxx,none,2/22/2008,9:51:7&lt;BR /&gt;chad,hardy,/gb/pro/cli/dat/ba/102/009/stab/blin/le0/vs.sas7bdat&lt;BR /&gt;/gb/pro/cli/dat/mb/102/009/stab/blin/le0/yc.sas7bdat,new,add,read,2/22/2008,9:51:7&lt;BR /&gt;chad,hardy,/gb/pro/cli/data/ba/102/009/stab/blin/le0/ye.sas7bdat,old,xxxx,none,2/22/2008,9:51:7&lt;BR /&gt;chad,hardy,/gb/pro/cli/data/ba/102/009/stab/blin/le0/ye.sas7bdat,new,add,read,2/22/2008,9:51:7&lt;BR /&gt;chad,hardy,/gb/pro/cli/data/ba/102/009/stab/blin/le0/yh.sas7bdat,old,xxxx,none,2/22/2008,9:51:7&lt;/P&gt;</description>
      <pubDate>Thu, 21 Dec 2017 15:58:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Combining-two-subsequen-observations/m-p/423132#M280934</guid>
      <dc:creator>DOBBINHO</dc:creator>
      <dc:date>2017-12-21T15:58:54Z</dc:date>
    </item>
    <item>
      <title>Re: Combining two subsequen observations</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Combining-two-subsequen-observations/m-p/423138#M280935</link>
      <description>&lt;P&gt;1. Use LAG to retrieve the previous value&lt;/P&gt;
&lt;P&gt;2. Use =: to check if hte start of the variable matches your criteria&lt;/P&gt;
&lt;P&gt;3. Use CATX() to concatenate the values.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Or since it looks like you're attempting to get file listings from an LS command, you could probably modify the code to generate the full file paths rather than doing this.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="delete_lag.JPG" style="width: 600px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/17499iF38CF8F3BA699EE6/image-size/large?v=v2&amp;amp;px=999" role="button" title="delete_lag.JPG" alt="delete_lag.JPG" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/176838"&gt;@DOBBINHO&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;Hi all,&lt;/P&gt;
&lt;P&gt;I have a sample dataset of which i'd like to check if the observation starts with '/gb/pro/', and if it does, I need to concatenate it to the end of the&amp;nbsp;previous observation with a ' ' in between.&lt;/P&gt;
&lt;P&gt;Kindly advice on how I could do so....&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;LINES&lt;/P&gt;
&lt;P&gt;chad,hardy,/gb/pro/cli/dat/ba/102/009/stab/blin/le0/tx.sas7bdat,old,xxxx,none,2/22/2008,9:51:7&lt;BR /&gt;chad,hardy,/gb/pro/cli/dat/ba/102/009/stab/blin/le0/tx.sas7bdat,new,add,read,2/22/2008,9:51:7&lt;BR /&gt;chad,hardy,/gb/pro/cli/dat/ba/102/009/stab/blin/le0/vs.sas7bdat&lt;BR /&gt;/gb/pro/cli/dat/ba/102/009/stab/blin/le0/yc.sas7bdat,old,xxxx,none,2/22/2008,9:51:7&lt;BR /&gt;chad,hardy,/gb/pro/cli/data/mb/102/009/stab/blin/le0/vs.sas7bdat&lt;BR /&gt;/gb/pro/cli/data/mb/102/009/stab/blin/level0/yc.sas7bdat,new,add,read,2/22/2008,9:51:7&lt;BR /&gt;chad,hardy,/gb/pro/cli/data/mb/102/009/stab/blin/le0/ye.sas7bdat,old,xxxx,none,2/22/2008,9:51:7&lt;BR /&gt;chad,hardy,/gb/pro/cli/data/mb/102/009/stab/blin/level0/ye.sas7bdat,new,add,read,2/22/2008,9:51:7&lt;BR /&gt;chad,hardy,/gb/pro/cli/data/mb/102/009/stab/blin/level0/yh.sas7bdat,old,xxxx,none,2/22/2008,9:51:7&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 21 Dec 2017 16:06:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Combining-two-subsequen-observations/m-p/423138#M280935</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-12-21T16:06:02Z</dc:date>
    </item>
    <item>
      <title>Re: Combining two subsequen observations</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Combining-two-subsequen-observations/m-p/423146#M280936</link>
      <description>&lt;P&gt;I think LAG will be clumsy here.&amp;nbsp; You really need to look ahead, not look back.&amp;nbsp; Here is an approach:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;length line $2000;&amp;nbsp; /* long enough length to hold double current length */&lt;/P&gt;
&lt;P&gt;set have end=done;&lt;/P&gt;
&lt;P&gt;if not done then set have (firstobs=2 keep=line rename=(line=next_line));&lt;/P&gt;
&lt;P&gt;if done=0 and next_line =: '/gb/pro' then line = catx(' ', line, next_line);&lt;/P&gt;
&lt;P&gt;if line =: '/gb/pro' then delete;&lt;/P&gt;
&lt;P&gt;drop next_line;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;</description>
      <pubDate>Thu, 21 Dec 2017 16:25:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Combining-two-subsequen-observations/m-p/423146#M280936</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2017-12-21T16:25:39Z</dc:date>
    </item>
    <item>
      <title>Re: Combining two subsequen observations</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Combining-two-subsequen-observations/m-p/423149#M280937</link>
      <description>&lt;P&gt;Oh...and you can modify an LS command to give you only paths from a certain folder.&lt;/P&gt;</description>
      <pubDate>Thu, 21 Dec 2017 16:29:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Combining-two-subsequen-observations/m-p/423149#M280937</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-12-21T16:29:06Z</dc:date>
    </item>
    <item>
      <title>Re: Combining two subsequen observations</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Combining-two-subsequen-observations/m-p/423164#M280938</link>
      <description>&lt;P&gt;set have end=done;&lt;/P&gt;&lt;P&gt;if not done then set have (firstobs=2 keep=line rename=(line=next_line));&lt;/P&gt;&lt;P&gt;if done=0 and next_line =: '/gb/pro' then line = catx(' ', line, next_line);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;where is done coming from?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 21 Dec 2017 16:58:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Combining-two-subsequen-observations/m-p/423164#M280938</guid>
      <dc:creator>DOBBINHO</dc:creator>
      <dc:date>2017-12-21T16:58:56Z</dc:date>
    </item>
    <item>
      <title>Re: Combining two subsequen observations</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Combining-two-subsequen-observations/m-p/423167#M280939</link>
      <description>&lt;P&gt;It comes from the SET statement.&amp;nbsp; The END= option on a SET statement creates a variable, and automatically assigns it values of 0 or 1 to indicate whether that SET statement has read in all the observations available.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Take note ... it's an important tool to know about.&lt;/P&gt;</description>
      <pubDate>Thu, 21 Dec 2017 17:05:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Combining-two-subsequen-observations/m-p/423167#M280939</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2017-12-21T17:05:45Z</dc:date>
    </item>
    <item>
      <title>Re: Combining two subsequen observations</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Combining-two-subsequen-observations/m-p/423227#M280940</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want (drop=nxt_:);
  merge have
        have (firstobs=2 rename=(line=nxt_line));
  if nxt_line=:'/gb/pro' then line=catx(' ',line,nxt_line);
  if not(line=:'/gb/pro');
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 21 Dec 2017 21:59:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Combining-two-subsequen-observations/m-p/423227#M280940</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2017-12-21T21:59:44Z</dc:date>
    </item>
    <item>
      <title>Re: Combining two subsequen observations</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Combining-two-subsequen-observations/m-p/423300#M280941</link>
      <description>&lt;P&gt;Something like this&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input string:$500.;
datalines;
chad,hardy,/gb/pro/cli/dat/ba/102/009/stab/blin/le0/tx.sas7bdat,old,xxxx,none,2/22/2008,9:51:7
chad,hardy,/gb/pro/cli/dat/ba/102/009/stab/blin/le0/tx.sas7bdat,new,add,read,2/22/2008,9:51:7
chad,hardy,/gb/pro/cli/dat/ba/102/009/stab/blin/le0/vs.sas7bdat
/gb/pro/cli/dat/ba/102/009/stab/blin/le0/yc.sas7bdat,old,xxxx,none,2/22/2008,9:51:7
chad,hardy,/gb/pro/cli/dat/ba/102/009/stab/blin/le0/vs.sas7bdat
/gb/pro/cli/dat/mb/102/009/stab/blin/le0/yc.sas7bdat,new,add,read,2/22/2008,9:51:7
chad,hardy,/gb/pro/cli/data/ba/102/009/stab/blin/le0/ye.sas7bdat,old,xxxx,none,2/22/2008,9:51:7
chad,hardy,/gb/pro/cli/data/ba/102/009/stab/blin/le0/ye.sas7bdat,new,add,read,2/22/2008,9:51:7
chad,hardy,/gb/pro/cli/data/ba/102/009/stab/blin/le0/yh.sas7bdat,old,xxxx,none,2/22/2008,9:51:7
;

data want(keep=string);
	merge have have(firstobs=2 rename=(string=nextstring));
	if substr(nextstring, 1, 8)="/gb/pro/" then
		string=cats(string, " ", nextstring);
	if (substr(nextstring, 1, 8)="/gb/pro/") | (substr(string, 1, 8) ne "/gb/pro/");
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 22 Dec 2017 11:26:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Combining-two-subsequen-observations/m-p/423300#M280941</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2017-12-22T11:26:01Z</dc:date>
    </item>
  </channel>
</rss>

