<?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: use proc sql to calculate some variables in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/use-proc-sql-to-calculate-some-variables/m-p/136824#M36891</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Can you post some sample data? And output preferably...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 08 Nov 2013 22:33:19 GMT</pubDate>
    <dc:creator>Reeza</dc:creator>
    <dc:date>2013-11-08T22:33:19Z</dc:date>
    <item>
      <title>use proc sql to calculate some variables</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/use-proc-sql-to-calculate-some-variables/m-p/136823#M36890</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have a data with firmid(id) and returns(ret). I want for each id calculate the mean of the top 5% returns, the mean of the left 95% returns, and take the difference between them. I created a new variable rank, which indicates whether the ret is 5%, 10%, 15%, etc. and mark it as 1, 2, ...20 (20 groups). how can I use a proc sql to simply calculate this? I want to write something like&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; create table want as&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select*, (mean(ret) if rank=1) - (mean(ret) if rank&amp;gt;1) as diff&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from have&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; group by id;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please help me with this.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Nov 2013 21:28:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/use-proc-sql-to-calculate-some-variables/m-p/136823#M36890</guid>
      <dc:creator>SeanZ</dc:creator>
      <dc:date>2013-11-08T21:28:17Z</dc:date>
    </item>
    <item>
      <title>Re: use proc sql to calculate some variables</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/use-proc-sql-to-calculate-some-variables/m-p/136824#M36891</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Can you post some sample data? And output preferably...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Nov 2013 22:33:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/use-proc-sql-to-calculate-some-variables/m-p/136824#M36891</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2013-11-08T22:33:19Z</dc:date>
    </item>
    <item>
      <title>Re: use proc sql to calculate some variables</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/use-proc-sql-to-calculate-some-variables/m-p/136825#M36892</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;sure. Some data like below.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rank&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.05&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want the mean(ret) if rank=1 is (0.1+0.05)/2=.0075, mean(ret) if rank&amp;gt;1 is (0.2+0.8+1)/3=0.67, so the diff=0.0075-0.67.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Nov 2013 22:50:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/use-proc-sql-to-calculate-some-variables/m-p/136825#M36892</guid>
      <dc:creator>SeanZ</dc:creator>
      <dc:date>2013-11-08T22:50:41Z</dc:date>
    </item>
    <item>
      <title>Re: use proc sql to calculate some variables</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/use-proc-sql-to-calculate-some-variables/m-p/136826#M36893</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The corresponding syntax in SQL for IF is CASE:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; create table want as&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select id, mean(case rank when 1 then ret else . end) - mean(case when rank&amp;gt;1 then ret else . end) as diff&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from have&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; group by id;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 09 Nov 2013 01:38:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/use-proc-sql-to-calculate-some-variables/m-p/136826#M36893</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2013-11-09T01:38:30Z</dc:date>
    </item>
  </channel>
</rss>

