<?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: Looking back to get records... in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Looking-back-to-get-records/m-p/451660#M113911</link>
    <description>&lt;P&gt;Thanks a ton I guess it worked I checked that logic on my data for some subjects...thanks again&lt;/P&gt;</description>
    <pubDate>Thu, 05 Apr 2018 19:01:53 GMT</pubDate>
    <dc:creator>Aidaan_10</dc:creator>
    <dc:date>2018-04-05T19:01:53Z</dc:date>
    <item>
      <title>Looking back to get records...</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Looking-back-to-get-records/m-p/451568#M113878</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; I have a dataset with ORIGID variable which was the Subject original number&amp;nbsp;so they change their&amp;nbsp;ID to SUBJID&amp;nbsp;variable in the given dataset below.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;subjid&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;origid&amp;nbsp; &amp;nbsp; rescrn&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;N&lt;/P&gt;&lt;P&gt;2&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; Y&lt;/P&gt;&lt;P&gt;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; N&lt;/P&gt;&lt;P&gt;4&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;Y&lt;/P&gt;&lt;P&gt;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; N&lt;/P&gt;&lt;P&gt;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; N&lt;/P&gt;&lt;P&gt;7&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; Y&lt;/P&gt;&lt;P&gt;8&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; Y&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now if the rescrn variable value is 'Y' , I have to look back to get the original subjectid so the data I would expect would be like, the one in the New_ID variable is what I expect to have. I have to apply this logic on lot of records so how do I do that?? Any help will be greatly appreciated. Thanks&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;subjid&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;origid&amp;nbsp; &amp;nbsp; rescrn&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; New_ID&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;N&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .&lt;/P&gt;&lt;P&gt;2&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; Y&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;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; N&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .&lt;/P&gt;&lt;P&gt;4&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;Y&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;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; N&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .&lt;/P&gt;&lt;P&gt;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; N&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .&lt;/P&gt;&lt;P&gt;7&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; Y&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 5&lt;/P&gt;&lt;P&gt;8&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; Y&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;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 05 Apr 2018 15:26:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Looking-back-to-get-records/m-p/451568#M113878</guid>
      <dc:creator>Aidaan_10</dc:creator>
      <dc:date>2018-04-05T15:26:12Z</dc:date>
    </item>
    <item>
      <title>Re: Looking back to get records...</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Looking-back-to-get-records/m-p/451590#M113885</link>
      <description>&lt;P&gt;What is your logic here? Are you missing something, can you explain more on the logic you want to apply.&lt;/P&gt;</description>
      <pubDate>Thu, 05 Apr 2018 15:49:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Looking-back-to-get-records/m-p/451590#M113885</guid>
      <dc:creator>SuryaKiran</dc:creator>
      <dc:date>2018-04-05T15:49:21Z</dc:date>
    </item>
    <item>
      <title>Re: Looking back to get records...</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Looking-back-to-get-records/m-p/451594#M113886</link>
      <description>&lt;P&gt;The logic is looking back to get the original subject ID wherever the rescrn variable value is Y. So in the case of subjid with a value of 2 the original ID was 1, so in the new ID variable I want to see the value of 1 then again subject 4 is changing to 2 which indeed is changing to 1 so my value in Newid would be 1 and then subject 8 is changing to 4 which is changing to 2 which in turn is changing to value of 1 so again my NEWID variable for this subject 8 should be 1. This is expected.Thanks&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 05 Apr 2018 15:56:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Looking-back-to-get-records/m-p/451594#M113886</guid>
      <dc:creator>Aidaan_10</dc:creator>
      <dc:date>2018-04-05T15:56:22Z</dc:date>
    </item>
    <item>
      <title>Re: Looking back to get records...</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Looking-back-to-get-records/m-p/451645#M113906</link>
      <description>&lt;P&gt;To make life a little easier, I'm going to assume these are character variables.&amp;nbsp; If they're actually numeric, the same approach will work but requires a couple of complicating tweaks:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data format_me;&lt;/P&gt;
&lt;P&gt;set have;&lt;/P&gt;
&lt;P&gt;where rescrn='Y';&lt;/P&gt;
&lt;P&gt;start = subjid;&lt;/P&gt;
&lt;P&gt;label = origid;&lt;/P&gt;
&lt;P&gt;fmtname = '$trail';&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc format cntlin=format_me;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That creates a format that translates from SUBJID into ORIGID.&amp;nbsp; Then use the format:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;set have;&lt;/P&gt;
&lt;P&gt;if rescrn='Y' then do;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; new_id = put(subjid, $trail.);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; do k=1 to 50 until (new_id = put(new_id, $trail.));&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new_id = put(new_id, $trail.);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;drop k;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The DO loop refuses to iterate more than 50 times per observation, just in case the ORIGID assignments form an infinite loop.&amp;nbsp; ("1" translates into "2", and "2" translates into "1" for example.)&lt;/P&gt;</description>
      <pubDate>Thu, 05 Apr 2018 18:13:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Looking-back-to-get-records/m-p/451645#M113906</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2018-04-05T18:13:15Z</dc:date>
    </item>
    <item>
      <title>Re: Looking back to get records...</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Looking-back-to-get-records/m-p/451660#M113911</link>
      <description>&lt;P&gt;Thanks a ton I guess it worked I checked that logic on my data for some subjects...thanks again&lt;/P&gt;</description>
      <pubDate>Thu, 05 Apr 2018 19:01:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Looking-back-to-get-records/m-p/451660#M113911</guid>
      <dc:creator>Aidaan_10</dc:creator>
      <dc:date>2018-04-05T19:01:53Z</dc:date>
    </item>
    <item>
      <title>Re: Looking back to get records...</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Looking-back-to-get-records/m-p/451669#M113914</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input subjid       origid    rescrn $;
datalines;
1                .             N
2                1            Y
3                 .            N
4               2             Y
5               .              N
6               .              N
7              5              Y
8              4              Y
;


data want;
if _n_=1 then do;
if 0 then set have;
if 0 then set have(rename=(origid=_origid));
   dcl hash H (dataset:'have(rename=(origid=_origid))') ;
   h.definekey  ("subjid") ;
   h.definedata('_origid');
   h.definedone () ;
end;
set have;
__origid=origid;
if __origid then do;
do while(h.find(key:__origid)=0);
if   _origid then New_ID=_origid;
else New_ID=__origid;
__origid=_origid;
end;
end;
drop _:;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 05 Apr 2018 19:40:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Looking-back-to-get-records/m-p/451669#M113914</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-04-05T19:40:28Z</dc:date>
    </item>
  </channel>
</rss>

