<?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 How to create a variable based on another variables per ID in SAS Data Management</title>
    <link>https://communities.sas.com/t5/SAS-Data-Management/How-to-create-a-variable-based-on-another-variables-per-ID/m-p/648500#M19216</link>
    <description>&lt;P&gt;I have a data set containing ID, Visit Type, and Date.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Visit&lt;/TD&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20060505&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;hospital&lt;/TD&gt;&lt;TD&gt;20060506&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;hospital&lt;/TD&gt;&lt;TD&gt;20061217&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20060301&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20060305&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20070503&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20070506&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20100505&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20061112&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20080103&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20081012&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;hospital&lt;/TD&gt;&lt;TD&gt;20081227&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20050325&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;hospital&lt;/TD&gt;&lt;TD&gt;20050412&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;hospital&lt;/TD&gt;&lt;TD&gt;20070510&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20061010&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20061231&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20070125&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20060718&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20060817&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20070918&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now based on this, I want to define "Index Date."&lt;/P&gt;&lt;P&gt;For patients who visited both hospital and clinic, I want the index date to be the first visit of hospital.&lt;/P&gt;&lt;P&gt;For patients who only visited clinics, I want the index date to be the first visit of clinic.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So the new table I want would look something like this&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Visit&lt;/TD&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;Index Date&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20060505&lt;/TD&gt;&lt;TD&gt;20060506&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;hospital&lt;/TD&gt;&lt;TD&gt;20060506&lt;/TD&gt;&lt;TD&gt;20060506&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;hospital&lt;/TD&gt;&lt;TD&gt;20061217&lt;/TD&gt;&lt;TD&gt;20060506&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20060301&lt;/TD&gt;&lt;TD&gt;20060301&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20060305&lt;/TD&gt;&lt;TD&gt;20060301&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20070503&lt;/TD&gt;&lt;TD&gt;20060301&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20070506&lt;/TD&gt;&lt;TD&gt;20060301&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20100505&lt;/TD&gt;&lt;TD&gt;20060301&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20061112&lt;/TD&gt;&lt;TD&gt;20061112&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20080103&lt;/TD&gt;&lt;TD&gt;20081227&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20081012&lt;/TD&gt;&lt;TD&gt;20081227&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;hospital&lt;/TD&gt;&lt;TD&gt;20081227&lt;/TD&gt;&lt;TD&gt;20081227&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20050325&lt;/TD&gt;&lt;TD&gt;20050412&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;hospital&lt;/TD&gt;&lt;TD&gt;20050412&lt;/TD&gt;&lt;TD&gt;20050412&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;hospital&lt;/TD&gt;&lt;TD&gt;20070510&lt;/TD&gt;&lt;TD&gt;20050412&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20061010&lt;/TD&gt;&lt;TD&gt;20050412&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20061231&lt;/TD&gt;&lt;TD&gt;20050412&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20070125&lt;/TD&gt;&lt;TD&gt;20050412&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20060718&lt;/TD&gt;&lt;TD&gt;20060718&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20060817&lt;/TD&gt;&lt;TD&gt;20060718&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20070918&lt;/TD&gt;&lt;TD&gt;20060718&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tried using DO loop but seems like I just can't get it right.&lt;/P&gt;&lt;P&gt;How to solve this?!&lt;/P&gt;</description>
    <pubDate>Wed, 20 May 2020 06:17:18 GMT</pubDate>
    <dc:creator>lizwarr</dc:creator>
    <dc:date>2020-05-20T06:17:18Z</dc:date>
    <item>
      <title>How to create a variable based on another variables per ID</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/How-to-create-a-variable-based-on-another-variables-per-ID/m-p/648500#M19216</link>
      <description>&lt;P&gt;I have a data set containing ID, Visit Type, and Date.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Visit&lt;/TD&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20060505&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;hospital&lt;/TD&gt;&lt;TD&gt;20060506&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;hospital&lt;/TD&gt;&lt;TD&gt;20061217&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20060301&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20060305&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20070503&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20070506&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20100505&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20061112&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20080103&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20081012&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;hospital&lt;/TD&gt;&lt;TD&gt;20081227&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20050325&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;hospital&lt;/TD&gt;&lt;TD&gt;20050412&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;hospital&lt;/TD&gt;&lt;TD&gt;20070510&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20061010&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20061231&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20070125&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20060718&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20060817&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20070918&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now based on this, I want to define "Index Date."&lt;/P&gt;&lt;P&gt;For patients who visited both hospital and clinic, I want the index date to be the first visit of hospital.&lt;/P&gt;&lt;P&gt;For patients who only visited clinics, I want the index date to be the first visit of clinic.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So the new table I want would look something like this&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Visit&lt;/TD&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;Index Date&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20060505&lt;/TD&gt;&lt;TD&gt;20060506&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;hospital&lt;/TD&gt;&lt;TD&gt;20060506&lt;/TD&gt;&lt;TD&gt;20060506&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;hospital&lt;/TD&gt;&lt;TD&gt;20061217&lt;/TD&gt;&lt;TD&gt;20060506&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20060301&lt;/TD&gt;&lt;TD&gt;20060301&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20060305&lt;/TD&gt;&lt;TD&gt;20060301&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20070503&lt;/TD&gt;&lt;TD&gt;20060301&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20070506&lt;/TD&gt;&lt;TD&gt;20060301&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20100505&lt;/TD&gt;&lt;TD&gt;20060301&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20061112&lt;/TD&gt;&lt;TD&gt;20061112&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20080103&lt;/TD&gt;&lt;TD&gt;20081227&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20081012&lt;/TD&gt;&lt;TD&gt;20081227&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;hospital&lt;/TD&gt;&lt;TD&gt;20081227&lt;/TD&gt;&lt;TD&gt;20081227&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20050325&lt;/TD&gt;&lt;TD&gt;20050412&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;hospital&lt;/TD&gt;&lt;TD&gt;20050412&lt;/TD&gt;&lt;TD&gt;20050412&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;hospital&lt;/TD&gt;&lt;TD&gt;20070510&lt;/TD&gt;&lt;TD&gt;20050412&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20061010&lt;/TD&gt;&lt;TD&gt;20050412&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20061231&lt;/TD&gt;&lt;TD&gt;20050412&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20070125&lt;/TD&gt;&lt;TD&gt;20050412&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20060718&lt;/TD&gt;&lt;TD&gt;20060718&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20060817&lt;/TD&gt;&lt;TD&gt;20060718&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;clinic&lt;/TD&gt;&lt;TD&gt;20070918&lt;/TD&gt;&lt;TD&gt;20060718&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tried using DO loop but seems like I just can't get it right.&lt;/P&gt;&lt;P&gt;How to solve this?!&lt;/P&gt;</description>
      <pubDate>Wed, 20 May 2020 06:17:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/How-to-create-a-variable-based-on-another-variables-per-ID/m-p/648500#M19216</guid>
      <dc:creator>lizwarr</dc:creator>
      <dc:date>2020-05-20T06:17:18Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a variable based on another variables per ID</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/How-to-create-a-variable-based-on-another-variables-per-ID/m-p/648503#M19217</link>
      <description>&lt;P&gt;HI&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/314797"&gt;@lizwarr&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can try the following code.&lt;/P&gt;
&lt;P&gt;However, in your output, I don't understand why index_date for ID 3 should be 2006-03-01 and not 2006-11-12, and why&amp;nbsp;index_date for ID 5 should not be 2005-04-12 for all the records?&lt;/P&gt;
&lt;P&gt;Is it a typing mistake?&lt;/P&gt;
&lt;P&gt;Best,&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;

	create table want as
	
	/*For patients who only visited clinics*/
	select *, min(date) as index_date format=YYMMDD10.
	from have
	group by id
	having count(distinct visit) =1 and visit = "clinic"

	union corr all 

	/*For patients who visited both clinics and hospitals*/
	select b.*, a.index_date
	from (select distinct id, min(date) as index_date format=YYMMDD10.
		from (select *
			 from have
			 group by id
			 having count(distinct visit) =2 and visit in("clinic","hospital"))
		where visit = "hospital"
		group by id) as a
		inner join
		(select *
		from have
		group by id
		having count(distinct visit) =2 and visit in("clinic","hospital")) as b
		on a.id = b.id
		
	order by id, date;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 18 May 2020 09:55:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/How-to-create-a-variable-based-on-another-variables-per-ID/m-p/648503#M19217</guid>
      <dc:creator>ed_sas_member</dc:creator>
      <dc:date>2020-05-18T09:55:23Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a variable based on another variables per ID</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/How-to-create-a-variable-based-on-another-variables-per-ID/m-p/648512#M19218</link>
      <description>Yes, those are my terrible typos, since I was in a rush to get somewhere.. Sorry for the confusion. Thank you for your quick response! I tried the code you provided, but I keep getting the error code at the end saying "character expression requires a character format" for the line "order by id, date;" My ID is numeric variable, whereas the date is character..</description>
      <pubDate>Mon, 18 May 2020 10:43:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/How-to-create-a-variable-based-on-another-variables-per-ID/m-p/648512#M19218</guid>
      <dc:creator>lizwarr</dc:creator>
      <dc:date>2020-05-18T10:43:59Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a variable based on another variables per ID</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/How-to-create-a-variable-based-on-another-variables-per-ID/m-p/648514#M19219</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/314797"&gt;@lizwarr&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you for the clarification.&lt;/P&gt;
&lt;P&gt;I thought date was a regular SAS date.&lt;/P&gt;
&lt;P&gt;As it is actually character, you can remove 'format=YYMMDD10." as follows.&lt;/P&gt;
&lt;P&gt;NB: there is no need to convert it in a valid SAS date as it is in the form YYMMDD, so the alphabetical order is OK to get the minimal value.&lt;/P&gt;
&lt;P&gt;Best,&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;

	create table want as
	
	/*For patients who only visited clinics*/

	select *, min(date) as index_date
	from have
	group by id
	having count(distinct visit) =1 and visit = "clinic"

	union corr all 

	/*For patients who visited both clinics and hospitals*/
	select b.*, a.index_date
	from (select distinct id, min(date) as index_date
		from (select *
			 from have
			 group by id
			 having count(distinct visit) =2 and visit in("clinic","hospital"))
		where visit = "hospital"
		group by id) as a
		inner join
		(select *
		from have
		group by id
		having count(distinct visit) =2 and visit in("clinic","hospital")) as b
		on a.id = b.id
		
	order by id, date;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 18 May 2020 10:48:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/How-to-create-a-variable-based-on-another-variables-per-ID/m-p/648514#M19219</guid>
      <dc:creator>ed_sas_member</dc:creator>
      <dc:date>2020-05-18T10:48:41Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a variable based on another variables per ID</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/How-to-create-a-variable-based-on-another-variables-per-ID/m-p/648518#M19220</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards expandtabs;
input ID	Visit $	Date : yymmdd.;
format date yymmddn8.;
cards;
1	clinic	20060505
1	hospital	20060506
1	hospital	20061217
2	clinic	20060301
2	clinic	20060305
2	clinic	20070503
2	clinic	20070506
2	clinic	20100505
3	clinic	20061112
4	clinic	20080103
4	clinic	20081012
4	hospital	20081227
5	clinic	20050325
5	hospital	20050412
5	hospital	20070510
5	clinic	20061010
5	clinic	20061231
5	clinic	20070125
6	clinic	20060718
6	clinic	20060817
6	clinic	20070918
;

proc sort data=have out=temp;
by id descending visit date;
run;
proc sort data=temp out=temp1 nodupkey;
by id ;
run;
data want;
 merge have temp1(keep=id date rename=(date=index_date));
 by id;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 18 May 2020 11:01:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/How-to-create-a-variable-based-on-another-variables-per-ID/m-p/648518#M19220</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2020-05-18T11:01:34Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a variable based on another variables per ID</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/How-to-create-a-variable-based-on-another-variables-per-ID/m-p/648527#M19221</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/314797"&gt;@lizwarr&lt;/a&gt;&amp;nbsp; The loop you mean perhaps could be the following. Also, I request you to kindly please review the contents of your description and make sure the expected output matches the description as mentioned by&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/292097"&gt;@ed_sas_member&lt;/a&gt;&amp;nbsp;.&amp;nbsp; The below code took the Date as numeric. No big deal, just remove the format statement in the code if your date variable is actually character.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;

data have;
infile cards expandtabs;
input ID	Visit $	Date : yymmdd.;
format date yymmddn8.;
cards;
1	clinic	20060505
1	hospital	20060506
1	hospital	20061217
2	clinic	20060301
2	clinic	20060305
2	clinic	20070503
2	clinic	20070506
2	clinic	20100505
3	clinic	20061112
4	clinic	20080103
4	clinic	20081012
4	hospital	20081227
5	clinic	20050325
5	hospital	20050412
5	hospital	20070510
5	clinic	20061010
5	clinic	20061231
5	clinic	20070125
6	clinic	20060718
6	clinic	20060817
6	clinic	20070918
;

data want;
 _iorc_=.;
 do _n_=1 by 1 until(last.id);
  set have;
  by id visit notsorted;
  if first.visit then _iorc_+1;
  if not _h_date and visit='hospital' then _h_date=date;
  if not _c_date and visit='clinic' then _c_date=date;
 end;
 do _n_=1 to _n_;
  set have;
  if _iorc_&amp;gt;=2 then index_date=_h_date;
  else index_date=_c_date;
  output;
 end;
 format index_date yymmdd10.;
 drop _:;
run;

proc print noobs;run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 18 May 2020 12:04:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/How-to-create-a-variable-based-on-another-variables-per-ID/m-p/648527#M19221</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-05-18T12:04:55Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a variable based on another variables per ID</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/How-to-create-a-variable-based-on-another-variables-per-ID/m-p/648534#M19222</link>
      <description>&lt;P&gt;Generally elders/wise SAS veterans often advice that SAS functionality works best when you have dates as numeric SAS dates. This helps in computing intervals of various kinds etc for many kinds of analysis.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So if numeric--&amp;gt;Proc SQL can be handy&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;

proc sql;
create table want(drop=_n_) as
select *,min(ifn(not _n_,.,_n_)) as index_date format=yymmddn8.
from 
(select *, ifn(count(distinct Visit)=2,date*(visit='hospital'),date*(visit='clinic')) as _n_
from have 
group by id)
group by id
order by id,date;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 18 May 2020 12:59:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/How-to-create-a-variable-based-on-another-variables-per-ID/m-p/648534#M19222</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-05-18T12:59:03Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a variable based on another variables per ID</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/How-to-create-a-variable-based-on-another-variables-per-ID/m-p/648538#M19223</link>
      <description>&lt;P&gt;Try next code:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data=have;
   by ID descending visit date;
run;
data want;
 set have;
  by ID;
      retain index_date;
      if first.ID then index_date = date;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;If need you can sort output to desired order - for example:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data=want; by ID date; run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 18 May 2020 13:03:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/How-to-create-a-variable-based-on-another-variables-per-ID/m-p/648538#M19223</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2020-05-18T13:03:30Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a variable based on another variables per ID</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/How-to-create-a-variable-based-on-another-variables-per-ID/m-p/649098#M19225</link>
      <description>Ah! As simple as that!! Thank you so much!</description>
      <pubDate>Wed, 20 May 2020 06:42:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/How-to-create-a-variable-based-on-another-variables-per-ID/m-p/649098#M19225</guid>
      <dc:creator>lizwarr</dc:creator>
      <dc:date>2020-05-20T06:42:14Z</dc:date>
    </item>
  </channel>
</rss>

