<?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: Calculation within a data step in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Calculation-within-a-data-step/m-p/80523#M17342</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Or 2XDOW will do:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data x;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input Product Machine Test;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;0 0 1&lt;/P&gt;&lt;P&gt;0 0 4&lt;/P&gt;&lt;P&gt;0 0 3&lt;/P&gt;&lt;P&gt;0 1 2&lt;/P&gt;&lt;P&gt;0 1 4&lt;/P&gt;&lt;P&gt;1 0 3&lt;/P&gt;&lt;P&gt;1 0 7&lt;/P&gt;&lt;P&gt;1 1 4&lt;/P&gt;&lt;P&gt;1 1 2&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=x;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by Product Machine;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do _n_=1 by 1 until (last.machine);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set x;&lt;/P&gt;&lt;P&gt;by product machine;&lt;/P&gt;&lt;P&gt;_total+test;&lt;/P&gt;&lt;P&gt;if last.machine then _mean=_total/_n_;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do until (last.machine);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set x;&lt;/P&gt;&lt;P&gt;by product machine;&lt;/P&gt;&lt;P&gt;dif=test-_mean;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;call missing (_total);&lt;/P&gt;&lt;P&gt;drop _:;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc print;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Haikuo &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 12 Jun 2012 18:29:05 GMT</pubDate>
    <dc:creator>Haikuo</dc:creator>
    <dc:date>2012-06-12T18:29:05Z</dc:date>
    <item>
      <title>Calculation within a data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculation-within-a-data-step/m-p/80519#M17338</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Good Morning,&amp;nbsp; I am willing to bet this isn't that hard, but with my little experience with SAS, I haven't figured this one out. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a data set with 2 variables being used as classification variables, Product and Machine. For each observation, I have a numeric value for TEST&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want to create for each observation a new variable DIF which is the result of this calculation: DIF= TEST - (Average TEST for all observations for each combination of product and machine) &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Basically I want to calculate the difference between the observation versus the average result for each Class (Product*Machine*) and put that in the DIF variable for each observation. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kim&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2012 13:05:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculation-within-a-data-step/m-p/80519#M17338</guid>
      <dc:creator>Kimberley</dc:creator>
      <dc:date>2012-06-12T13:05:57Z</dc:date>
    </item>
    <item>
      <title>Re: Calculation within a data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculation-within-a-data-step/m-p/80520#M17339</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;do you use proc sql?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;input product $ machine $ value;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;a aa 20&lt;/P&gt;&lt;P&gt;a bb 30&lt;/P&gt;&lt;P&gt;a cc 40&lt;/P&gt;&lt;P&gt;b aa 20&lt;/P&gt;&lt;P&gt;b bb 30&lt;/P&gt;&lt;P&gt;b cc 40&lt;/P&gt;&lt;P&gt;a aa 200&lt;/P&gt;&lt;P&gt;a bb 300&lt;/P&gt;&lt;P&gt;a cc 400&lt;/P&gt;&lt;P&gt;b aa 200&lt;/P&gt;&lt;P&gt;b bb 300&lt;/P&gt;&lt;P&gt;b cc 400&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp; create table want as &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select *,value-mean(value) as dif&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; from have&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; group by product,machine;&lt;/P&gt;&lt;P&gt; quit;&lt;/P&gt;&lt;P&gt; proc print;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; obs&amp;nbsp;&amp;nbsp;&amp;nbsp; product&amp;nbsp;&amp;nbsp;&amp;nbsp; machine&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dif&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; aa&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -90&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -135&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -180&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; aa&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -90&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -135&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -180&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; aa&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 90&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 135&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 180&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; aa&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 90&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 135&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 180&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Linlin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: Linlin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2012 13:32:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculation-within-a-data-step/m-p/80520#M17339</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2012-06-12T13:32:10Z</dc:date>
    </item>
    <item>
      <title>Re: Calculation within a data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculation-within-a-data-step/m-p/80521#M17340</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If you want the difference between TEST and the average TEST of that Class you can make use of 1st scenario.&lt;/P&gt;&lt;P&gt;Second and third ones are average of average group means and overall mean for TEST, respectively.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data x;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input Product Machine Test;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;0 0 1&lt;/P&gt;&lt;P&gt;0 0 4&lt;/P&gt;&lt;P&gt;0 0 3&lt;/P&gt;&lt;P&gt;0 1 2&lt;/P&gt;&lt;P&gt;0 1 4&lt;/P&gt;&lt;P&gt;1 0 3&lt;/P&gt;&lt;P&gt;1 0 7&lt;/P&gt;&lt;P&gt;1 1 4&lt;/P&gt;&lt;P&gt;1 1 2&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=x;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by Product Machine;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Difference between TEST and group mean */&lt;/P&gt;&lt;P&gt;proc summary data=x nway missing;&lt;/P&gt;&lt;P&gt;&amp;nbsp; class Product Machine;&lt;/P&gt;&lt;P&gt;&amp;nbsp; var Test;&lt;/P&gt;&lt;P&gt;&amp;nbsp; output Out=x_group_mean(drop=_:)&lt;/P&gt;&lt;P&gt;&amp;nbsp; mean=Mean;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data want_dif_group_mean;&lt;/P&gt;&lt;P&gt;&amp;nbsp; merge x x_group_mean;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by Product Machine;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DIF = Test - Mean;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Difference between TEST and mean of group means */&lt;/P&gt;&lt;P&gt;proc summary data=x_group_mean nway missing;&lt;/P&gt;&lt;P&gt;&amp;nbsp; var Mean;&lt;/P&gt;&lt;P&gt;&amp;nbsp; output Out=x_mean_of_group_mean(drop=_:)&lt;/P&gt;&lt;P&gt;&amp;nbsp; mean=Mean;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data want_dif_mean_of_group_mean;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _n_ = 1 then set x_mean_of_group_mean;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set x ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DIF = Test - Mean;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Difference between TEST and overall mean */&lt;/P&gt;&lt;P&gt;proc summary data=x nway missing;&lt;/P&gt;&lt;P&gt;&amp;nbsp; var Test;&lt;/P&gt;&lt;P&gt;&amp;nbsp; output Out=x_overall_mean(drop=_:)&lt;/P&gt;&lt;P&gt;&amp;nbsp; mean=Mean;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data want_dif_overall_mean;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _n_ = 1 then set x_overall_mean;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set x ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DIF = Test - Mean;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2012 13:44:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculation-within-a-data-step/m-p/80521#M17340</guid>
      <dc:creator>Alpay</dc:creator>
      <dc:date>2012-06-12T13:44:35Z</dc:date>
    </item>
    <item>
      <title>Re: Calculation within a data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculation-within-a-data-step/m-p/80522#M17341</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have never used PROC SQL - I will need to learn this! I am not quite sure how to code the SQL, so I will spend some time better understanding that procedure. Thank you!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It amazes me how quickly you all coem up with code! Thanks everyone!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kim &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2012 13:47:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculation-within-a-data-step/m-p/80522#M17341</guid>
      <dc:creator>Kimberley</dc:creator>
      <dc:date>2012-06-12T13:47:40Z</dc:date>
    </item>
    <item>
      <title>Re: Calculation within a data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculation-within-a-data-step/m-p/80523#M17342</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Or 2XDOW will do:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data x;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input Product Machine Test;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;0 0 1&lt;/P&gt;&lt;P&gt;0 0 4&lt;/P&gt;&lt;P&gt;0 0 3&lt;/P&gt;&lt;P&gt;0 1 2&lt;/P&gt;&lt;P&gt;0 1 4&lt;/P&gt;&lt;P&gt;1 0 3&lt;/P&gt;&lt;P&gt;1 0 7&lt;/P&gt;&lt;P&gt;1 1 4&lt;/P&gt;&lt;P&gt;1 1 2&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=x;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by Product Machine;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do _n_=1 by 1 until (last.machine);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set x;&lt;/P&gt;&lt;P&gt;by product machine;&lt;/P&gt;&lt;P&gt;_total+test;&lt;/P&gt;&lt;P&gt;if last.machine then _mean=_total/_n_;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do until (last.machine);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set x;&lt;/P&gt;&lt;P&gt;by product machine;&lt;/P&gt;&lt;P&gt;dif=test-_mean;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;call missing (_total);&lt;/P&gt;&lt;P&gt;drop _:;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc print;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Haikuo &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2012 18:29:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculation-within-a-data-step/m-p/80523#M17342</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-06-12T18:29:05Z</dc:date>
    </item>
    <item>
      <title>Re: Calculation within a data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculation-within-a-data-step/m-p/80524#M17343</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi ... using Linlin's data (no sort needed) ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;proc summary data=have nway;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;class product machine;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;var value;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;output out=stats (drop=_: index=(pm=(product machine))) mean=mean;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;run;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;data want (drop=mean);&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;set have;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;set stats key=pm / unique;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;diff = value-mean;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;run;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2012 21:09:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculation-within-a-data-step/m-p/80524#M17343</guid>
      <dc:creator>MikeZdeb</dc:creator>
      <dc:date>2012-06-12T21:09:05Z</dc:date>
    </item>
    <item>
      <title>Re: Calculation within a data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculation-within-a-data-step/m-p/80525#M17344</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;or use hash:&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _n_=1 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if 0 then set stats;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hash h(dataset:'stats');&lt;/P&gt;&lt;P&gt;&amp;nbsp; h.definekey('product','machine');&lt;/P&gt;&lt;P&gt;&amp;nbsp; h.definedata('mean');&lt;/P&gt;&lt;P&gt;&amp;nbsp; h.definedone();&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if h.find()=0 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dif=value-mean; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp; proc print;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Jun 2012 02:54:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculation-within-a-data-step/m-p/80525#M17344</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2012-06-13T02:54:49Z</dc:date>
    </item>
  </channel>
</rss>

