<?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: Automate case expression in SAS in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Automate-case-expression-in-SAS/m-p/89486#M18988</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Why not just turn your data into a more vertical structure so that YEAR is recorded as the value of variable instead of as part of the name of the variable?&lt;/P&gt;&lt;P&gt;Then you can just add YEAR to your BY or CLASS variable list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can always rotate it back up if you need the wide structure for a report.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 06 Dec 2012 01:18:53 GMT</pubDate>
    <dc:creator>Tom</dc:creator>
    <dc:date>2012-12-06T01:18:53Z</dc:date>
    <item>
      <title>Automate case expression in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Automate-case-expression-in-SAS/m-p/89480#M18982</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here is the code I am trying to automate:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;Proc&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;sql&lt;/STRONG&gt;&lt;/SPAN&gt;;&lt;SPAN class="s2"&gt; &lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;create&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;table&lt;/SPAN&gt; Common_Policy&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;&lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;select&lt;/SPAN&gt; *,&lt;/P&gt;&lt;P class="p1"&gt;&lt;SPAN class="s3"&gt;case&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;when&lt;/SPAN&gt; POL_YYYY =&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;2005&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Then&lt;/SPAN&gt; SUM_of_DIR_WP_AMNT&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Else&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;End&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; DWP05a, &lt;SPAN class="s2"&gt;&lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;case&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;when&lt;/SPAN&gt; POL_YYYY =&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;2006&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Then&lt;/SPAN&gt; SUM_of_DIR_WP_AMNT&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Else&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;End&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; DWP06a, &lt;SPAN class="s2"&gt;&lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;case&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;when&lt;/SPAN&gt; POL_YYYY =&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;2007&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Then&lt;/SPAN&gt; SUM_of_DIR_WP_AMNT&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Else&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;End&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; DWP07a, &lt;SPAN class="s2"&gt;&lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;case&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;when&lt;/SPAN&gt; POL_YYYY =&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;2008&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Then&lt;/SPAN&gt; SUM_of_DIR_WP_AMNT&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Else&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;End&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; DWP08a,&lt;SPAN class="s2"&gt; &lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;case&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;when&lt;/SPAN&gt; POL_YYYY =&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;2009&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Then&lt;/SPAN&gt; SUM_of_DIR_WP_AMNT&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Else&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;End&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; DWP09a, &lt;SPAN class="s2"&gt;&lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;case&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;when&lt;/SPAN&gt; POL_YYYY =&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;2010&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Then&lt;/SPAN&gt; SUM_of_DIR_WP_AMNT&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Else&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;End&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; DWP10a, &lt;SPAN class="s2"&gt;&lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;case&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;when&lt;/SPAN&gt; POL_YYYY =&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;2011&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Then&lt;/SPAN&gt; SUM_of_DIR_WP_AMNT&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Else&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;End&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; DWP11a,&lt;SPAN class="s2"&gt; &lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;case&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;when&lt;/SPAN&gt; POL_YYYY =&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;2012&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Then&lt;/SPAN&gt; SUM_of_DIR_WP_AMNT&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Else&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;End&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; DWP12a,&lt;/P&gt;&lt;P class="p1"&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;SPAN class="s3"&gt;case&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;when&lt;/SPAN&gt; POL_YYYY =&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;2005&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Then&lt;/SPAN&gt; SUM_of_WRIT_EXPOS_AMNT&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Else&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;End&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; EXP05a,&lt;SPAN class="s2"&gt; &lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;case&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;when&lt;/SPAN&gt; POL_YYYY =&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;2006&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Then&lt;/SPAN&gt; SUM_of_WRIT_EXPOS_AMNT&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Else&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;End&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; EXP06a,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="s2"&gt;&lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;case&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;when&lt;/SPAN&gt; POL_YYYY =&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;2007&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Then&lt;/SPAN&gt; SUM_OF_WRIT_EXPOS_AMNT&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Else&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;End&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; EXP07a,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="s2"&gt;&lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;case&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;when&lt;/SPAN&gt; POL_YYYY =&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;2008&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Then&lt;/SPAN&gt; SUM_OF_WRIT_EXPOS_AMNT&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Else&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;End&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; EXP08a,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="s2"&gt;&lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;case&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;when&lt;/SPAN&gt; POL_YYYY =&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;2009&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Then&lt;/SPAN&gt; SUM_OF_WRIT_EXPOS_AMNT&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Else&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;End&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; EXP09a,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="s2"&gt;&lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;case&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;when&lt;/SPAN&gt; POL_YYYY =&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;2010&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Then&lt;/SPAN&gt; SUM_OF_WRIT_EXPOS_AMNT&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Else&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;End&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; EXP10a,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="s2"&gt;&lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;case&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;when&lt;/SPAN&gt; POL_YYYY =&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;2011&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Then&lt;/SPAN&gt; SUM_OF_WRIT_EXPOS_AMNT&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Else&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;End&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; EXP11a,&lt;SPAN class="s2"&gt; &lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;case&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;when&lt;/SPAN&gt; POL_YYYY =&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;2012&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Then&lt;/SPAN&gt; SUM_OF_WRIT_EXPOS_AMNT&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;Else&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;End&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; EXP12a&lt;/P&gt;&lt;P class="p2"&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;SPAN class="s3"&gt;from&lt;/SPAN&gt; Drop_Zeros;&lt;SPAN class="s2"&gt; &lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;quit&lt;/STRONG&gt;&lt;/SPAN&gt;;&lt;/P&gt;&lt;P class="p1"&gt;&lt;/P&gt;&lt;P class="p1"&gt;Here is what I have written:&lt;/P&gt;&lt;P class="p1"&gt;&lt;/P&gt;&lt;P class="p1"&gt;%macro CP(start_py=,end_py=,curr=);&lt;SPAN class="s1"&gt; &lt;BR /&gt; &lt;/SPAN&gt;data Common_Policy;&lt;SPAN class="s1"&gt; &lt;BR /&gt; &lt;/SPAN&gt;set Drop_Zeros;&lt;SPAN class="s1"&gt; &lt;BR /&gt; &lt;/SPAN&gt;%let start = %eval(&amp;amp;start_py - 1);&lt;SPAN class="s1"&gt; &lt;BR /&gt; &lt;/SPAN&gt;%let newC = %eval(&amp;amp;curr - 1);&lt;/P&gt;&lt;P class="p1"&gt;%do %while (&amp;amp;start &amp;lt;= &amp;amp;end_py);&lt;SPAN class="s1"&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if POL_YYYY = &amp;amp;start then %let DWP&amp;amp;del0&amp;amp;newC&amp;amp;dela = SUM_of_DIR_WP_AMNT;&lt;SPAN class="s1"&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;else %let DWP&amp;amp;del0&amp;amp;newC&amp;amp;dela = 0;&lt;/P&gt;&lt;P class="p1"&gt;&lt;SPAN class="s1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if POL_YYYY = &amp;amp;start then %let EXP&amp;amp;del0&amp;amp;newC&amp;amp;dela = SUM_OF_WRIT_EXPOS_AMNT;&lt;SPAN class="s1"&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;else %let EXP&amp;amp;del0&amp;amp;newC&amp;amp;dela = 0;&lt;SPAN class="s1"&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;start = %eval(&amp;amp;start + 1);&lt;SPAN class="s1"&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;newC = %eval(&amp;amp;newC + 1);&lt;SPAN class="s1"&gt; &lt;BR /&gt; &lt;/SPAN&gt;%end;&lt;SPAN class="s1"&gt; &lt;BR /&gt; &lt;/SPAN&gt;run;&lt;SPAN class="s1"&gt; &lt;BR /&gt; &lt;/SPAN&gt;%mend CP;&lt;/P&gt;&lt;P class="p1"&gt;%CP (start_py=&amp;amp;start_policy_year, end_py=&amp;amp;end_policy_year, curr=&amp;amp;current);&lt;/P&gt;&lt;P class="p1"&gt;&lt;SPAN class="s1"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;SPAN class="s1"&gt;Variables &amp;amp;end_policy_year, &amp;amp;start_policy_year , and &amp;amp;current are global variables which would be input by the user at the very top of the code. Here, they would be 2006, 2012, and 06, respectively.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;SPAN class="s1"&gt;I keep running into errors with this code saying that the macro cannot be redefined.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;SPAN class="s1"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;SPAN class="s1"&gt;Any ideas on how I can complete this macro as is or a whole new way of doing it?&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Dec 2012 21:37:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Automate-case-expression-in-SAS/m-p/89480#M18982</guid>
      <dc:creator>Flamdrags5</dc:creator>
      <dc:date>2012-12-03T21:37:07Z</dc:date>
    </item>
    <item>
      <title>Re: Automate case expression in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Automate-case-expression-in-SAS/m-p/89481#M18983</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Start using some put statements to see what your macro is doing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Somethings just looking at your code, &amp;amp;del0 &amp;amp;dela don't seem to be defined at all as macro variables. &lt;/P&gt;&lt;P&gt;Also check how newc is resolving.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You could consider using an array and datastep instead.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How fixed are you with your variable names of DWP01a and EXP01a? &lt;/P&gt;&lt;P&gt;Its easier if the a isn't there but still workable. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Dec 2012 20:36:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Automate-case-expression-in-SAS/m-p/89481#M18983</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2012-12-04T20:36:00Z</dc:date>
    </item>
    <item>
      <title>Re: Automate case expression in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Automate-case-expression-in-SAS/m-p/89482#M18984</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;My bad. I have &amp;amp;del0 = 0 and &amp;amp;dela = a as global variables. I used them (among other similar variables) to create new variable names.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How would I go about doing it with a data step and array?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Dec 2012 21:48:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Automate-case-expression-in-SAS/m-p/89482#M18984</guid>
      <dc:creator>Flamdrags5</dc:creator>
      <dc:date>2012-12-04T21:48:57Z</dc:date>
    </item>
    <item>
      <title>Re: Automate case expression in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Automate-case-expression-in-SAS/m-p/89483#M18985</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I think you're putting your macro at too high a level.&amp;nbsp; Use it to just generate var names in an array statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Presumably the final code should look something like this (for the dwp vars only):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; set have;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; array dwp {2005:2012} dwp05a dwp06a dwp07a dwp08a dwp09a dwp10a dwp11a dwp12a;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; dwp{pol_yyyy}=sum_of_dir_wp_amt;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So the array declaration with lower bound 2005 and upperbound 2012 takes care of the "case when ..." logic.&amp;nbsp; Now the only problem is to generate an array with bounds determined by global macrovars start_policy_year and end_policy_year, and to generate a list of variable names using the last two digits of the year in the middle of the var names, and a fixed prefix (dwp) and fixed suffix (a).&amp;nbsp; So here's a macro:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro expand(pre=,suf=,beg=,end=);&lt;BR /&gt;&amp;nbsp; %do I=&amp;amp;beg %to &amp;amp;end; &amp;amp;pre%substr(&amp;amp;I,3,2)&amp;amp;suf %end;&lt;BR /&gt;%mend;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and here's how I would use it:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; set have;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; array dwp {&amp;amp;start_policy_year:&amp;amp;end_policy_year}&amp;nbsp; %expand(pre=dwp,suf=a,beg=&amp;amp;start_policy_year,end=&amp;amp;end_policy_year);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; array exp {&amp;amp;start_policy_year:&amp;amp;end_policy_year}&amp;nbsp; %expand(pre=exp,suf=a,beg=&amp;amp;start_policy_year,end=&amp;amp;end_policy_year);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; dwp{pol_yyyy}=sum_of_dir_wp_amt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; exp{pol_yyyy}=sum_of_writ_expo_amt;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can easily test for out-of-bounds value of pol_yyyy, as in:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if&amp;nbsp; &amp;amp;start_policy_year &amp;lt;= pol_yyyy &amp;lt;= &amp;amp;end_policy_year then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dwp{ppl_yyyy} = sum_of_dir_wp_amt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exp{pol_yyyy}=sum_of_writ_expo_amt;&lt;BR /&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;BR /&gt;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Dec 2012 22:03:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Automate-case-expression-in-SAS/m-p/89483#M18985</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2012-12-04T22:03:03Z</dc:date>
    </item>
    <item>
      <title>Re: Automate case expression in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Automate-case-expression-in-SAS/m-p/89484#M18986</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here's an example of using a DATA step and arrays.&amp;nbsp; I changed the results slightly, to shorten the code. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is no longer any use of &amp;amp;CURRENT.&amp;nbsp; That should be calculated anyway, if it is always the last two digits of the starting year.&amp;nbsp; The user should not have to enter redundant information.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The variable names are somewhat different, to take advantage of SAS naming conventions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; array DWP {&amp;amp;start_policy_year : &amp;amp;end_policy_year} DWPa_&amp;amp;start_policy_year - DWPa_&amp;amp;end_policy_year;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; array EXP&amp;nbsp; {&amp;amp;start_policy_year : &amp;amp;end_policy_year} EXPa_&amp;amp;start_policy_year - EXPa_&amp;amp;end_policy_year;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do _n_=&amp;amp;start_policy_year to &amp;amp;end_policy_year;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DWP{_n_}=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXP{_n_}=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if (&amp;amp;start_policy_year &amp;lt;= POL_YYYY &amp;lt;= &amp;amp;end_policy_year) then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DWP{POL_YYYY} = SUM_of_DIR_WP_AMNT;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXP{POL_YYYY} = SUM_of_WRIT_EXPOS_AMNT;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you really need the old variable names that can be arranged.&amp;nbsp; But start here and take it a step at a time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good luck.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Dec 2012 22:10:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Automate-case-expression-in-SAS/m-p/89484#M18986</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2012-12-04T22:10:19Z</dc:date>
    </item>
    <item>
      <title>Re: Automate case expression in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Automate-case-expression-in-SAS/m-p/89485#M18987</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks so much!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now how would I automate this next part:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;proc&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;sql&lt;/STRONG&gt;&lt;/SPAN&gt;;&lt;SPAN class="s2"&gt; &lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;create&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;table&lt;/SPAN&gt; one_line&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;&lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;select&lt;/SPAN&gt; Policy_13,&lt;SPAN class="s2"&gt; &lt;BR /&gt; &lt;/SPAN&gt;Pol_MM,&lt;SPAN class="s2"&gt; &lt;BR /&gt; &lt;/SPAN&gt;EXPOSURE_DESC,&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;BR /&gt; &lt;/SPAN&gt;SUM(DWPa_2005)&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; DWP2005,&lt;SPAN class="s2"&gt; &lt;BR /&gt; &lt;/SPAN&gt;SUM(DWPa_2006)&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; DWP2006,&lt;SPAN class="s2"&gt; &lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;...&lt;BR /&gt; &lt;/SPAN&gt;SUM(DWPa_2012)&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; DWP2012,&lt;/P&gt;&lt;P class="p1"&gt;&lt;/P&gt;&lt;P class="p1"&gt;SUM(EXPa_2005)&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; EXP2005,&lt;SPAN class="s2"&gt; &lt;BR /&gt;&lt;/SPAN&gt;SUM(EXPa_2006)&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; EXP2006,&lt;SPAN class="s2"&gt; &lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;...&lt;BR /&gt;&lt;/SPAN&gt;SUM(EXPa_2012)&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;as&lt;/SPAN&gt; EXP2012&lt;/P&gt;&lt;P class="p1"&gt;&lt;SPAN class="s3"&gt;from&lt;/SPAN&gt; Common_Policy&lt;SPAN class="s2"&gt; &lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;group&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;by&lt;/SPAN&gt; Policy_13, Pol_MM, EXPOSURE_DESC;&lt;SPAN class="s2"&gt; &lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;&lt;STRONG&gt;quit&lt;/STRONG&gt;&lt;/SPAN&gt;;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Dec 2012 23:55:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Automate-case-expression-in-SAS/m-p/89485#M18987</guid>
      <dc:creator>Flamdrags5</dc:creator>
      <dc:date>2012-12-05T23:55:23Z</dc:date>
    </item>
    <item>
      <title>Re: Automate case expression in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Automate-case-expression-in-SAS/m-p/89486#M18988</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Why not just turn your data into a more vertical structure so that YEAR is recorded as the value of variable instead of as part of the name of the variable?&lt;/P&gt;&lt;P&gt;Then you can just add YEAR to your BY or CLASS variable list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can always rotate it back up if you need the wide structure for a report.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Dec 2012 01:18:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Automate-case-expression-in-SAS/m-p/89486#M18988</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-12-06T01:18:53Z</dc:date>
    </item>
    <item>
      <title>Re: Automate case expression in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Automate-case-expression-in-SAS/m-p/89487#M18989</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;For the second question, I would switch away from SQL.&amp;nbsp; SQL can be used, but automation would require more macro language because each sum has to be named.&amp;nbsp; Instead, PROC SUMMARY will use less macro language, taking advantage of variable lists:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc summary data=common_policy nway missing;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; class policy_13 Pol_MM EXPOSURE_DESC;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; var DWPa_&amp;amp;start_policy_year - DWPa_&amp;amp;end_policy_year&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXPa_&amp;amp;start_policy_year - EXPa_&amp;amp;end_policy_year;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; output out=one_line (drop=_type_ _freq_)&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; sum=DWP&amp;amp;start_policy_year - DWP&amp;amp;end_policy_year&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; EXP&amp;amp;start_policy_year - EXP&amp;amp;end_policy_year;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tom's suggestion is worth considering mightily.&amp;nbsp; Including YEAR as a separate variable, and normalizing the data, gives you a lot of flexibility.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good luck.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Dec 2012 14:23:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Automate-case-expression-in-SAS/m-p/89487#M18989</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2012-12-06T14:23:14Z</dc:date>
    </item>
    <item>
      <title>Re: Automate case expression in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Automate-case-expression-in-SAS/m-p/89488#M18990</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Perhaps you can cobble something out of this....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It's a Bird, It's a Plane, It's SQL Transpose! &lt;BR /&gt;&lt;A href="http://www2.sas.com/proceedings/forum2008/089-2008.pdf"&gt;http://www2.sas.com/proceedings/forum2008/089-2008.pdf&lt;/A&gt;&lt;BR /&gt;Ever wish you could easily transpose and summarize monthly data using just PROC SQL? Regardless of whether the data is stored in a SAS dataset or other relational databases? Even if scores of variables for dozen of months are involved? This paper tackles the task of data denormalization with a simple macro that uses PROC SQL to take a "vertical" table with multiple rows per subject and transform it into a "horizontal" table containing one row per subject with aggregated monthly values.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Dec 2012 15:35:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Automate-case-expression-in-SAS/m-p/89488#M18990</guid>
      <dc:creator>tc</dc:creator>
      <dc:date>2012-12-06T15:35:44Z</dc:date>
    </item>
  </channel>
</rss>

