<?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-coding variables to match the first instance of that variable for a given record in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Re-coding-variables-to-match-the-first-instance-of-that-variable/m-p/390586#M277624</link>
    <description>&lt;P&gt;******REPOST******* I had posted this in the Base SAS programming community, but it was suggested that it might be more helpful over here. Here is the link to the original thread:&amp;nbsp;&lt;A href="https://communities.sas.com/t5/Base-SAS-Programming/re-coding-multiple-records-to-match-the-first-instance-of-that/td-p/390415" target="_blank"&gt;https://communities.sas.com/t5/Base-SAS-Programming/re-coding-multiple-records-to-match-the-first-instance-of-that/td-p/390415&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In short. I had multiple records per individual, &amp;nbsp;all with the potential to have different postal codes. I needed all of the postal codes to match up to the first postal code recorded for each individual (seq_no = 1).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I managed to figure it out and thought I would post the answer just in case anyone has the same issue.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here's the code:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;input&lt;/P&gt;&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;&lt;SPAN class="token procnames"&gt;data&lt;/SPAN&gt; have&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;input&lt;/SPAN&gt; patient_id Seq_num post_code &lt;SPAN class="token punctuation"&gt;$&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token datalines"&gt;&lt;SPAN class="token keyword"&gt;cards&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;SPAN class="token data string"&gt;1 4 M4F
1 2 M4R
1 3 M4R
1 1 AAA
2 1 BBB
2 3 M4X
2 2 M4T
3 1 CCC
3 2 M4M
4 1 DDD&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="token procnames"&gt;run&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;

&lt;SPAN class="token procnames"&gt;proc&lt;/SPAN&gt; &lt;SPAN class="token procnames"&gt;sort&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token statement"&gt;by&lt;/SPAN&gt; patient_id seq_no&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token procnames"&gt;run&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;

&lt;SPAN class="token procnames"&gt;data&lt;/SPAN&gt; work&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;sorted&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;set&lt;/SPAN&gt; work&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;have&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token statement"&gt;by&lt;/SPAN&gt; patient_id&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;retain&lt;/SPAN&gt; pcfixed&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;if&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;first&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;patient_id &lt;SPAN class="token keyword"&gt;then&lt;/SPAN&gt; pcfixed&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;post_code&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token procnames"&gt;run&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt; &lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Which produces an output of:&lt;/P&gt;&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;Patient_ID Seq_no Post_code pcfixed
       &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;      &lt;SPAN class="token number"&gt;4&lt;/SPAN&gt;      M4F       AAA
       &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;      &lt;SPAN class="token number"&gt;2&lt;/SPAN&gt;      M4R       AAA
       &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;      &lt;SPAN class="token number"&gt;3&lt;/SPAN&gt;      M4R       AAA
       &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;      &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;      AAA       AAA
       &lt;SPAN class="token number"&gt;2&lt;/SPAN&gt;      &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;      BBB       BBB
       &lt;SPAN class="token number"&gt;2&lt;/SPAN&gt;      &lt;SPAN class="token number"&gt;3&lt;/SPAN&gt;      M4X       BBB
       &lt;SPAN class="token number"&gt;2&lt;/SPAN&gt;      &lt;SPAN class="token number"&gt;2&lt;/SPAN&gt;      M4T       BBB
       &lt;SPAN class="token number"&gt;3&lt;/SPAN&gt;      &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;      CCC       CCC
       &lt;SPAN class="token number"&gt;3&lt;/SPAN&gt;      &lt;SPAN class="token number"&gt;2&lt;/SPAN&gt;      M4M       CCC
       &lt;SPAN class="token number"&gt;4&lt;/SPAN&gt;      &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;      DDD       DDD&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;hopefully this helps someone trying to do a similar thing in the future!&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Mike&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 24 Aug 2017 12:50:58 GMT</pubDate>
    <dc:creator>righcoastmike</dc:creator>
    <dc:date>2017-08-24T12:50:58Z</dc:date>
    <item>
      <title>Re-coding variables to match the first instance of that variable for a given record</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Re-coding-variables-to-match-the-first-instance-of-that-variable/m-p/390586#M277624</link>
      <description>&lt;P&gt;******REPOST******* I had posted this in the Base SAS programming community, but it was suggested that it might be more helpful over here. Here is the link to the original thread:&amp;nbsp;&lt;A href="https://communities.sas.com/t5/Base-SAS-Programming/re-coding-multiple-records-to-match-the-first-instance-of-that/td-p/390415" target="_blank"&gt;https://communities.sas.com/t5/Base-SAS-Programming/re-coding-multiple-records-to-match-the-first-instance-of-that/td-p/390415&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In short. I had multiple records per individual, &amp;nbsp;all with the potential to have different postal codes. I needed all of the postal codes to match up to the first postal code recorded for each individual (seq_no = 1).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I managed to figure it out and thought I would post the answer just in case anyone has the same issue.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here's the code:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;input&lt;/P&gt;&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;&lt;SPAN class="token procnames"&gt;data&lt;/SPAN&gt; have&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;input&lt;/SPAN&gt; patient_id Seq_num post_code &lt;SPAN class="token punctuation"&gt;$&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token datalines"&gt;&lt;SPAN class="token keyword"&gt;cards&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;SPAN class="token data string"&gt;1 4 M4F
1 2 M4R
1 3 M4R
1 1 AAA
2 1 BBB
2 3 M4X
2 2 M4T
3 1 CCC
3 2 M4M
4 1 DDD&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="token procnames"&gt;run&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;

&lt;SPAN class="token procnames"&gt;proc&lt;/SPAN&gt; &lt;SPAN class="token procnames"&gt;sort&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token statement"&gt;by&lt;/SPAN&gt; patient_id seq_no&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token procnames"&gt;run&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;

&lt;SPAN class="token procnames"&gt;data&lt;/SPAN&gt; work&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;sorted&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;set&lt;/SPAN&gt; work&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;have&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token statement"&gt;by&lt;/SPAN&gt; patient_id&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;retain&lt;/SPAN&gt; pcfixed&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;if&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;first&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;patient_id &lt;SPAN class="token keyword"&gt;then&lt;/SPAN&gt; pcfixed&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;post_code&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token procnames"&gt;run&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt; &lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Which produces an output of:&lt;/P&gt;&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;Patient_ID Seq_no Post_code pcfixed
       &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;      &lt;SPAN class="token number"&gt;4&lt;/SPAN&gt;      M4F       AAA
       &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;      &lt;SPAN class="token number"&gt;2&lt;/SPAN&gt;      M4R       AAA
       &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;      &lt;SPAN class="token number"&gt;3&lt;/SPAN&gt;      M4R       AAA
       &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;      &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;      AAA       AAA
       &lt;SPAN class="token number"&gt;2&lt;/SPAN&gt;      &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;      BBB       BBB
       &lt;SPAN class="token number"&gt;2&lt;/SPAN&gt;      &lt;SPAN class="token number"&gt;3&lt;/SPAN&gt;      M4X       BBB
       &lt;SPAN class="token number"&gt;2&lt;/SPAN&gt;      &lt;SPAN class="token number"&gt;2&lt;/SPAN&gt;      M4T       BBB
       &lt;SPAN class="token number"&gt;3&lt;/SPAN&gt;      &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;      CCC       CCC
       &lt;SPAN class="token number"&gt;3&lt;/SPAN&gt;      &lt;SPAN class="token number"&gt;2&lt;/SPAN&gt;      M4M       CCC
       &lt;SPAN class="token number"&gt;4&lt;/SPAN&gt;      &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;      DDD       DDD&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;hopefully this helps someone trying to do a similar thing in the future!&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Mike&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 24 Aug 2017 12:50:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Re-coding-variables-to-match-the-first-instance-of-that-variable/m-p/390586#M277624</guid>
      <dc:creator>righcoastmike</dc:creator>
      <dc:date>2017-08-24T12:50:58Z</dc:date>
    </item>
    <item>
      <title>Re: Re-coding variables to match the first instance of that variable for a given record</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Re-coding-variables-to-match-the-first-instance-of-that-variable/m-p/390614#M277625</link>
      <description>&lt;PRE&gt;
An alternative way.





data have;
input patient_id Seq_num post_code $;
cards;
1 4 M4F
1 2 M4R
1 3 M4R
1 1 AAA
2 1 BBB
2 3 M4X
2 2 M4T
3 1 CCC
3 2 M4M
4 1 DDD
;
run;
data want;
 merge have have(keep=patient_id Seq_num post_code
rename=(Seq_num=_seq post_code=pcfixed ) where=(_seq=1));
by patient_id;
drop _:;
run;


&lt;/PRE&gt;</description>
      <pubDate>Thu, 24 Aug 2017 13:48:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Re-coding-variables-to-match-the-first-instance-of-that-variable/m-p/390614#M277625</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2017-08-24T13:48:06Z</dc:date>
    </item>
  </channel>
</rss>

