<?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: Create conditional ID in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Create-conditional-ID/m-p/299761#M63265</link>
    <description>&lt;PRE&gt;
Still doesn't ring the bell.


data have;
informat famid fammemID hsurvid hmemid $8. relationship $12.;
input FamID FamMemID $ HSurvID $ HMemID $ Relationship $ time $;
cards;
1 1 1 1 Householder 1
1 2 1 2 Father 1
1 3 1 3 Son 1
1 4 1 4 Daughter 1
2 1 2 1 Grandfather 1
2 2 2 2 Son 1
2 3 2 3 Stepspn 1
2 3 2 3 Stepspn 2
20000 1 2 4 Friend 1
30000 1 2 5 Flatmate 1
40000 1 3 1 Flatmate 1
50000 1 3 2 Flatmate 1
50000 1 3 2 Flatmate 2
60000 1 3 3 Boarder 1
;
run;
data want;
 set have;
 retain famID2 FamMemID2;
 by HSurvID  HMemID notsorted;
 if first.HMemID then do;
  if relationship in ("Friend" "Flatmate" "Boarder") then do;
   famID2=int(ranuni(0)*1000000);FamMemID2=1;
  end;
  else do;
      famID2=FamID;FamMemID2=FamMemID;
  end;
 end;


&lt;/PRE&gt;</description>
    <pubDate>Wed, 21 Sep 2016 06:40:01 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2016-09-21T06:40:01Z</dc:date>
    <item>
      <title>Create conditional ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-conditional-ID/m-p/299734#M63255</link>
      <description>&lt;P&gt;Hi there.&lt;/P&gt;&lt;P&gt;Can I please ask your help to get&amp;nbsp;my desired data set because I am having diffuilt.&amp;nbsp;&lt;img id="smileyfrustrated" class="emoticon emoticon-smileyfrustrated" src="https://communities.sas.com/i/smilies/16x16_smiley-frustrated.png" alt="Smiley Frustrated" title="Smiley Frustrated" /&gt;&lt;/P&gt;&lt;P&gt;I would like to create&amp;nbsp;FamID and FamMemID based on the original dataset with&amp;nbsp;&lt;SPAN&gt;HSurvID,&amp;nbsp;HMemID,&amp;nbsp;Relationship and time.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;To differentiate between household and family, I would like to create the&amp;nbsp;FamID with&amp;nbsp;&lt;SPAN&gt;FamMemID.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;TIme is the first,..., nth interview.&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;HSurvID is the household ID.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;HMemID is the ID for household interviewee.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;When Relationship is&amp;nbsp;either Friend, Flatmate or Boarder, they will be thought as&amp;nbsp;one new family on its own.&lt;/P&gt;&lt;P&gt;Thank you.&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;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;FamID&lt;/TD&gt;&lt;TD&gt;FamMemID&lt;/TD&gt;&lt;TD&gt;HSurvID&lt;/TD&gt;&lt;TD&gt;HMemID&lt;/TD&gt;&lt;TD&gt;Relationship&lt;/TD&gt;&lt;TD&gt;time&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Householder&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Father&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;Son&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;Daughter&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Grandfather&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Son&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;Stepspn&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;Stepspn&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20000&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;Friend&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30000&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;Flatmate&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;40000&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Flatmate&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;50000&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Flatmate&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;50000&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Flatmate&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;60000&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;Boarder&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 21 Sep 2016 05:44:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-conditional-ID/m-p/299734#M63255</guid>
      <dc:creator>Miracle</dc:creator>
      <dc:date>2016-09-21T05:44:38Z</dc:date>
    </item>
    <item>
      <title>Re: Create conditional ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-conditional-ID/m-p/299741#M63256</link>
      <description>&lt;PRE&gt;
Can you explain what is your logic ? 
FamID ,FamMemID is the columns you want to create ?
&lt;/PRE&gt;</description>
      <pubDate>Wed, 21 Sep 2016 04:51:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-conditional-ID/m-p/299741#M63256</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2016-09-21T04:51:44Z</dc:date>
    </item>
    <item>
      <title>Re: Create conditional ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-conditional-ID/m-p/299743#M63257</link>
      <description>&lt;P&gt;Skeleton program may be as:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp;set have (rename=(famid=old_famid fammemid = old_fammemid);&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; select (upcase(relatioship));&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;when ('HOUSEHOLDER') 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; famid = ... ; &amp;nbsp;/* define new value to famid */&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; fammemid =&amp;nbsp;&lt;SPAN&gt; ... ; &amp;nbsp;/* define new value to fammemid */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; end;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;when ('FATHER') do;&lt;/SPAN&gt;&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; famid = ... ; &amp;nbsp;/* define new value to famid */&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; fammemid =&amp;nbsp;&lt;SPAN&gt; ... ; &amp;nbsp;/* define new value to fammemid */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; end;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .... &amp;nbsp; /* deal with next values */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; end; &amp;nbsp; /* end of select statement */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 21 Sep 2016 05:05:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-conditional-ID/m-p/299743#M63257</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2016-09-21T05:05:51Z</dc:date>
    </item>
    <item>
      <title>Re: Create conditional ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-conditional-ID/m-p/299752#M63261</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/18408"&gt;@Ksharp﻿&lt;/a&gt;&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/88384"&gt;@Shmuel﻿&lt;/a&gt;,&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have just edited my post.&lt;/P&gt;&lt;P&gt;Hope it is much clearer&amp;nbsp;now.&lt;/P&gt;&lt;P&gt;Thank you.&amp;nbsp;&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;</description>
      <pubDate>Wed, 21 Sep 2016 05:47:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-conditional-ID/m-p/299752#M63261</guid>
      <dc:creator>Miracle</dc:creator>
      <dc:date>2016-09-21T05:47:55Z</dc:date>
    </item>
    <item>
      <title>Re: Create conditional ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-conditional-ID/m-p/299754#M63262</link>
      <description>&lt;P&gt;Not a full answer but hopefully illustrates the idea. Perhaps someone else can complete.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Your key variables appear to be hsurvid hmemid and time.&lt;/P&gt;
&lt;P&gt;So using those in combination with BY and checking the values in Relationship are required. You'll need some extra variables to keep your IDs straight.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope this helps.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
informat famid fammemID hsurvid hmemid $8. relationship $12.;
input FamID FamMemID $ HSurvID $ HMemID $ Relationship $ time $;
cards;
1 1 1 1 Householder 1
1 2 1 2 Father 1
1 3 1 3 Son 1
1 4 1 4 Daughter 1
2 1 2 1 Grandfather 1
2 2 2 2 Son 1
2 3 2 3 Stepspn 1
2 3 2 3 Stepspn 2
20000 1 2 4 Friend 1
30000 1 2 5 Flatmate 1
40000 1 3 1 Flatmate 1
50000 1 3 2 Flatmate 1
50000 1 3 2 Flatmate 2
60000 1 3 3 Boarder 1
;
run;

data want;
set have;
by hsurvid hmemid time;
retain famID1 0 memID 0 nonFam 0;
if first.hsurvid then do;
famID1+1;
nonFam=0;
memID=0;
end;

if relationship not in ("Friend" "Flatmate" "Boarder") then memID+1;

if relationship in ("Friend" "Flatmate" "Boarder") then do;
famID2=famID1*10000 + nonFam;
nonFam+1;
end;

run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 21 Sep 2016 05:51:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-conditional-ID/m-p/299754#M63262</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2016-09-21T05:51:25Z</dc:date>
    </item>
    <item>
      <title>Re: Create conditional ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-conditional-ID/m-p/299756#M63263</link>
      <description>&lt;P&gt;Without entering the logic of what conditions lead&amp;nbsp;to each change,&lt;/P&gt;&lt;P&gt;here is a new skeleton for your program:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;lt;conditions-1&amp;gt; then do; ... &amp;lt;define new values &amp;gt; ; end; else&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;lt;conditions-2&amp;gt; then do; ... &amp;lt;define new values &amp;gt; ; end; else&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;... /* last variation: */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;lt;conditions-n&amp;gt; then&amp;nbsp;do; ... &amp;lt;define new values &amp;gt; ; end; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 21 Sep 2016 05:56:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-conditional-ID/m-p/299756#M63263</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2016-09-21T05:56:44Z</dc:date>
    </item>
    <item>
      <title>Re: Create conditional ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-conditional-ID/m-p/299761#M63265</link>
      <description>&lt;PRE&gt;
Still doesn't ring the bell.


data have;
informat famid fammemID hsurvid hmemid $8. relationship $12.;
input FamID FamMemID $ HSurvID $ HMemID $ Relationship $ time $;
cards;
1 1 1 1 Householder 1
1 2 1 2 Father 1
1 3 1 3 Son 1
1 4 1 4 Daughter 1
2 1 2 1 Grandfather 1
2 2 2 2 Son 1
2 3 2 3 Stepspn 1
2 3 2 3 Stepspn 2
20000 1 2 4 Friend 1
30000 1 2 5 Flatmate 1
40000 1 3 1 Flatmate 1
50000 1 3 2 Flatmate 1
50000 1 3 2 Flatmate 2
60000 1 3 3 Boarder 1
;
run;
data want;
 set have;
 retain famID2 FamMemID2;
 by HSurvID  HMemID notsorted;
 if first.HMemID then do;
  if relationship in ("Friend" "Flatmate" "Boarder") then do;
   famID2=int(ranuni(0)*1000000);FamMemID2=1;
  end;
  else do;
      famID2=FamID;FamMemID2=FamMemID;
  end;
 end;


&lt;/PRE&gt;</description>
      <pubDate>Wed, 21 Sep 2016 06:40:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-conditional-ID/m-p/299761#M63265</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2016-09-21T06:40:01Z</dc:date>
    </item>
  </channel>
</rss>

