<?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: Collapsing Data (multiple lines to one) in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162532#M42216</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You can run &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc setinit; run; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and check the log to see if you have SAS/OR. If you're in academia it's highly likely, but the solution to your problem goes beyond my skill set.&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 25 Dec 2014 06:44:42 GMT</pubDate>
    <dc:creator>Reeza</dc:creator>
    <dc:date>2014-12-25T06:44:42Z</dc:date>
    <item>
      <title>Collapsing Data (multiple lines to one)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162525#M42209</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have a data set that has multiple lines per record that I want to collapse into one. The problem is the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Each record has a 'FormID' (FID) that is the main key.&lt;/P&gt;&lt;P&gt;Each line for the FormID has a 'Parent' (P) and a 'Child' (C) field.&lt;/P&gt;&lt;P&gt;The uppermost 'level' is the Parent with no Child (Child is Null).&lt;/P&gt;&lt;P&gt;Each Parent&amp;nbsp; can have multiple Children.&lt;/P&gt;&lt;P&gt;Each Child can have Grandchildren (G1C) ...which can have Great-Grandchildren (G2C)...and so on.&lt;/P&gt;&lt;P&gt;There is no set number of Children, Grandchildren, etc... per Parent.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The data look like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FormID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Parent#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Child#&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 200&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 300&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3000&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the above case, the records would collapse as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FID-1 P-1 C-2 G1C-20 G2C-200 G3C-.&lt;/P&gt;&lt;P&gt;FID-1 P-1 C-3 G1C-30 G2C-300 G3C-3000&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In other words, where the Child# becomes the Parent# for the same FormID, that signifies the next level down. I am trying to figure out how to dynamically determine the number of levels and bring the lines up to the appropriate FormID/Parent/Child/Grandchild/etc. combination.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have hardcoded it to a G3C level by left joining any combo of FID and P/C/GC/G1C/G2C/G3C combo, since, currently, there are only G2Cs in the set, but that could change at any time...and is really inefficient...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any help would be appreciated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;John L.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 24 Dec 2014 22:05:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162525#M42209</guid>
      <dc:creator>drjohn61</dc:creator>
      <dc:date>2014-12-24T22:05:36Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing Data (multiple lines to one)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162526#M42210</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Just&amp;nbsp; bit of help, at least I hope it turns out that way.&amp;nbsp; When you bring the data into SAS, you have to select what the variable names will be and they have to remain the same from one observation to the next.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So it would help if you could describe the final outcome based on your sample data, supplying both the variable names and their values for this sample.&amp;nbsp; Any additional description couldn't hurt, but that would be the starting point.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Most likely, the first step would involve a program that calculates the maximum number of children, grandchildren, etc. needed for your particular incoming data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good luck.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Dec 2014 01:18:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162526#M42210</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2014-12-25T01:18:52Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing Data (multiple lines to one)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162527#M42211</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Do you have SAS/OR? Sounds like a BOM problem to some degree.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Dec 2014 02:00:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162527#M42211</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2014-12-25T02:00:19Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing Data (multiple lines to one)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162528#M42212</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I agree with Reeza about BOM on this one.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;STRONG style="color: navy; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;data&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; Forms;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;input&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; FormID Parent Child @@;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;cards&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: #FFFFC0;"&gt;1&amp;nbsp; 1 .&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: #FFFFC0;"&gt;1&amp;nbsp; 1 2&amp;nbsp;&amp;nbsp; 1&amp;nbsp; 2 20 1 20 200 &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: #FFFFC0;"&gt;1&amp;nbsp; 1 3&amp;nbsp;&amp;nbsp; 1&amp;nbsp; 3 30 1 30 300&amp;nbsp;&amp;nbsp; 1 300 3000&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: #FFFFC0;"&gt;2&amp;nbsp; 9&amp;nbsp; .&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: #FFFFC0;"&gt;2&amp;nbsp; 9 4&amp;nbsp;&amp;nbsp; 2&amp;nbsp; 4 5&amp;nbsp;&amp;nbsp; 2&amp;nbsp; 4 6&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp; 6 5000&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: #FFFFC0;"&gt;2&amp;nbsp; 6 7&amp;nbsp;&amp;nbsp; 2&amp;nbsp; 7 8&amp;nbsp;&amp;nbsp; 2&amp;nbsp; 6 400 2&amp;nbsp;&amp;nbsp; 6 4000&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: #FFFFC0;"&gt;2&amp;nbsp; 6 10 2&amp;nbsp; 6 11&amp;nbsp;&amp;nbsp; 2 6&amp;nbsp; 12&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;STRONG style="color: navy; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;run&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;STRONG style="color: navy; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;data&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; FormV1 / &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;view&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;=FormV1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;if&lt;/SPAN&gt; &lt;STRONG style="color: teal; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;0&lt;/STRONG&gt; &lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;then&lt;/SPAN&gt; &lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;set&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; Forms;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;declare&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; hash C(dataset:&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;'Forms(where=(Child is not null))'&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;, MultiData:&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;'Y'&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;, Ordered:&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;'Y'&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;&amp;nbsp;&amp;nbsp; C.definekey(&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;'FormID'&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;'Parent'&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;&amp;nbsp;&amp;nbsp; C.definedata(&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;'Parent'&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;'Child'&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;&amp;nbsp;&amp;nbsp; C.definedone();&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;declare&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; hash P(dataset:&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;'Forms(where=(Child is null))'&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;, Ordered:&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;'Y'&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;&amp;nbsp;&amp;nbsp; P.definekey(&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;'FormID'&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;'Parent'&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;&amp;nbsp;&amp;nbsp; P.definedone();&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;declare&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; hiter Pi(&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;'P'&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;declare&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; hash F(Ordered:&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;'Y'&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;&amp;nbsp;&amp;nbsp; F.definekey(&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;'FormID'&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;'Generation'&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;'Parent'&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;'Child'&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;&amp;nbsp;&amp;nbsp; F.definedone();&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;declare&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; hiter Fi(&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: purple; background: white;"&gt;'F'&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;r=Pi.first();&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;do&lt;/SPAN&gt; &lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;while&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;(r=&lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;0&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;); &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: green; background: white;"&gt;*FormID Loop;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;&amp;nbsp;&amp;nbsp; Generation=&lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;1&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;link&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; search;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;&amp;nbsp;&amp;nbsp; r1=Fi.first();&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;do&lt;/SPAN&gt; &lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;while&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;(r1=&lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;0&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Generation+&lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;1&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Parent=Child;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;link&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; search;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r1=Fi.next();&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;end&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;&amp;nbsp;&amp;nbsp; F.clear();&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;&amp;nbsp;&amp;nbsp; r=Pi.next();&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;end&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;drop&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; r r1 rc;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;stop&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;search:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;&amp;nbsp;&amp;nbsp; rc=C.find();&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;put&lt;/SPAN&gt; &lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;_all_&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;do&lt;/SPAN&gt; &lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;while&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;(rc=&lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;0&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;output&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; F.add();&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rc=C.find_next();&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;end&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;STRONG style="color: navy; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;run&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;STRONG style="color: navy; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;data&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; FormV2 / &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;view&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;=FormV2;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;do&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; Cidx=&lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;1&lt;/STRONG&gt; &lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;by&lt;/SPAN&gt; &lt;STRONG style="color: teal; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;1&lt;/STRONG&gt; &lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;until&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;(last.Generation);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;set&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; FormV1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;by&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; FormID Generation;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; first.FormID &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; P=Parent; &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;else&lt;/SPAN&gt; &lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;call&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; missing(P);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;output&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;end&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;STRONG style="color: navy; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;run&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;STRONG style="color: navy; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;proc&lt;/STRONG&gt; &lt;STRONG style="color: navy; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;transpose&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;data&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;=FormV2 &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;out&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;=FormT(drop=_NAME_) &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;prefix&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;=G &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;delim&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;=C;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;by&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; FormID;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;copy&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; P;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;id&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; Generation Cidx;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: blue; background: white;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; Child;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;run&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Dec 2014 03:41:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162528#M42212</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2014-12-25T03:41:14Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing Data (multiple lines to one)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162529#M42213</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I agree with &lt;A __default_attr="255172" __jive_macro_name="user" class="jive_macro jive_macro_user" data-objecttype="3" href="https://communities.sas.com/"&gt;&lt;/A&gt; this can be viewed as a network (or tree) problem. How exactly would this FormID collapse:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-size: 12.8000001907349px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;STRONG&gt;FormID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Parent#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Child#&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="font-size: 12.8000001907349px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;STRONG&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="font-size: 12.8000001907349px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;STRONG&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="font-size: 12.8000001907349px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;STRONG&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="font-size: 12.8000001907349px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;STRONG style="font-size: 12.8000001907349px; background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="font-size: 12.8000001907349px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;STRONG style=": ; font-size: 12.8000001907349px; background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 40&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="font-size: 12.8000001907349px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;STRONG&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 200&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="font-size: 12.8000001907349px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;STRONG style="font-size: 12.8000001907349px; background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 500&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="font-size: 12.8000001907349px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12.8000001907349px; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12.8000001907349px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12.8000001907349px; background-color: #ffffff;"&gt;PG&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Dec 2014 03:47:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162529#M42213</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2014-12-25T03:47:17Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing Data (multiple lines to one)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162530#M42214</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FIrst--I have to say I am an absolute Newbie to SAS...so, please bear with me...&lt;/P&gt;&lt;P&gt;Second...not sure on SAS/OR... I will have to ask our techies...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To give more info on the issue:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is pathogen sampling data and is in a database that I pull using SQL...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For each sample, there is an associated form with a unique ID. Each sample is assigned a 'ParentSample' Number. You always know which is the parent because the ChildSample# is null... (Actually in the DB, the ParentSample is Null and the ChildSample not--the ChildSample is then the ParentSample. I just swap this in the SQL used to pull the data).&lt;/P&gt;&lt;P&gt;One sample could be analyzed for multiple pathogens...e.g., Salmonella and Campylobacter...&lt;/P&gt;&lt;P&gt;Each Pathogen can have multiple isolates with its own serotype and other factors...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So you could have (This is how I would like the data):&lt;/P&gt;&lt;P&gt;Form# 1&lt;/P&gt;&lt;P&gt;ParentSample#1&amp;nbsp; -- Salmonella Positive / Campylobacter Positive&lt;/P&gt;&lt;P&gt;ChildSample#2 Salmonella Enteritidis =&amp;gt; Grandchild#3 PFGE Pattern =&amp;gt; GreatGranchild#4 Antimicrobial Resistance&lt;/P&gt;&lt;P&gt;ChildSample#5 Salmonella Heidelberg =&amp;gt; Grandchild#6 PFGE Pattern =&amp;gt; GreatGranchild#7 Antimicrobial Resistance&lt;/P&gt;&lt;P&gt;ChildSample#8 Campylobacter Jejuni =&amp;gt; Grandchild#9 PFGE Pattern&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I used consecutive numbers in the example--actually they are multidigit numbers--I just used the above to show that they should be unique within the FormID/ParentSample&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The data is always split between the variables ParentSample and ChildSample with the added info (e.g. Pathogen, Serotype, Antimicrobial Resistance) in additional variables...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So, the above would be in the DB as such:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FormID#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ParentSample#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ChildSample#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Info&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Salmonella + / Campylobacter +&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Enteritidis&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PFGE&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Antimicrobial Resistance&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Heidelberg&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PFGE&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Antimicrobial Resistance&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Jejuni&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PFGE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Normally, it will be sorted by FormID, ParentSample, ChildSample:&lt;/P&gt;&lt;P&gt;FormID#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ParentSample#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ChildSample#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Info&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Salmonella + / Campylobacter +&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Enteritidis&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Heidelberg&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Jejuni&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PFGE&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Antimicrobial Resistance&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PFGE&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Antimicrobial Resistance&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PFGE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I should also mention that normally there is only one Grandchild, GreatGrandChild, etc per Child... So, there can be multiple Children per Parent--but usually everything from there is singular back to the Child.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So PGStats data above would collapse like this:&lt;/P&gt;&lt;P&gt;1 2 20 200&lt;/P&gt;&lt;P&gt;1 2 30&lt;/P&gt;&lt;P&gt;1 2 40 500&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Dec 2014 04:57:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162530#M42214</guid>
      <dc:creator>drjohn61</dc:creator>
      <dc:date>2014-12-25T04:57:39Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing Data (multiple lines to one)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162531#M42215</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This new criteria makes my previous posting only directional and not accurate to the problem at hand.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Dec 2014 05:27:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162531#M42215</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2014-12-25T05:27:48Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing Data (multiple lines to one)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162532#M42216</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You can run &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc setinit; run; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and check the log to see if you have SAS/OR. If you're in academia it's highly likely, but the solution to your problem goes beyond my skill set.&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Dec 2014 06:44:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162532#M42216</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2014-12-25T06:44:42Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing Data (multiple lines to one)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162533#M42217</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You could refer to this paper I wrote . I indeed love your question .:smileylaugh:&lt;/P&gt;&lt;P&gt;&lt;A __default_attr="7756" __jive_macro_name="document" class="jive_macro jive_macro_document" href="https://communities.sas.com/"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;

data Forms;
input FormID $ Parent $ Child $ @@;
cards;
1&amp;nbsp; 1 .&amp;nbsp; 
1&amp;nbsp; 1 2&amp;nbsp;&amp;nbsp; 1&amp;nbsp; 2 20 1 20 200
1&amp;nbsp; 1 3&amp;nbsp;&amp;nbsp; 1&amp;nbsp; 3 30 1 30 300&amp;nbsp;&amp;nbsp; 1 300 3000
2&amp;nbsp; 9&amp;nbsp; .
2&amp;nbsp; 9 4&amp;nbsp;&amp;nbsp; 2&amp;nbsp; 4 5&amp;nbsp;&amp;nbsp; 2&amp;nbsp; 4 6&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp; 6 5000
2&amp;nbsp; 6 7&amp;nbsp;&amp;nbsp; 2&amp;nbsp; 7 8&amp;nbsp;&amp;nbsp; 2&amp;nbsp; 6 400 2&amp;nbsp;&amp;nbsp; 6 4000
2&amp;nbsp; 6 10 2&amp;nbsp; 6 11&amp;nbsp;&amp;nbsp; 2 6&amp;nbsp; 12
;
run;


data temp(keep= path);
if _n_ eq 1 then do;
length path _path&amp;nbsp; $ 400 ;

if 0 then set Forms;
declare hash ha(hashexp:20,dataset:'Forms(where=(child is not missing))',multidata:'Y');
ha.definekey('FormID','Parent');
ha.definedata('Child');
ha.definedone();

declare hash pa(ordered:'Y');
declare hiter hi_path('pa');
pa.definekey('count');
pa.definedata('path');
pa.definedone();
end;

set Forms(where=(child is not missing));
count=1;
path=catx(' ',FormID,Parent,Child); 
pa.add();
do while(hi_path.next()=0);
_path=path;&amp;nbsp; 
FormID=scan(path,1,' ');
Parent=scan(path,-1,' '); 
rc=ha.find(); if rc ne 0 then output; /*the path is deepest, we output it.*/
 do while(rc=0);
&amp;nbsp; if not find(path,strip(Child)) then do;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count+1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; path=catx(' ',path,Child);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pa.add(); 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; path=_path;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;
&amp;nbsp; rc=ha.find_next();
 end;
end;
pa.clear();
run;
data want(keep=want);
 set temp;
 length want $ 400;
 do i=1 to countw(path);
&amp;nbsp;&amp;nbsp; if i=1 then want=catx(' ',want,cats('FID-',scan(path,i,' ')));
&amp;nbsp;&amp;nbsp;&amp;nbsp; else if i=2 then want=catx(' ',want,cats('P-',scan(path,i,' ')));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&amp;nbsp; if i=3 then want=catx(' ',want,cats('C-',scan(path,i,' ')));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&amp;nbsp; want=catx(' ',want,cats('G',i-3,'C-',scan(path,i,' ')));
 end;
run;



&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Xia Keshan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Dec 2014 06:54:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162533#M42217</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2014-12-25T06:54:52Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing Data (multiple lines to one)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162534#M42218</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Make it Better ! &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A __default_attr="10003" __jive_macro_name="document" class="jive_macro jive_macro_document" href="https://communities.sas.com/"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;DIV class="Section0" style="layout-grid: 15.6000pt;"&gt;&lt;P class="p0 " style="margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;/P&gt;&lt;P class="p0 " style="margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: 'Times New Roman';"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: 'Times New Roman';"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: 'Times New Roman';"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;data&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; Forms;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;input&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; FormID $ Parent $ Child $ @@;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;cards&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffc0; mso-shading: #ffffc0;"&gt;1&amp;nbsp; 1 .&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffc0; mso-shading: #ffffc0;"&gt;1&amp;nbsp; 1 2&amp;nbsp;&amp;nbsp; 1&amp;nbsp; 2 20 1 20 200&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffc0; mso-shading: #ffffc0;"&gt;1&amp;nbsp; 1 3&amp;nbsp;&amp;nbsp; 1&amp;nbsp; 3 30 1 30 300&amp;nbsp;&amp;nbsp; 1 300 3000&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffc0; mso-shading: #ffffc0;"&gt;2&amp;nbsp; 9&amp;nbsp; .&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffc0; mso-shading: #ffffc0;"&gt;2&amp;nbsp; 9 4&amp;nbsp;&amp;nbsp; 2&amp;nbsp; 4 5&amp;nbsp;&amp;nbsp; 2&amp;nbsp; 4 6&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp; 6 5000&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffc0; mso-shading: #ffffc0;"&gt;2&amp;nbsp; 6 7&amp;nbsp;&amp;nbsp; 2&amp;nbsp; 7 8&amp;nbsp;&amp;nbsp; 2&amp;nbsp; 6 400 2&amp;nbsp;&amp;nbsp; 6 4000&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffc0; mso-shading: #ffffc0;"&gt;2&amp;nbsp; 6 10 2&amp;nbsp; 6 11&amp;nbsp;&amp;nbsp; 2 6&amp;nbsp; 12&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;run&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;data&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; check;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;set&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; forms ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; P=Child;C=Parent; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;drop&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; Parent Child;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;run&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;data&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; temp(keep= path);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; _n_ eq &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;1&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;do&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;length&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; path _path&amp;nbsp; $ &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;400&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;0&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;set&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; check;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;declare&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; hash ch(hashexp:&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;20&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,dataset:&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'check(where=(P is not missing))'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;ch.definekey(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'FormID'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'P'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;ch.definedone();&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;0&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;set&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; Forms;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;declare&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; hash ha(hashexp:&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;20&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,dataset:&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'Forms(where=(child is not missing))'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,multidata:&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'Y'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;ha.definekey(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'FormID'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'Parent'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;ha.definedata(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'Child'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;ha.definedone();&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;declare&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; hash pa(ordered:&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'Y'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;declare&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; hiter hi_path(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'pa'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;pa.definekey(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'count'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;pa.definedata(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'path'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;pa.definedone();&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;end&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;set&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; Forms(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;where&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;=(child is not missing));&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;count=&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;1&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;path=catx(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;' '&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,FormID,Parent,Child); &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;pa.add();&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;do&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;while&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;(hi_path.next()=&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;0&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;_path=path;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;FormID=scan(path,&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;1&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;' '&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;P=scan(path,&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;2&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;' '&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;Parent=scan(path,-&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;1&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;' '&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;); &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;rc=ha.find();&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; (rc ne &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;0&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; or (rc eq &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;0&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; and find(path,strip(Child)))) and ch.check() ne &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;0&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;output&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;do&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;while&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;(rc=&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;0&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; not find(path,strip(Child)) &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;do&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count+&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;1&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; path=catx(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;' '&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,path,Child);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pa.add(); &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; path=_path;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;end&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;&amp;nbsp; rc=ha.find_next();&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;end&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;end&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;pa.clear();&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;run&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;data&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; want(keep=want);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;set&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; temp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;length&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; want $ &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;400&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;do&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; i=&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;1&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;to&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; countw(path);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; i=&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;1&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; want=catx(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;' '&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,want,cats(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'FID-'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,scan(path,i,&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;' '&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;)));&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;else&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; i=&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;2&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; want=catx(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;' '&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,want,cats(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'P-'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,scan(path,i,&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;' '&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;)));&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;else&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; i=&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;3&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; want=catx(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;' '&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,want,cats(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'C-'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,scan(path,i,&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;' '&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;)));&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;else&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;&amp;nbsp; want=catx(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;' '&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,want,cats(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'G'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,i-&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;3&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'C-'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,scan(path,i,&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;' '&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;)));&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;end&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;run&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: 'Times New Roman';"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Xia Keshan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Dec 2014 08:44:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162534#M42218</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2014-12-25T08:44:59Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing Data (multiple lines to one)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162535#M42219</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I appreciate the help. I am sorry I was not explicit enough. Being new to this whole SAS thing and trying to solve this has been driving me crazy... I am pretty sure I could solve it in Access with VBA...but I don't want to have to run the data through two systems... &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Dec 2014 19:00:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162535#M42219</guid>
      <dc:creator>drjohn61</dc:creator>
      <dc:date>2014-12-25T19:00:25Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing Data (multiple lines to one)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162536#M42220</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;BR /&gt;Thanks...this is a bit above my level by just looking at it. I am going to have to run it and see what I get. Playing is how I learn things... &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Dec 2014 19:01:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162536#M42220</guid>
      <dc:creator>drjohn61</dc:creator>
      <dc:date>2014-12-25T19:01:38Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing Data (multiple lines to one)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162537#M42221</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It seems I have:&lt;/P&gt;&lt;P&gt;OR OPT&lt;/P&gt;&lt;P&gt;OR PRS&lt;/P&gt;&lt;P&gt;OR IVS&lt;/P&gt;&lt;P&gt;OR LVS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Of course, I don't really know what any of that means... &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Dec 2014 19:06:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162537#M42221</guid>
      <dc:creator>drjohn61</dc:creator>
      <dc:date>2014-12-25T19:06:48Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing Data (multiple lines to one)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162538#M42222</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Xia,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is AWESOME! The only thing that I need different is the last step... I probably confused things a bit above...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Instead of the output:&lt;/P&gt;&lt;P&gt;Want&lt;/P&gt;&lt;P&gt;FID-1 P-1 C-2 G1-3 G2-4 G3-5&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I need the outout:&lt;/P&gt;&lt;P&gt;FID&amp;nbsp;&amp;nbsp; P&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G3&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In other words, I need the prefixes you concatenated onto the numbers to be the variable names. &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Dec 2014 22:21:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162538#M42222</guid>
      <dc:creator>drjohn61</dc:creator>
      <dc:date>2014-12-25T22:21:08Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing Data (multiple lines to one)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162539#M42223</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Tampering with &lt;A __default_attr="645292" __jive_macro_name="user" class="jive_macro jive_macro_user" href="https://communities.sas.com/"&gt;&lt;/A&gt;'s code below changes in &lt;STRONG&gt;bold&lt;/STRONG&gt; should give you what you're after.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data temp(keep= path);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _n_ eq 1 then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; length path _path&amp;nbsp; $ 400;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if 0 then set check;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hash ch(hashexp:20,dataset:'check(where=(P is not missing))');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ch.definekey('FormID','P');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ch.definedone();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if 0 then set Forms;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hash ha(hashexp:20,dataset:'Forms(where=(child is not missing))',multidata:'Y');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ha.definekey('FormID','Parent');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ha.definedata('Child');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ha.definedone();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hash pa(ordered:'Y');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hiter hi_path('pa');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pa.definekey('count');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pa.definedata('path');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pa.definedone();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set Forms(where=(child is not missing)) &lt;STRONG&gt;end=last&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp; count=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; path=catx(' ',FormID,Parent,Child);&lt;/P&gt;&lt;P&gt;&amp;nbsp; pa.add();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do while(hi_path.next()=0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _path=path;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FormID=scan(path,1,' ');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; P=scan(path,2,' ');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Parent=scan(path,-1,' ');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rc=ha.find();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (rc ne 0 or (rc eq 0 and find(path,strip(Child)))) and ch.check() ne 0 then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do while(rc=0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not find(path,strip(Child)) then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count+1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; path=catx(' ',path,Child);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pa.add();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; path=_path;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rc=ha.find_next();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; pa.clear();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; retain max_levels;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; max_levels=max(countw(path),max_levels);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; if last then call symputx('max_levels',max(4,max_levels));&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want (&lt;STRONG&gt;keep=FID P C G:&lt;/STRONG&gt;);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set temp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt; array el {*} 8. FID P C G1 - G%eval(&amp;amp;max_levels-3);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do i=1 to countw(path);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;el&lt;I&gt;=scan(path,i,' ');&lt;/I&gt;&lt;/STRONG&gt;&lt;I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Dec 2014 23:17:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162539#M42223</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2014-12-25T23:17:24Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing Data (multiple lines to one)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162540#M42224</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here is my version.&lt;/P&gt;&lt;DIV class="Section0" style="layout-grid: 15.6000pt;"&gt;&lt;P class="p0 " style="margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"&gt;Hi. Actually Patrick has already done it for me .Thanks &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000080; font-weight: bold; font-size: 10.5000pt; background: #c0c0c0; mso-highlight: #c0c0c0; font-family: '宋体';"&gt;Patrick&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"&gt;. &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; font-size: 10.5000pt; background: #ffff00; mso-highlight: #ffff00; font-family: '宋体';"&gt;Happy Holiday!&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: 'Times New Roman';"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;data&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; Forms;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;input&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; FormID $ Parent $ Child $ @@;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;cards&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffc0; mso-shading: #ffffc0;"&gt;1&amp;nbsp; 1 . &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffc0; mso-shading: #ffffc0;"&gt;1&amp;nbsp; 1 2&amp;nbsp;&amp;nbsp; 1&amp;nbsp; 2 20 1 20 200&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffc0; mso-shading: #ffffc0;"&gt;1&amp;nbsp; 1 3&amp;nbsp;&amp;nbsp; 1&amp;nbsp; 3 30 1 30 300&amp;nbsp;&amp;nbsp; 1 300 3000&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffc0; mso-shading: #ffffc0;"&gt;2&amp;nbsp; 9&amp;nbsp; .&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffc0; mso-shading: #ffffc0;"&gt;2&amp;nbsp; 9 4&amp;nbsp;&amp;nbsp; 2&amp;nbsp; 4 5&amp;nbsp;&amp;nbsp; 2&amp;nbsp; 4 6&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp; 6 5000&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffc0; mso-shading: #ffffc0;"&gt;2&amp;nbsp; 6 7&amp;nbsp;&amp;nbsp; 2&amp;nbsp; 7 8&amp;nbsp;&amp;nbsp; 2&amp;nbsp; 6 400 2&amp;nbsp;&amp;nbsp; 6 4000&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffc0; mso-shading: #ffffc0;"&gt;2&amp;nbsp; 6 10 2&amp;nbsp; 6 11&amp;nbsp;&amp;nbsp; 2 6&amp;nbsp; 12&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;run&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;data&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; check;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;set&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; forms ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;P=Child;C=Parent;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;drop&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; Parent Child;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;run&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;data&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; temp(keep= path);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; _n_ eq &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;1&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;do&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;length&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; path _path&amp;nbsp; $ &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;400&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;0&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;set&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; check;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;declare&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; hash ch(hashexp:&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;20&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,dataset:&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'check(where=(P is not missing))'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;ch.definekey(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'FormID'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'P'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;ch.definedone();&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;0&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;set&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; Forms;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;declare&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; hash ha(hashexp:&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;20&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,dataset:&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'Forms(where=(child is not missing))'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,multidata:&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'Y'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;ha.definekey(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'FormID'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'Parent'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;ha.definedata(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'Child'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;ha.definedone();&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;declare&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; hash pa(ordered:&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'Y'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;declare&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; hiter hi_path(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'pa'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;pa.definekey(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'count'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;pa.definedata(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;'path'&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;pa.definedone();&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;end&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;set&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; Forms(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;where&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;=(child is not missing));&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;count=&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;1&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;path=catx(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;' '&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,FormID,Parent,Child);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;pa.add();&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;do&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;while&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;(hi_path.next()=&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;0&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;_path=path; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;FormID=scan(path,&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;1&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;' '&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;P=scan(path,&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;2&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;' '&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;Parent=scan(path,-&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;1&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;' '&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;rc=ha.find();&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; (rc ne &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;0&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; or (rc eq &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;0&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; and find(path,strip(Child)))) and ch.check() ne &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;0&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;output&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;do&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;while&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;(rc=&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;0&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; not find(path,strip(Child)) &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;do&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count+&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;1&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; path=catx(&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;' '&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;,path,Child);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pa.add();&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; path=_path;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;end&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;&amp;nbsp; rc=ha.find_next();&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;end&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;end&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;pa.clear();&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;run&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;proc&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;sql&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;noprint&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;select&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; max(n)-&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;3&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;into&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; : n separated &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;by&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;' '&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;from&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; (&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;select&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; countw(path) &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;as&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; n &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;from&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; temp);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;quit&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;data&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; want;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;set&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; temp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;array&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; x{*} $ &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;40&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; FID P C G1-G&amp;amp;n;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;do&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; i=&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #008080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;1&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;to&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; dim(x);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;&amp;nbsp; x{i}=scan(path,i,&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #800080; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;' '&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;end&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="mso-para-margin-top: 0.0000gd; mso-para-margin-bottom: 0.0000gd; text-align: left;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #0000ff; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;drop&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt; path i;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p0 " style="margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000080; font-weight: bold; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;run&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: 'yes'; color: #000000; font-size: 10.0000pt; font-family: 'Courier New'; background: #ffffff; mso-shading: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Xia Keshan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 26 Dec 2014 06:06:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162540#M42224</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2014-12-26T06:06:30Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing Data (multiple lines to one)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162541#M42225</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I REALLY appreciate the help. This will streamline my code and the time needed to run it immensely!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would have liked to award TWO correct answers, since both Patrick and Xia's are correct....but it won't let me. Xia still gets 20 points though! &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks again,&lt;/P&gt;&lt;P&gt;John L.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 26 Dec 2014 15:47:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162541#M42225</guid>
      <dc:creator>drjohn61</dc:creator>
      <dc:date>2014-12-26T15:47:35Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing Data (multiple lines to one)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162542#M42226</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;My suggested solution is not as sophisticated as the ones already presented. Looking at the input and output, I notice that&lt;BR /&gt;1- A given FormId correspond to the same Parent&lt;BR /&gt;2- The child at of the line for each line does not show up in the parent column.&lt;/P&gt;&lt;P&gt;The following solution assumes that there is no lineage with more than 9999 generations.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want(keep=FormID P1 G1-G9999);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if 0 then set forms; *just want FormID to be first variable in output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; array PP(10000) ; * parent;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; array CA(10000) ; * child ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; array CB(10000) ; * end_of_line children;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; array LA(10000) P1 G1-G9999; * lineage sequence;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; r=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; zP=.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; call missing(of PP(*));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; call missing(of CA(*));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; call missing(of CB(*));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; * load data for given FormID in matrices PP CA;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do until (last.FormID);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set forms end=zEnd;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by FormID;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r+1; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PP(r)=Parent;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CA(r)=Child;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if Child=. then zP=Parent;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; * find the end_of_line Children ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; s=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do i= 1 to r;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not(CA(i)=.) and not(CA(i) in PP) then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s+1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CB(s)=CA(i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; * for each end_of_line child, find the lineage;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do i = 1 to s;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LA(t)=CB(i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zDone=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do until (zDone);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do j = 1 to r;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if LA(t)=CA(j) then do; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t+1; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LA(t)=PP(j);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if LA(t)=zP then zDone=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; leave;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t_max=max(t_max,t);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do j = 1 to int(t/2); *reverse lineage sequence;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a1 = LA(j);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LA(j)=LA(t+1-j);;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LA(t+1-j)= a1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call missing(of LA(*)); * clear for next lineage;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; * delete all G# which is null for all lineages;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if zEnd then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call execute('data want; set want(keep=FormID P1 G1-'||compress('G'||put(t_max-1,5.))||');run;');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 29 Dec 2014 17:07:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162542#M42226</guid>
      <dc:creator>billfish</dc:creator>
      <dc:date>2014-12-29T17:07:09Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing Data (multiple lines to one)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162543#M42227</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I propose a different SAS Hash-object solution.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The first DATA STEP creates a simulated geneological (Parent,Child) table creating some lineages with more than 90 generations.&lt;BR /&gt;The second DATA STEP is an alternative (proposed) solution using SAS Hash objects and arrays.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Using the array, non-Hash-object solution which I have presented previously in this forum, 4674 lineages are presented. It took 7 minutes.&lt;/P&gt;&lt;P&gt;Using the hash methods presented previously here, using the criterion:&lt;BR /&gt;hashexp:20&lt;BR /&gt;produces the following SAS error message:&lt;BR /&gt;ERROR: Hash object added 8912880 items when memory failure occurred.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Using the hash methods presented previously here, using the criterion:&lt;BR /&gt;hashexp:40&lt;BR /&gt;produces in the SAS LOG:&lt;BR /&gt;NOTE: There were 4305 observations read from the data set WORK.TEMP.&lt;BR /&gt;The hash methods took 10 seconds.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Using the hash methods presented previously here, using the criterion:&lt;BR /&gt;no hashexp used&lt;BR /&gt;produces in the SAS LOG:&lt;BR /&gt;NOTE: The data set WORK.TEMP has 4305 observations and 1 variables.&lt;BR /&gt;The hash methods took 10 seconds and gave identical results as with the (hashexp:40) criterion.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;So the array method produced 369 (=4674-4305) more lineages than the hash methods presented in this forum.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;in_ary = 1 when the lineage is present in the array (non-hash) method.&lt;BR /&gt;in_hsh = 1 when the lineage is present in the hash method(s).&lt;/P&gt;&lt;P&gt;Doing a full join on the 2 set of lineages, the results are:&lt;/P&gt;&lt;P&gt;in_ary in_hsh c_tot&lt;BR /&gt;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 51&lt;BR /&gt;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 420&lt;BR /&gt;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4254&lt;/P&gt;&lt;P&gt;Let us look briefly some of the 51 lineages present in the hash results and not the array method.&lt;/P&gt;&lt;P&gt;Let us look at the hash lineages where the end-of-line (or latest) child is 495, 806, 1032. According to the hash results:&lt;BR /&gt;The lastest child&amp;nbsp; 495 occurs at the 66th generation.&lt;BR /&gt;The lastest child&amp;nbsp; 806 occurs at the 89th generation.&lt;BR /&gt;The lastest child 1032 occurs at the 83rd generation.&lt;/P&gt;&lt;P&gt;Looking at the input table Forms for either Parent in (495,806,1032), one finds:&lt;/P&gt;&lt;P&gt;FormID&amp;nbsp; Parent&amp;nbsp;&amp;nbsp; Child&lt;/P&gt;&lt;P&gt;101&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1032&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 417&lt;BR /&gt;101&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1032&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8796&lt;BR /&gt;101&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1032&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4866&lt;BR /&gt;101&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1032&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3620&lt;BR /&gt;101&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 495&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 474&lt;BR /&gt;101&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 495&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6750&lt;BR /&gt;101&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 806&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 791&lt;/P&gt;&lt;P&gt;Thus the supposed terminal (end-of-line) children produce other children. &lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Given the SAS system I was using (at a Fortune 500 company), the hash methods previously presented here did not complete the task.&lt;/P&gt;&lt;P&gt;Hash methods are fast, so I wrote a hash-object solution. It produces 4674 lineages. It took 4 secs. Going from 7 minutes to 4 secs is progress.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*********************/&lt;BR /&gt;/**** DATA STEP 1 ****/&lt;BR /&gt;/*********************/&lt;BR /&gt;data t_a(keep=zParent zChild rnd);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; array elemA(10000) (1:10000);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; array genA(500); ** start index of a generation **;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; array genB(500); ** end&amp;nbsp;&amp;nbsp; index of a generation **;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; ** scramble the elemA matrix elements;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; do i = 1 to 7000;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i1 = ceil(10000*ranuni(3));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2 = ceil(10000*ranuni(5));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x = elemA(i1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elemA(i1) = elemA(i2);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elemA(i2) = x;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; r=0; ** count number of generations;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; c=0; ** count nuber of children;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; do while (c&amp;lt;=10000);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r+1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (r=1) then do; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c+1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; genA(1)=1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; genB(1)=1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g= 10+ceil(200*ranuni(27));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do j=1 to g;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c+1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (c&amp;gt;10000) then leave; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if j=1 then genA(r)=c;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; genB(r)=c;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; ** for given child generation: connect child to parent;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; do i1 = r to 2 by -1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i2 = genA(i1) to genB(i1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_sum= genB(i1-1)-genA(i1-1)+1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x1=&amp;nbsp; genA(i1-1) -1 +ceil(g_sum*ranuni(3));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zParent= elemA(x1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zChild = elemA(i2);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rnd=ranuni(19);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=t_a; by rnd; run; *** just to make things interesting;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/** transform table t_a to be compatible with previous Hash solutions **/&lt;BR /&gt;data Forms(keep=FormID Parent Child);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; length FormID Parent Child $8.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; set t_a;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; FormID = '101';&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Parent = strip(put(zParent,8.));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Child&amp;nbsp; = strip(put(zChild,8.));&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;/*********************/&lt;BR /&gt;/**** DATA STEP 2 ****/&lt;BR /&gt;/*********************/&lt;BR /&gt;data t_want(keep=t_gen P1 G1-G9999);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; length c_end 8.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; t_max=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; array GG(10000) P1 G1-G9999;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if _N_=1 then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if 0 then set t_a;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hash ha(dataset:'t_a',multidata:'N' );&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ha.definekey('zChild');&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ha.definedata('zChild','zParent');&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ha.definedone();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hash hb(dataset:'t_a',multidata:'N' );&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hb.definekey('zParent');&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hb.definedata('zChild','zParent');&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hb.definedone();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hash hd(multidata:'N');&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hd.definekey('c_end');&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hiter dIter('hd');&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hd.definedone();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do until (zDone); ** make list of end-of-line children;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set t_a(rename=(zchild=zc zparent=zp)) nobs=n_last end=zDone;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zParent=zC;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if hb.find() then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c_end=zParent;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if hd.check() then do; hd.add(); end; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; rc = dIter.first();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; do while (rc = 0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; aDone=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t_gen=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do until (aDone);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (t_gen=0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; then do; t_gen+1; GG(t_gen)= c_end;&amp;nbsp;&amp;nbsp; zChild=c_end; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if not(ha.find()) then do; t_gen+1; GG(t_gen)= zParent; zChild=zParent; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ha.find()&amp;nbsp; then do; aDone=1; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i=1 to int(t_gen/2); ** reverse lineage sequence;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x1= GG(i);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GG(i)= GG(t_gen+1-i);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GG(t_gen+1-i)=x1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call missing(of GG(*));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t_max=max(t_max,t_gen);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rc = dIter.next(); &lt;BR /&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; call execute('data t_want; set t_want(keep=t_gen P1 G1-'||compress('G'||put(t_max-1,6.))||');run;');&lt;BR /&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Jan 2015 20:28:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162543#M42227</guid>
      <dc:creator>billfish</dc:creator>
      <dc:date>2015-01-07T20:28:17Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing Data (multiple lines to one)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162544#M42228</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I can optimize it as well , if you want. &lt;/P&gt;&lt;P&gt;And apparently your code didn't consider the LOOP situation .&lt;/P&gt;&lt;P&gt;if data like &lt;SPAN style="color: #000000; font-family: 'Courier New'; background-color: #ffffc0;"&gt;1&amp;nbsp; 1 2&amp;nbsp;&amp;nbsp; 1&amp;nbsp; 2 20 1 20 200 &lt;STRONG style="color: #000000; background-color: #ffffc0; font-family: 'Courier New';"&gt;1 200 201 &lt;SPAN style="color: #000000; font-family: 'Courier New'; background-color: #ffffc0;"&gt;1 201 20 &lt;/SPAN&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'Courier New'; background-color: #ffffc0;"&gt;You will get the wrong result .&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Jan 2015 02:28:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Collapsing-Data-multiple-lines-to-one/m-p/162544#M42228</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2015-01-08T02:28:08Z</dc:date>
    </item>
  </channel>
</rss>

