<?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: Differences for continuous columns in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Differences-for-continuous-columns/m-p/801413#M315403</link>
    <description>Thank you very much!</description>
    <pubDate>Thu, 10 Mar 2022 18:16:20 GMT</pubDate>
    <dc:creator>HN2001</dc:creator>
    <dc:date>2022-03-10T18:16:20Z</dc:date>
    <item>
      <title>Differences for continuous columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Differences-for-continuous-columns/m-p/801395#M315393</link>
      <description>&lt;P&gt;I have a dataset that looks like that following.&amp;nbsp; I am trying to find the best way to calculate the increase across days (DIFDay2-Day1, DIFDay3-Day2, DIFDay4-Day3)&amp;nbsp; My data going forward will have more days included so I'm hoping I don't have to list out each day.&amp;nbsp; Would an array be best here?&lt;/P&gt;
&lt;TABLE width="617"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="64"&gt;Group&lt;/TD&gt;
&lt;TD width="64"&gt;Day1&lt;/TD&gt;
&lt;TD width="64"&gt;Day2&lt;/TD&gt;
&lt;TD width="64"&gt;Day3&lt;/TD&gt;
&lt;TD width="64"&gt;Day4&lt;/TD&gt;
&lt;TD width="99"&gt;DIFDay2 - Day1&lt;/TD&gt;
&lt;TD width="99"&gt;DIFDay3 - Day2&lt;/TD&gt;
&lt;TD width="99"&gt;DIFDay4 - Day3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;G1&lt;/TD&gt;
&lt;TD&gt;2639&lt;/TD&gt;
&lt;TD&gt;2639&lt;/TD&gt;
&lt;TD&gt;2645&lt;/TD&gt;
&lt;TD&gt;2671&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;G2&lt;/TD&gt;
&lt;TD&gt;3079&lt;/TD&gt;
&lt;TD&gt;3503&lt;/TD&gt;
&lt;TD&gt;3554&lt;/TD&gt;
&lt;TD&gt;3620&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;G3&lt;/TD&gt;
&lt;TD&gt;285&lt;/TD&gt;
&lt;TD&gt;291&lt;/TD&gt;
&lt;TD&gt;358&lt;/TD&gt;
&lt;TD&gt;379&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;G4&lt;/TD&gt;
&lt;TD&gt;9434&lt;/TD&gt;
&lt;TD&gt;9510&lt;/TD&gt;
&lt;TD&gt;9570&lt;/TD&gt;
&lt;TD&gt;9690&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;G5&lt;/TD&gt;
&lt;TD&gt;13182&lt;/TD&gt;
&lt;TD&gt;13525&lt;/TD&gt;
&lt;TD&gt;13548&lt;/TD&gt;
&lt;TD&gt;13902&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;/TBODY&gt;
&lt;/TABLE&gt;</description>
      <pubDate>Thu, 10 Mar 2022 16:56:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Differences-for-continuous-columns/m-p/801395#M315393</guid>
      <dc:creator>HN2001</dc:creator>
      <dc:date>2022-03-10T16:56:31Z</dc:date>
    </item>
    <item>
      <title>Re: Differences for continuous columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Differences-for-continuous-columns/m-p/801398#M315394</link>
      <description>&lt;P&gt;Here's a good start:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input Group:$2	Day1	Day2	Day3	Day4;
datalines;
G1	2639	2639	2645	2671
G2	3079	3503	3554	3620
G3	285	291	358	379
G4	9434	9510	9570	9690
G5	13182	13525	13548	13902
;

proc sql noprint;
select count(*) into :dim
   from dictionary.columns 
   where libname="WORK" and memname="HAVE"
     and name like "Day%"
;

data want;
  set have;
  array Day[*] Day:;
  array DiffDay[&amp;amp;dim];
  do i=2 to dim(DiffDay);
     DiffDay[i]=Day[i]-Day[i-1];
  end;
  drop i DiffDay1;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Result:&lt;/P&gt;
&lt;DIV class="branch"&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure SQL: Query Results" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="l b header" scope="col"&gt;Group&lt;/TH&gt;
&lt;TH class="r b header" scope="col"&gt;Day1&lt;/TH&gt;
&lt;TH class="r b header" scope="col"&gt;Day2&lt;/TH&gt;
&lt;TH class="r b header" scope="col"&gt;Day3&lt;/TH&gt;
&lt;TH class="r b header" scope="col"&gt;Day4&lt;/TH&gt;
&lt;TH class="r b header" scope="col"&gt;DiffDay2&lt;/TH&gt;
&lt;TH class="r b header" scope="col"&gt;DiffDay3&lt;/TH&gt;
&lt;TH class="r b header" scope="col"&gt;DiffDay4&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;2639&lt;/TD&gt;
&lt;TD class="r data"&gt;2639&lt;/TD&gt;
&lt;TD class="r data"&gt;2645&lt;/TD&gt;
&lt;TD class="r data"&gt;2671&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;TD class="r data"&gt;6&lt;/TD&gt;
&lt;TD class="r data"&gt;26&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;2&lt;/TD&gt;
&lt;TD class="r data"&gt;3079&lt;/TD&gt;
&lt;TD class="r data"&gt;3503&lt;/TD&gt;
&lt;TD class="r data"&gt;3554&lt;/TD&gt;
&lt;TD class="r data"&gt;3620&lt;/TD&gt;
&lt;TD class="r data"&gt;424&lt;/TD&gt;
&lt;TD class="r data"&gt;51&lt;/TD&gt;
&lt;TD class="r data"&gt;66&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;3&lt;/TD&gt;
&lt;TD class="r data"&gt;285&lt;/TD&gt;
&lt;TD class="r data"&gt;291&lt;/TD&gt;
&lt;TD class="r data"&gt;358&lt;/TD&gt;
&lt;TD class="r data"&gt;379&lt;/TD&gt;
&lt;TD class="r data"&gt;6&lt;/TD&gt;
&lt;TD class="r data"&gt;67&lt;/TD&gt;
&lt;TD class="r data"&gt;21&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;4&lt;/TD&gt;
&lt;TD class="r data"&gt;9434&lt;/TD&gt;
&lt;TD class="r data"&gt;9510&lt;/TD&gt;
&lt;TD class="r data"&gt;9570&lt;/TD&gt;
&lt;TD class="r data"&gt;9690&lt;/TD&gt;
&lt;TD class="r data"&gt;76&lt;/TD&gt;
&lt;TD class="r data"&gt;60&lt;/TD&gt;
&lt;TD class="r data"&gt;120&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;5&lt;/TD&gt;
&lt;TD class="r data"&gt;13182&lt;/TD&gt;
&lt;TD class="r data"&gt;13525&lt;/TD&gt;
&lt;TD class="r data"&gt;13548&lt;/TD&gt;
&lt;TD class="r data"&gt;13902&lt;/TD&gt;
&lt;TD class="r data"&gt;343&lt;/TD&gt;
&lt;TD class="r data"&gt;23&lt;/TD&gt;
&lt;TD class="r data"&gt;354&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 10 Mar 2022 17:08:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Differences-for-continuous-columns/m-p/801398#M315394</guid>
      <dc:creator>SASJedi</dc:creator>
      <dc:date>2022-03-10T17:08:24Z</dc:date>
    </item>
    <item>
      <title>Re: Differences for continuous columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Differences-for-continuous-columns/m-p/801413#M315403</link>
      <description>Thank you very much!</description>
      <pubDate>Thu, 10 Mar 2022 18:16:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Differences-for-continuous-columns/m-p/801413#M315403</guid>
      <dc:creator>HN2001</dc:creator>
      <dc:date>2022-03-10T18:16:20Z</dc:date>
    </item>
    <item>
      <title>Re: Differences for continuous columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Differences-for-continuous-columns/m-p/801521#M315441</link>
      <description>&lt;P&gt;I'm on a PROC SCORE kick.&amp;nbsp; You need a custom SCORE data set like this.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture.PNG" style="width: 305px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/69375i23379C400B3B5A0F/image-size/large?v=v2&amp;amp;px=999" role="button" title="Capture.PNG" alt="Capture.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Which you can generate with iterative DO.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
   infile cards expandtabs;
   input Group:$2. Day1-Day4;
   datalines;
G1	2639	2639	2645	2671
G2	3079	3503	3554	3620
G3	285	291	358	379
G4	9434	9510	9570	9690
G5	13182	13525	13548	13902
;;;;
   run;
data score;
   if 0 then set have(keep=Day:);
   array v[*] _numeric_;
   retain _TYPE_ 'SCORE';
   length _name_ $32;
   do i = 1 to dim(v);
      call missing(of v[*]);
      v[i]=-1; 
      do j = i+1 to dim(v);
         _name_ = catx('_',vname(v[i]),vname(v[j]));
         v[j] = 1;
         output;
         v[j] = .;
         end;
      end;
   drop i j;
   stop;
   run;
proc print;
   run;
proc score data=have score=score out=diffs;
   id group day:;
   var day:;
   run;
proc print;
   run;


&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;And SCORE using PROC SCORE.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture.PNG" style="width: 647px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/69376i62687B648B841867/image-size/large?v=v2&amp;amp;px=999" role="button" title="Capture.PNG" alt="Capture.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 10 Mar 2022 21:40:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Differences-for-continuous-columns/m-p/801521#M315441</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2022-03-10T21:40:46Z</dc:date>
    </item>
  </channel>
</rss>

