<?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 Changing the value of a variable for a particular ID in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Changing-the-value-of-a-variable-for-a-particular-ID/m-p/670236#M201158</link>
    <description>&lt;P&gt;Say I have a subsample of my data that looks as follows:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="184"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="35"&gt;year&lt;/TD&gt;
&lt;TD width="77"&gt;event_year&lt;/TD&gt;
&lt;TD width="51"&gt;change&lt;/TD&gt;
&lt;TD width="21"&gt;id&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2008&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2011&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2012&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2002&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;55&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2003&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;55&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;55&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2005&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;55&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Whenever the variable change takes a value of 1 for year = event_ye, I want to create a new column for that id only called event_year_new where it is equal to event_year+1. If change = 0, then nothing happens and event_year = event_year_new:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="296"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="35"&gt;year&lt;/TD&gt;
&lt;TD width="77"&gt;event_year&lt;/TD&gt;
&lt;TD width="51"&gt;change&lt;/TD&gt;
&lt;TD width="21"&gt;id&lt;/TD&gt;
&lt;TD width="112"&gt;event_year_new&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2008&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2011&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2012&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2002&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;55&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2003&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;55&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;55&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2005&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;55&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;How could I do this? Of course the below code does not work because it only changes it for the case when year = event_year, but I want it to apply to each ID.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
if year = event_year and change=1 then
      do;
event_year_new = event_ye+1;
      end;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Fri, 17 Jul 2020 23:09:41 GMT</pubDate>
    <dc:creator>TrueTears</dc:creator>
    <dc:date>2020-07-17T23:09:41Z</dc:date>
    <item>
      <title>Changing the value of a variable for a particular ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Changing-the-value-of-a-variable-for-a-particular-ID/m-p/670236#M201158</link>
      <description>&lt;P&gt;Say I have a subsample of my data that looks as follows:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="184"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="35"&gt;year&lt;/TD&gt;
&lt;TD width="77"&gt;event_year&lt;/TD&gt;
&lt;TD width="51"&gt;change&lt;/TD&gt;
&lt;TD width="21"&gt;id&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2008&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2011&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2012&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2002&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;55&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2003&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;55&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;55&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2005&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;55&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Whenever the variable change takes a value of 1 for year = event_ye, I want to create a new column for that id only called event_year_new where it is equal to event_year+1. If change = 0, then nothing happens and event_year = event_year_new:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="296"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="35"&gt;year&lt;/TD&gt;
&lt;TD width="77"&gt;event_year&lt;/TD&gt;
&lt;TD width="51"&gt;change&lt;/TD&gt;
&lt;TD width="21"&gt;id&lt;/TD&gt;
&lt;TD width="112"&gt;event_year_new&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2008&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2011&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2012&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2002&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;55&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2003&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;55&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;55&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2005&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;55&lt;/TD&gt;
&lt;TD&gt;2004&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;How could I do this? Of course the below code does not work because it only changes it for the case when year = event_year, but I want it to apply to each ID.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
if year = event_year and change=1 then
      do;
event_year_new = event_ye+1;
      end;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 17 Jul 2020 23:09:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Changing-the-value-of-a-variable-for-a-particular-ID/m-p/670236#M201158</guid>
      <dc:creator>TrueTears</dc:creator>
      <dc:date>2020-07-17T23:09:41Z</dc:date>
    </item>
    <item>
      <title>Re: Changing the value of a variable for a particular ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Changing-the-value-of-a-variable-for-a-particular-ID/m-p/670252#M201169</link>
      <description>&lt;P&gt;Question:&amp;nbsp; what if a given ID has more than one non-missing value for change?&amp;nbsp; Do you plan to make multiple new columns in such cases?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 18 Jul 2020 03:58:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Changing-the-value-of-a-variable-for-a-particular-ID/m-p/670252#M201169</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2020-07-18T03:58:53Z</dc:date>
    </item>
    <item>
      <title>Re: Changing the value of a variable for a particular ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Changing-the-value-of-a-variable-for-a-particular-ID/m-p/670255#M201170</link>
      <description>&lt;P&gt;No, the change variable only has values for when year = event_year. It is always missing for other cases.&lt;/P&gt;</description>
      <pubDate>Sat, 18 Jul 2020 04:09:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Changing-the-value-of-a-variable-for-a-particular-ID/m-p/670255#M201170</guid>
      <dc:creator>TrueTears</dc:creator>
      <dc:date>2020-07-18T04:09:00Z</dc:date>
    </item>
    <item>
      <title>Re: Changing the value of a variable for a particular ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Changing-the-value-of-a-variable-for-a-particular-ID/m-p/670256#M201171</link>
      <description>&lt;P&gt;Assuming each id never has more than one change value, and that the data are sorted by id, then:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input year	event_year	@17 change 1.	id;
datalines;
2007	2009	 	3
2008	2009	 	3
2009	2009	1	3
2010	2009	 	3
2011	2009	 	3
2012	2009	 	3
2002	2004	 	55
2003	2004	 	55
2004	2004	0	55
2005	2004	 	55
run;

data want;
  set have (where=(change^=.) in=inchange)
      have (in=inwanted);
  by id;

  if first.id then do;
    if change=1 then event_year_new=event_year+1; else
    if change=0 then event_year_new=event_year;  else
    event_year_new=.;
  end;
  retain event_year_new;
  if inwanted;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;For each id, this reads the change record prior to reading all the records.&amp;nbsp; So the event_year_new can be established at the start of each id.&amp;nbsp; Leaving the event_year_new variable retained propagates it through all the records for that id.&lt;/P&gt;</description>
      <pubDate>Sat, 18 Jul 2020 04:13:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Changing-the-value-of-a-variable-for-a-particular-ID/m-p/670256#M201171</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2020-07-18T04:13:15Z</dc:date>
    </item>
    <item>
      <title>Re: Changing the value of a variable for a particular ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Changing-the-value-of-a-variable-for-a-particular-ID/m-p/670259#M201172</link>
      <description>&lt;P&gt;Does below work for your actual data?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  infile datalines dsd truncover;
  input year event_year change id;
  datalines;
2007,2009, ,3
2008,2009, ,3
2009,2009,1,3
2010,2009, ,3
2011,2009, ,3
2012,2009, ,3
2002,2004, ,55
2003,2004, ,55
2004,2004,0,55
2005,2004, ,55
;

data want(drop=_:);
  merge 
    have 
    have( keep=id change
          where=(not missing(_change))
          rename=(change=_change)
        );
  by id;
  event_year_new=sum(event_year,_change);
run;

proc print data=want;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Patrick_0-1595045852723.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/47270i8C99DA3B5A35040D/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Patrick_0-1595045852723.png" alt="Patrick_0-1595045852723.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 18 Jul 2020 04:17:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Changing-the-value-of-a-variable-for-a-particular-ID/m-p/670259#M201172</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2020-07-18T04:17:44Z</dc:date>
    </item>
  </channel>
</rss>

