<?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: Question regarding how to recode a new variable in mutiple obs by the same ID in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Question-regarding-how-to-recode-a-new-variable-in-mutiple-obs/m-p/746112#M234023</link>
    <description>&lt;P&gt;Why not just count how many YES, NO and UNKNOWN values you have?&amp;nbsp; Then you can construct the new status versions from that information.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have ;
  input ID Date :yymmdd10. Status $;
  format date yymmdd10.;
cards;
1 2012-06-19 No
1 2012-06-20 Yes
1 2012-06-21 No
2 2012-06-22 .
2 2012-06-23 No
2 2012-06-24 .
2 2012-06-25 No
3 2012-06-19 Unknown
3 2012-06-20 Yes
3 2012-06-21 No
3 2012-06-22 .
3 2012-06-23 No
4 2012-06-01 Unknown
4 2012-06-03 .
4 2012-06-05 No
;
proc sql ;
create table want as 
  select *
       , sum(status='Yes') as yes
       , sum(status='No') as no
       , sum(status='Unknown') as unknown
       , case when (calculated yes) then 'Yes' else 'No' end as Status1
       , case when (calculated yes) then 'Yes'
              when (calculated unknown) then 'Unknown'
              when (calculated no) then 'No'
              else ' ' end as status2
  from have
  group by id 
  order by id, date
;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;Obs    ID          Date    Status     yes    no    unknown    Status1    status2

  1     1    2012-06-19    No          1      2       0         Yes      Yes
  2     1    2012-06-20    Yes         1      2       0         Yes      Yes
  3     1    2012-06-21    No          1      2       0         Yes      Yes
  4     2    2012-06-22                0      2       0         No       No
  5     2    2012-06-23    No          0      2       0         No       No
  6     2    2012-06-24                0      2       0         No       No
  7     2    2012-06-25    No          0      2       0         No       No
  8     3    2012-06-19    Unknown     1      2       1         Yes      Yes
  9     3    2012-06-20    Yes         1      2       1         Yes      Yes
 10     3    2012-06-21    No          1      2       1         Yes      Yes
 11     3    2012-06-22                1      2       1         Yes      Yes
 12     3    2012-06-23    No          1      2       1         Yes      Yes
 13     4    2012-06-01    Unknown     0      1       1         No       Unknown
 14     4    2012-06-03                0      1       1         No       Unknown
 15     4    2012-06-05    No          0      1       1         No       Unknown&lt;/PRE&gt;</description>
    <pubDate>Sun, 06 Jun 2021 19:50:24 GMT</pubDate>
    <dc:creator>Tom</dc:creator>
    <dc:date>2021-06-06T19:50:24Z</dc:date>
    <item>
      <title>Question regarding how to recode a new variable in mutiple obs by the same ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Question-regarding-how-to-recode-a-new-variable-in-mutiple-obs/m-p/746104#M234019</link>
      <description>&lt;P&gt;Hello everyone, I have a question about how to define status in multiple obs by the same ID.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The dataset I have like this:&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Assessment date&lt;/TD&gt;&lt;TD&gt;Status&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2012-06-19&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2012-06-20&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2012-06-21&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2012-06-22&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2012-06-23&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2012-06-24&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2012-06-25&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2012-06-19&lt;/TD&gt;&lt;TD&gt;Unknown&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2012-06-20&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2012-06-21&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2012-06-22&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2012-06-23&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;2012-06-01&lt;/TD&gt;&lt;TD&gt;Unknown&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;2012-06-03&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;2012-06-05&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The dataset I would like to have is like this:&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Assessment date&lt;/TD&gt;&lt;TD&gt;Status&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Status_new1&lt;/TD&gt;&lt;TD&gt;Status_new2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2012-06-19&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2012-06-20&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2012-06-21&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2012-06-22&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2012-06-23&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2012-06-24&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2012-06-25&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2012-06-19&lt;/TD&gt;&lt;TD&gt;Unknown&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2012-06-20&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2012-06-21&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2012-06-22&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2012-06-23&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;2012-06-01&lt;/TD&gt;&lt;TD&gt;Unknown&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;Unknown&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;2012-06-03&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;Unknown&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;2012-06-05&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;Unknown&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If any obs in the same ID equal to "Yes", the new status variables (No matter is status_new1 or status_new2) should be equal to "Yes".&lt;/P&gt;&lt;P&gt;The only difference between status_new1 and status_new2 is demonstrated in ID 4. Considering ID 4's status are not very clear, I want to create&amp;nbsp;status_new2 to do sensitivity analysis to see if there is any difference when I recode them as "No" and "Unknown".&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The tricky part to me is how to recode the new variables when the status included two different statuses in the same patient.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I used "where status = "Yes" " to output all the patients who had status equal to "Yes", and created their status_new1 as "Yes". But I don't think I could use the same way to do for status = "No". Because "Yes" and "No" could be mixed.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for your help!&lt;/P&gt;</description>
      <pubDate>Sun, 06 Jun 2021 19:02:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Question-regarding-how-to-recode-a-new-variable-in-mutiple-obs/m-p/746104#M234019</guid>
      <dc:creator>N0o9r5a</dc:creator>
      <dc:date>2021-06-06T19:02:09Z</dc:date>
    </item>
    <item>
      <title>Re: Question regarding how to recode a new variable in mutiple obs by the same ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Question-regarding-how-to-recode-a-new-variable-in-mutiple-obs/m-p/746112#M234023</link>
      <description>&lt;P&gt;Why not just count how many YES, NO and UNKNOWN values you have?&amp;nbsp; Then you can construct the new status versions from that information.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have ;
  input ID Date :yymmdd10. Status $;
  format date yymmdd10.;
cards;
1 2012-06-19 No
1 2012-06-20 Yes
1 2012-06-21 No
2 2012-06-22 .
2 2012-06-23 No
2 2012-06-24 .
2 2012-06-25 No
3 2012-06-19 Unknown
3 2012-06-20 Yes
3 2012-06-21 No
3 2012-06-22 .
3 2012-06-23 No
4 2012-06-01 Unknown
4 2012-06-03 .
4 2012-06-05 No
;
proc sql ;
create table want as 
  select *
       , sum(status='Yes') as yes
       , sum(status='No') as no
       , sum(status='Unknown') as unknown
       , case when (calculated yes) then 'Yes' else 'No' end as Status1
       , case when (calculated yes) then 'Yes'
              when (calculated unknown) then 'Unknown'
              when (calculated no) then 'No'
              else ' ' end as status2
  from have
  group by id 
  order by id, date
;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;Obs    ID          Date    Status     yes    no    unknown    Status1    status2

  1     1    2012-06-19    No          1      2       0         Yes      Yes
  2     1    2012-06-20    Yes         1      2       0         Yes      Yes
  3     1    2012-06-21    No          1      2       0         Yes      Yes
  4     2    2012-06-22                0      2       0         No       No
  5     2    2012-06-23    No          0      2       0         No       No
  6     2    2012-06-24                0      2       0         No       No
  7     2    2012-06-25    No          0      2       0         No       No
  8     3    2012-06-19    Unknown     1      2       1         Yes      Yes
  9     3    2012-06-20    Yes         1      2       1         Yes      Yes
 10     3    2012-06-21    No          1      2       1         Yes      Yes
 11     3    2012-06-22                1      2       1         Yes      Yes
 12     3    2012-06-23    No          1      2       1         Yes      Yes
 13     4    2012-06-01    Unknown     0      1       1         No       Unknown
 14     4    2012-06-03                0      1       1         No       Unknown
 15     4    2012-06-05    No          0      1       1         No       Unknown&lt;/PRE&gt;</description>
      <pubDate>Sun, 06 Jun 2021 19:50:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Question-regarding-how-to-recode-a-new-variable-in-mutiple-obs/m-p/746112#M234023</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2021-06-06T19:50:24Z</dc:date>
    </item>
    <item>
      <title>Re: Question regarding how to recode a new variable in mutiple obs by the same ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Question-regarding-how-to-recode-a-new-variable-in-mutiple-obs/m-p/746117#M234024</link>
      <description>&lt;P&gt;Hello Tom, thank you so much! I just tried your code, it worked perfectly!! Your way is absolutely easy to understand and follow! Thanks a lot!!&lt;/P&gt;</description>
      <pubDate>Sun, 06 Jun 2021 20:17:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Question-regarding-how-to-recode-a-new-variable-in-mutiple-obs/m-p/746117#M234024</guid>
      <dc:creator>N0o9r5a</dc:creator>
      <dc:date>2021-06-06T20:17:31Z</dc:date>
    </item>
  </channel>
</rss>

