<?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: Creating categoriccal variable from continuous one in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Creating-categoriccal-variable-from-continuous-one/m-p/542249#M149818</link>
    <description>5-9 does  not mean 5 through 9.  It means 5 minus 9.  Here is a way to check a range of values:&lt;BR /&gt;&lt;BR /&gt;if (5 &amp;lt;= ervisits &amp;lt;= 9) then visitcat = 1;</description>
    <pubDate>Tue, 12 Mar 2019 00:05:34 GMT</pubDate>
    <dc:creator>Astounding</dc:creator>
    <dc:date>2019-03-12T00:05:34Z</dc:date>
    <item>
      <title>Creating categoriccal variable from continuous one</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-categoriccal-variable-from-continuous-one/m-p/542243#M149815</link>
      <description>&lt;P&gt;Hello!&lt;/P&gt;&lt;P&gt;I'm trying to create some categorical and binary variables from a couple of continuous ones in my data set... Binary ones turn out fine, and one of the categorical ones did as well, but the last two did not... and I have no idea why. I have attached my code and log.... PLEASE HELP!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;CODE:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;DATA recodes;&lt;BR /&gt;SET project;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;IF drugs EQ 0 THEN drugsBIN = 0;&lt;BR /&gt;IF drugs NE 0 THEN drugsBIN = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;IF complications EQ 0 THEN compBIN = 0;&lt;BR /&gt;IF complications NE 0 THEN compBIN = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;IF ervisits EQ 0-4 THEN visitsCAT = 0;&lt;BR /&gt;IF ervisits EQ 5-9 THEN visitsCAT = 1;&lt;BR /&gt;IF ervisits EQ 10-14 THEN visitsCAT = 2;&lt;BR /&gt;IF ervisits EQ 15-19 THEN visitsCAT = 3;&lt;BR /&gt;IF ervisits GE 20 THEN visitsCAT = 4;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;IF interventions EQ 0-9 THEN interCAT = 0;&lt;BR /&gt;IF interventions EQ 10-19 THEN interCAT = 1;&lt;BR /&gt;IF interventions EQ 20-29 THEN interCAT = 2;&lt;BR /&gt;IF interventions EQ 30-39 THEN interCAT = 3;&lt;BR /&gt;IF interventions EQ 40-49 THEN interCAT = 4;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;IF comorbidities EQ 0-9 THEN comorbCAT = 0;&lt;BR /&gt;IF comorbidities EQ 10-19 THEN comorbCAT = 1;&lt;BR /&gt;IF comorbidities EQ 20-29 THEN comorbCAT = 2;&lt;BR /&gt;IF comorbidities EQ 30-39 THEN comorbCAT = 3;&lt;BR /&gt;IF comorbidities EQ 40-49 THEN comorbCAT = 4;&lt;BR /&gt;IF comorbidities EQ 50-59 THEN comorbCAT = 5;&lt;BR /&gt;IF comorbidities EQ 60-69 THEN comorbCAT = 6;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;PROC UNIVARIATE DATA=recodes;&lt;BR /&gt;VAR drugsBIN compBIN visitsCAT interCAT comorbCAT;&lt;BR /&gt;HISTOGRAM drugsBIN compBIN visitsCAT interCAT comorbCAT;&lt;BR /&gt;RUN;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;LOG:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;52 DATA recodes;&lt;BR /&gt;53 SET project;&lt;BR /&gt;54&lt;BR /&gt;55 IF drugs EQ 0 THEN drugsBIN = 0;&lt;BR /&gt;56 IF drugs NE 0 THEN drugsBIN = 1;&lt;BR /&gt;57&lt;BR /&gt;58 IF complications EQ 0 THEN compBIN = 0;&lt;BR /&gt;59 IF complications NE 0 THEN compBIN = 1;&lt;BR /&gt;60&lt;BR /&gt;61 IF ervisits EQ 0-4 THEN visitsCAT = 0;&lt;BR /&gt;62 IF ervisits EQ 5-9 THEN visitsCAT = 1;&lt;BR /&gt;63 IF ervisits EQ 10-14 THEN visitsCAT = 2;&lt;BR /&gt;64 IF ervisits EQ 15-19 THEN visitsCAT = 3;&lt;BR /&gt;65 IF ervisits GE 20 THEN visitsCAT = 4;&lt;BR /&gt;66&lt;BR /&gt;67 IF interventions EQ 0-9 THEN interCAT = 0;&lt;BR /&gt;68 IF interventions EQ 10-19 THEN interCAT = 1;&lt;BR /&gt;69 IF interventions EQ 20-29 THEN interCAT = 2;&lt;BR /&gt;70 IF interventions EQ 30-39 THEN interCAT = 3;&lt;BR /&gt;71 IF interventions EQ 40-49 THEN interCAT = 4;&lt;BR /&gt;72&lt;BR /&gt;73 IF comorbidities EQ 0-9 THEN comorbCAT = 0;&lt;BR /&gt;74 IF comorbidities EQ 10-19 THEN comorbCAT = 1;&lt;BR /&gt;75 IF comorbidities EQ 20-29 THEN comorbCAT = 2;&lt;BR /&gt;76 IF comorbidities EQ 30-39 THEN comorbCAT = 3;&lt;BR /&gt;77 IF comorbidities EQ 40-49 THEN comorbCAT = 4;&lt;BR /&gt;78 IF comorbidities EQ 50-59 THEN comorbCAT = 5;&lt;BR /&gt;79 IF comorbidities EQ 60-69 THEN comorbCAT = 6;&lt;BR /&gt;80&lt;BR /&gt;81 RUN;&lt;/P&gt;&lt;P&gt;NOTE: There were 788 observations read from the data set WORK.PROJECT.&lt;BR /&gt;NOTE: The data set WORK.RECODES has 788 observations and 15 variables.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;real time 0.05 seconds&lt;BR /&gt;cpu time 0.06 seconds&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;82 PROC UNIVARIATE DATA=recodes;&lt;BR /&gt;NOTE: Writing HTML Body file: sashtml.htm&lt;BR /&gt;83 VAR drugsBIN compBIN visitsCAT interCAT comorbCAT;&lt;BR /&gt;84 HISTOGRAM drugsBIN compBIN visitsCAT interCAT comorbCAT;&lt;BR /&gt;85 RUN;&lt;/P&gt;&lt;P&gt;WARNING: Insufficient number of nonmissing observations to create a histogram for interCAT.&lt;BR /&gt;WARNING: Insufficient number of nonmissing observations to create a histogram for comorbCAT.&lt;BR /&gt;NOTE: PROCEDURE UNIVARIATE used (Total process time):&lt;BR /&gt;real time 2.49 seconds&lt;BR /&gt;cpu time 1.12 seconds&lt;/P&gt;</description>
      <pubDate>Mon, 11 Mar 2019 22:45:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-categoriccal-variable-from-continuous-one/m-p/542243#M149815</guid>
      <dc:creator>mblack-732</dc:creator>
      <dc:date>2019-03-11T22:45:03Z</dc:date>
    </item>
    <item>
      <title>Re: Creating categoriccal variable from continuous one</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-categoriccal-variable-from-continuous-one/m-p/542249#M149818</link>
      <description>5-9 does  not mean 5 through 9.  It means 5 minus 9.  Here is a way to check a range of values:&lt;BR /&gt;&lt;BR /&gt;if (5 &amp;lt;= ervisits &amp;lt;= 9) then visitcat = 1;</description>
      <pubDate>Tue, 12 Mar 2019 00:05:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-categoriccal-variable-from-continuous-one/m-p/542249#M149818</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2019-03-12T00:05:34Z</dc:date>
    </item>
    <item>
      <title>Re: Creating categoriccal variable from continuous one</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-categoriccal-variable-from-continuous-one/m-p/542283#M149829</link>
      <description>&lt;P&gt;Using formats instead of if-statements is recommended.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here is an example for visitCat:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc format;
   value visitCategory
      0 - 4 = '0'
      5 - 9 = '1'
      10 - 14 = '2'
      15 - 19 = '3'
      20-HIGH = '4'
   ;
run;

data fmttest;
   do i = 1 to 20;
      ervisits = rand('integer', 0, 30);
      visitCat = put(ervisits, visitCategory.);
      output;
   end;

   drop i;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;I changed the type of visitCat to char. In your data step, replace &lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;IF ervisits EQ 0-4 THEN visitsCAT = 0;
IF ervisits EQ 5-9 THEN visitsCAT = 1;
IF ervisits EQ 10-14 THEN visitsCAT = 2;
IF ervisits EQ 15-19 THEN visitsCAT = 3;
IF ervisits GE 20 THEN visitsCAT = 4;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;with&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;visitCat = put(ervisits, visitCategory.);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 12 Mar 2019 07:38:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-categoriccal-variable-from-continuous-one/m-p/542283#M149829</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2019-03-12T07:38:58Z</dc:date>
    </item>
    <item>
      <title>Re: Creating categoriccal variable from continuous one</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-categoriccal-variable-from-continuous-one/m-p/542473#M149893</link>
      <description>&lt;P&gt;And for many purposes you don't even need to add the variable. Most of the SAS analysis procedures will honor the groups created by a format. Example:&lt;/P&gt;
&lt;PRE&gt;proc freq data=fmttest;
   tables ervisits;
   format ervisits visitcategory.;
run;&lt;/PRE&gt;
&lt;P&gt;or graphing procedures&lt;/P&gt;
&lt;PRE&gt;proc sgplot data=fmttest;
   vbar ervisits / stat=freq;
   format ervisits visitcategory.;
run;
&lt;/PRE&gt;</description>
      <pubDate>Tue, 12 Mar 2019 16:01:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-categoriccal-variable-from-continuous-one/m-p/542473#M149893</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2019-03-12T16:01:41Z</dc:date>
    </item>
  </channel>
</rss>

