<?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: calculate difference between last and first observation by subject in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/calculate-difference-between-last-and-first-observation-by/m-p/299484#M63179</link>
    <description>&lt;P&gt;Is this by ID or for an entire dataset?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Assuming ID, use BY group and first/last.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;Data want;
Set have;
By id t;
Retain first_value;

If first.id then 
First_value=base;

If last.id then do;
    Diff = base - first_value;
    OUTPUT; * explicitly only output one record per ID - the last one;
end;

Run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Tue, 20 Sep 2016 08:52:17 GMT</pubDate>
    <dc:creator>Reeza</dc:creator>
    <dc:date>2016-09-20T08:52:17Z</dc:date>
    <item>
      <title>calculate difference between last and first observation by subject</title>
      <link>https://communities.sas.com/t5/SAS-Programming/calculate-difference-between-last-and-first-observation-by/m-p/299483#M63178</link>
      <description>&lt;P&gt;Hi,&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;t&lt;/TD&gt;&lt;TD&gt;base&lt;/TD&gt;&lt;TD&gt;value&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;5.053078&lt;/TD&gt;&lt;TD&gt;14.61624&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;5.687529&lt;/TD&gt;&lt;TD&gt;36.09745&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;4.149219&lt;/TD&gt;&lt;TD&gt;45.9342&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;3.342423&lt;/TD&gt;&lt;TD&gt;72.15495&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;want&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;id&lt;/TD&gt;&lt;TD&gt;t&lt;/TD&gt;&lt;TD&gt;base&lt;/TD&gt;&lt;TD&gt;value&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;TD&gt;5.053078&lt;/TD&gt;&lt;TD&gt;67.10187&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So, Basically I am trying to calculate different between first and last t variable value (14-1=13). similarly, difference (67.10) of last observation of value (72.15) with first value of base (5.05).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any help to achieve this calculation in sas?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;</description>
      <pubDate>Tue, 20 Sep 2016 08:43:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/calculate-difference-between-last-and-first-observation-by/m-p/299483#M63178</guid>
      <dc:creator>ari</dc:creator>
      <dc:date>2016-09-20T08:43:05Z</dc:date>
    </item>
    <item>
      <title>Re: calculate difference between last and first observation by subject</title>
      <link>https://communities.sas.com/t5/SAS-Programming/calculate-difference-between-last-and-first-observation-by/m-p/299484#M63179</link>
      <description>&lt;P&gt;Is this by ID or for an entire dataset?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Assuming ID, use BY group and first/last.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;Data want;
Set have;
By id t;
Retain first_value;

If first.id then 
First_value=base;

If last.id then do;
    Diff = base - first_value;
    OUTPUT; * explicitly only output one record per ID - the last one;
end;

Run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 20 Sep 2016 08:52:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/calculate-difference-between-last-and-first-observation-by/m-p/299484#M63179</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2016-09-20T08:52:17Z</dc:date>
    </item>
    <item>
      <title>Re: calculate difference between last and first observation by subject</title>
      <link>https://communities.sas.com/t5/SAS-Programming/calculate-difference-between-last-and-first-observation-by/m-p/299600#M63214</link>
      <description>&lt;P&gt;Get it with:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input id	t	base	value;
datalines;
1	1	5.053078	14.61624
1	5	5.687529	36.09745
1	7	4.149219	45.9342
1	14	3.342423	72.15495
;

data want;
do until(last.id);
    set have; by id;
    if first.id then do;
        firstT = t;
        startBase = base;
        firstValue = value;
        end;
    t = t - firstT;
    value = value - firstValue;
    end;
drop first: base;
rename startBase=base;
run;

proc print data=want noobs; run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 20 Sep 2016 16:28:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/calculate-difference-between-last-and-first-observation-by/m-p/299600#M63214</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2016-09-20T16:28:22Z</dc:date>
    </item>
    <item>
      <title>Re: calculate difference between last and first observation by subject</title>
      <link>https://communities.sas.com/t5/SAS-Programming/calculate-difference-between-last-and-first-observation-by/m-p/299775#M63272</link>
      <description>&lt;P&gt;/*Create dataset*/&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;data&lt;/FONT&gt; &lt;FONT color="#993366"&gt;create_data&lt;/FONT&gt;;&lt;BR /&gt; &lt;FONT color="#0000FF"&gt;infile datalines&lt;/FONT&gt;;&lt;BR /&gt; &lt;FONT color="#0000FF"&gt;input&lt;/FONT&gt; &lt;FONT color="#FF00FF"&gt;id t base value&lt;/FONT&gt;;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;datalines&lt;/FONT&gt;;&lt;BR /&gt;&lt;FONT color="#339966"&gt;1 1 5.053078 14.61624&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#339966"&gt;1 5 5.687529 36.09745&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#339966"&gt;1 7 4.149219 45.9342&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#339966"&gt;1 14 3.342423 72.15495&lt;/FONT&gt;&lt;BR /&gt;;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;run&lt;/FONT&gt;;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000FF"&gt;data&lt;/FONT&gt; &lt;FONT color="#993366"&gt;want&lt;/FONT&gt;;&lt;BR /&gt; &lt;FONT color="#0000FF"&gt;set&lt;/FONT&gt; &lt;FONT color="#993366"&gt;create_data&lt;/FONT&gt; &lt;FONT color="#0000FF"&gt;end&lt;/FONT&gt;=&lt;FONT color="#FF0000"&gt;last&lt;/FONT&gt;;&lt;BR /&gt; &lt;FONT color="#0000FF"&gt;by&lt;/FONT&gt;&lt;FONT color="#FF00FF"&gt; id t&lt;/FONT&gt;;&lt;BR /&gt; &lt;BR /&gt; /*Initialize variables*/&lt;BR /&gt; &lt;FONT color="#0000FF"&gt;retain&lt;/FONT&gt; &lt;FONT color="#FF0000"&gt;t_first&lt;/FONT&gt; 0&lt;BR /&gt; &lt;FONT color="#FF0000"&gt;base1&lt;/FONT&gt; 0&lt;BR /&gt; &lt;FONT color="#FF0000"&gt;t_first&lt;/FONT&gt; 0&lt;BR /&gt; &lt;FONT color="#FF0000"&gt;t_last&lt;/FONT&gt; 0&lt;BR /&gt; &lt;FONT color="#FF0000"&gt;value_last&lt;/FONT&gt; 0&lt;BR /&gt; &lt;FONT color="#FF0000"&gt;t_diff&lt;/FONT&gt; 0&lt;BR /&gt; &lt;FONT color="#FF0000"&gt;value_diff&lt;/FONT&gt; 0;&lt;BR /&gt; &lt;BR /&gt; /*Read base and t values for first observation*/ &lt;BR /&gt; &lt;FONT color="#0000FF"&gt;if first&lt;/FONT&gt;.id &lt;FONT color="#0000FF"&gt;then do&lt;/FONT&gt;;&lt;BR /&gt; &lt;FONT color="#FF0000"&gt;base1&lt;/FONT&gt;=&lt;FONT color="#FF00FF"&gt;base&lt;/FONT&gt;;&lt;BR /&gt; &lt;FONT color="#FF0000"&gt;t_first&lt;/FONT&gt;=&lt;FONT color="#FF00FF"&gt;t&lt;/FONT&gt;;&lt;BR /&gt; &lt;FONT color="#0000FF"&gt;end&lt;/FONT&gt;;&lt;BR /&gt; &lt;BR /&gt; /*Read t and value values from last observation*/&lt;BR /&gt; &lt;FONT color="#0000FF"&gt;if&lt;/FONT&gt; &lt;FONT color="#0000FF"&gt;last&lt;/FONT&gt;.&lt;FONT color="#FF00FF"&gt;id &lt;/FONT&gt;&lt;FONT color="#0000FF"&gt;then do&lt;/FONT&gt;; &lt;BR /&gt; &lt;FONT color="#FF0000"&gt;t_last&lt;/FONT&gt;=&lt;FONT color="#FF00FF"&gt;t&lt;/FONT&gt;;&lt;BR /&gt; &lt;FONT color="#FF0000"&gt;value_last&lt;/FONT&gt;=&lt;FONT color="#FF00FF"&gt;value&lt;/FONT&gt;;&lt;BR /&gt; &lt;FONT color="#0000FF"&gt;end&lt;/FONT&gt;;&lt;BR /&gt; &lt;BR /&gt; /*Perform calculation*/&lt;BR /&gt; &lt;FONT color="#FF0000"&gt;t_diff&lt;/FONT&gt;=&lt;FONT color="#FF0000"&gt;t_last&lt;/FONT&gt; - &lt;FONT color="#FF0000"&gt;t_first&lt;/FONT&gt;;&lt;BR /&gt; &lt;FONT color="#FF0000"&gt;value_diff&lt;/FONT&gt;=&lt;FONT color="#FF0000"&gt;value_last&lt;/FONT&gt;-&lt;FONT color="#FF0000"&gt;base1&lt;/FONT&gt;;&lt;BR /&gt; &lt;BR /&gt; /*Subset the dataset for the last observation*/&lt;BR /&gt; &lt;FONT color="#0000FF"&gt;if &lt;FONT color="#FF0000"&gt;last&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT color="#0000FF"&gt;then output&lt;/FONT&gt;; &lt;BR /&gt;&lt;FONT color="#0000FF"&gt;run&lt;/FONT&gt;;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000FF"&gt;proc print data&lt;/FONT&gt;=&lt;FONT color="#993366"&gt;want&lt;/FONT&gt; &lt;FONT color="#0000FF"&gt;noobs&lt;/FONT&gt;;&lt;BR /&gt; /*Displaying variables of interest*/ &lt;BR /&gt; &lt;FONT color="#0000FF"&gt;var&lt;/FONT&gt;&lt;FONT color="#FF0000"&gt; t_first t_last t_diff base1 value_last value_diff&lt;/FONT&gt;; &lt;BR /&gt;&lt;FONT color="#0000FF"&gt;run&lt;/FONT&gt;;&lt;/P&gt;</description>
      <pubDate>Wed, 21 Sep 2016 08:16:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/calculate-difference-between-last-and-first-observation-by/m-p/299775#M63272</guid>
      <dc:creator>kenedy_yc</dc:creator>
      <dc:date>2016-09-21T08:16:33Z</dc:date>
    </item>
  </channel>
</rss>

