<?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 Data Manipulation-calculating lagged standard deviations in SAS Data Management</title>
    <link>https://communities.sas.com/t5/SAS-Data-Management/Data-Manipulation-calculating-lagged-standard-deviations/m-p/235146#M5985</link>
    <description>&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have the following variables in columns B through E. I want to create variables in columns F and G.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Basically, I want to look at the standard deviation of past prices and returns for each id without including the current price and return.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is there a way to do this? Thanks!!!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="21"&gt;A&lt;/TD&gt;
&lt;TD width="77"&gt;B&lt;/TD&gt;
&lt;TD width="35"&gt;C&lt;/TD&gt;
&lt;TD width="38"&gt;D&lt;/TD&gt;
&lt;TD width="46"&gt;E&lt;/TD&gt;
&lt;TD width="62"&gt;F&lt;/TD&gt;
&lt;TD width="70"&gt;G&lt;/TD&gt;
&lt;TD width="261"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="247"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;id&lt;/TD&gt;
&lt;TD&gt;date&lt;/TD&gt;
&lt;TD&gt;price&lt;/TD&gt;
&lt;TD&gt;return&lt;/TD&gt;
&lt;TD&gt;sd(price)&lt;/TD&gt;
&lt;TD&gt;sd(return)&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;3&lt;/TD&gt;
&lt;TD&gt;1a&lt;/TD&gt;
&lt;TD&gt;2014&lt;/TD&gt;
&lt;TD&gt;101&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;1.25&lt;/TD&gt;
&lt;TD&gt;1.57&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.25= standard deviation of (D4: D8)&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.57= standard deviation of (E4: E8)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;1a&lt;/TD&gt;
&lt;TD&gt;2013&lt;/TD&gt;
&lt;TD&gt;102&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;1.22&lt;/TD&gt;
&lt;TD&gt;1.75&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.22= standard deviation of (D5: D8)&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.75= standard deviation of (E5: E8)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;1a&lt;/TD&gt;
&lt;TD&gt;2012&lt;/TD&gt;
&lt;TD&gt;99.5&lt;/TD&gt;
&lt;TD&gt;5.5&lt;/TD&gt;
&lt;TD&gt;1.26&lt;/TD&gt;
&lt;TD&gt;2.08&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.26= standard deviation of (D6: D8)&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;2.08= standard deviation of (E6: E8)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;1a&lt;/TD&gt;
&lt;TD&gt;2011&lt;/TD&gt;
&lt;TD&gt;101&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;1.77&lt;/TD&gt;
&lt;TD&gt;2.12&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.77= standard deviation of (D7: D8)&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;2.12= standard deviation of (E7: E8)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;TD&gt;1a&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;TD&gt;102&lt;/TD&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;TD&gt;-&lt;/TD&gt;
&lt;TD&gt;-&lt;/TD&gt;
&lt;TD colspan="2"&gt;missing since standard deviation cannot be calculated with one obs&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;8&lt;/TD&gt;
&lt;TD&gt;1a&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;99.5&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;-&lt;/TD&gt;
&lt;TD&gt;-&lt;/TD&gt;
&lt;TD colspan="2"&gt;missing since standard deviation cannot be calculated with zero obs&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;9&lt;/TD&gt;
&lt;TD&gt;1b&lt;/TD&gt;
&lt;TD&gt;2014&lt;/TD&gt;
&lt;TD&gt;101&lt;/TD&gt;
&lt;TD&gt;5.5&lt;/TD&gt;
&lt;TD&gt;1.25&lt;/TD&gt;
&lt;TD&gt;1.52&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.25= standard deviation of (D10: D14)&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.57= standard deviation of (E4: E14)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;10&lt;/TD&gt;
&lt;TD&gt;1b&lt;/TD&gt;
&lt;TD&gt;2013&lt;/TD&gt;
&lt;TD&gt;102&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;1.22&lt;/TD&gt;
&lt;TD&gt;1.41&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.22= standard deviation of (D11: D14)&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.75= standard deviation of (E11: E14)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;11&lt;/TD&gt;
&lt;TD&gt;1b&lt;/TD&gt;
&lt;TD&gt;2012&lt;/TD&gt;
&lt;TD&gt;99.5&lt;/TD&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;TD&gt;1.26&lt;/TD&gt;
&lt;TD&gt;0.58&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.26= standard deviation of (D12: D14)&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;2.08= standard deviation of (E12: E14)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;12&lt;/TD&gt;
&lt;TD&gt;1b&lt;/TD&gt;
&lt;TD&gt;2011&lt;/TD&gt;
&lt;TD&gt;101&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;1.77&lt;/TD&gt;
&lt;TD&gt;0.71&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.77= standard deviation of (D13:D14)&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;2.12= standard deviation of (E13: E14)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;13&lt;/TD&gt;
&lt;TD&gt;1b&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;TD&gt;102&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;-&lt;/TD&gt;
&lt;TD&gt;-&lt;/TD&gt;
&lt;TD colspan="2"&gt;missing since standard deviation cannot be calculated with one obs&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;14&lt;/TD&gt;
&lt;TD&gt;1b&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;99.5&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;-&lt;/TD&gt;
&lt;TD&gt;-&lt;/TD&gt;
&lt;TD colspan="2"&gt;missing since standard deviation cannot be calculated with zero obs&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;</description>
    <pubDate>Wed, 18 Nov 2015 14:55:48 GMT</pubDate>
    <dc:creator>katie80</dc:creator>
    <dc:date>2015-11-18T14:55:48Z</dc:date>
    <item>
      <title>Data Manipulation-calculating lagged standard deviations</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Data-Manipulation-calculating-lagged-standard-deviations/m-p/235146#M5985</link>
      <description>&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have the following variables in columns B through E. I want to create variables in columns F and G.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Basically, I want to look at the standard deviation of past prices and returns for each id without including the current price and return.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is there a way to do this? Thanks!!!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="21"&gt;A&lt;/TD&gt;
&lt;TD width="77"&gt;B&lt;/TD&gt;
&lt;TD width="35"&gt;C&lt;/TD&gt;
&lt;TD width="38"&gt;D&lt;/TD&gt;
&lt;TD width="46"&gt;E&lt;/TD&gt;
&lt;TD width="62"&gt;F&lt;/TD&gt;
&lt;TD width="70"&gt;G&lt;/TD&gt;
&lt;TD width="261"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="247"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;id&lt;/TD&gt;
&lt;TD&gt;date&lt;/TD&gt;
&lt;TD&gt;price&lt;/TD&gt;
&lt;TD&gt;return&lt;/TD&gt;
&lt;TD&gt;sd(price)&lt;/TD&gt;
&lt;TD&gt;sd(return)&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;3&lt;/TD&gt;
&lt;TD&gt;1a&lt;/TD&gt;
&lt;TD&gt;2014&lt;/TD&gt;
&lt;TD&gt;101&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;1.25&lt;/TD&gt;
&lt;TD&gt;1.57&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.25= standard deviation of (D4: D8)&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.57= standard deviation of (E4: E8)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;1a&lt;/TD&gt;
&lt;TD&gt;2013&lt;/TD&gt;
&lt;TD&gt;102&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;1.22&lt;/TD&gt;
&lt;TD&gt;1.75&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.22= standard deviation of (D5: D8)&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.75= standard deviation of (E5: E8)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;1a&lt;/TD&gt;
&lt;TD&gt;2012&lt;/TD&gt;
&lt;TD&gt;99.5&lt;/TD&gt;
&lt;TD&gt;5.5&lt;/TD&gt;
&lt;TD&gt;1.26&lt;/TD&gt;
&lt;TD&gt;2.08&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.26= standard deviation of (D6: D8)&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;2.08= standard deviation of (E6: E8)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;1a&lt;/TD&gt;
&lt;TD&gt;2011&lt;/TD&gt;
&lt;TD&gt;101&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;1.77&lt;/TD&gt;
&lt;TD&gt;2.12&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.77= standard deviation of (D7: D8)&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;2.12= standard deviation of (E7: E8)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;TD&gt;1a&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;TD&gt;102&lt;/TD&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;TD&gt;-&lt;/TD&gt;
&lt;TD&gt;-&lt;/TD&gt;
&lt;TD colspan="2"&gt;missing since standard deviation cannot be calculated with one obs&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;8&lt;/TD&gt;
&lt;TD&gt;1a&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;99.5&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;-&lt;/TD&gt;
&lt;TD&gt;-&lt;/TD&gt;
&lt;TD colspan="2"&gt;missing since standard deviation cannot be calculated with zero obs&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;9&lt;/TD&gt;
&lt;TD&gt;1b&lt;/TD&gt;
&lt;TD&gt;2014&lt;/TD&gt;
&lt;TD&gt;101&lt;/TD&gt;
&lt;TD&gt;5.5&lt;/TD&gt;
&lt;TD&gt;1.25&lt;/TD&gt;
&lt;TD&gt;1.52&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.25= standard deviation of (D10: D14)&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.57= standard deviation of (E4: E14)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;10&lt;/TD&gt;
&lt;TD&gt;1b&lt;/TD&gt;
&lt;TD&gt;2013&lt;/TD&gt;
&lt;TD&gt;102&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;1.22&lt;/TD&gt;
&lt;TD&gt;1.41&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.22= standard deviation of (D11: D14)&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.75= standard deviation of (E11: E14)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;11&lt;/TD&gt;
&lt;TD&gt;1b&lt;/TD&gt;
&lt;TD&gt;2012&lt;/TD&gt;
&lt;TD&gt;99.5&lt;/TD&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;TD&gt;1.26&lt;/TD&gt;
&lt;TD&gt;0.58&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.26= standard deviation of (D12: D14)&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;2.08= standard deviation of (E12: E14)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;12&lt;/TD&gt;
&lt;TD&gt;1b&lt;/TD&gt;
&lt;TD&gt;2011&lt;/TD&gt;
&lt;TD&gt;101&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;1.77&lt;/TD&gt;
&lt;TD&gt;0.71&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;1.77= standard deviation of (D13:D14)&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;2.12= standard deviation of (E13: E14)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;13&lt;/TD&gt;
&lt;TD&gt;1b&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;TD&gt;102&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;-&lt;/TD&gt;
&lt;TD&gt;-&lt;/TD&gt;
&lt;TD colspan="2"&gt;missing since standard deviation cannot be calculated with one obs&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;14&lt;/TD&gt;
&lt;TD&gt;1b&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;99.5&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;-&lt;/TD&gt;
&lt;TD&gt;-&lt;/TD&gt;
&lt;TD colspan="2"&gt;missing since standard deviation cannot be calculated with zero obs&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;</description>
      <pubDate>Wed, 18 Nov 2015 14:55:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Data-Manipulation-calculating-lagged-standard-deviations/m-p/235146#M5985</guid>
      <dc:creator>katie80</dc:creator>
      <dc:date>2015-11-18T14:55:48Z</dc:date>
    </item>
    <item>
      <title>Re: Data Manipulation-calculating lagged standard deviations</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Data-Manipulation-calculating-lagged-standard-deviations/m-p/235154#M5990</link>
      <description>&lt;P&gt;Do you have SAS/ETS? If so, look into Proc EXPAND.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Otherwise here's an example of calculating min/max with a temporary array that could be expanded for your situation.&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/*
How to calculate a moving min/max with a window of 4.
Resets by group ID
https://communities.sas.com/message/244232
Courtesy of PGStats
*/

data want;
array p{0:3} _temporary_;
set have; by object;
if first.object then call missing(of p{*});
p{mod(_n_,4)} = price;
lowest = min(of p{*});
highest = max(of p{*});
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 17 Nov 2015 23:08:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Data-Manipulation-calculating-lagged-standard-deviations/m-p/235154#M5990</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2015-11-17T23:08:45Z</dc:date>
    </item>
  </channel>
</rss>

