<?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: Cutting and keeping characters from variables/ transforming data to months in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Cutting-and-keeping-characters-from-variables-transforming-data/m-p/330996#M62660</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for the response....I was finally able to try your suggeste code&amp;nbsp;today...so for the splitting of the age group, the "t" from the word "to" still remains in agegroup1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also, I get the following error in the conversion code:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;NOTE 49-169: The meaning of an identifier after a quoted string might change in a future SAS&lt;BR /&gt;release. Inserting white space between a quoted string and the succeeding&lt;BR /&gt;identifier is recommended.&lt;/P&gt;&lt;P&gt;ERROR 22-322: Syntax error, expecting one of the following: a quoted string,&lt;BR /&gt;a numeric constant, a datetime constant, a missing value, iterator, (, ), ','.&lt;/P&gt;&lt;P&gt;ERROR 76-322: Syntax error, statement will be ignored.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;at the end of these lines:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;if index(agegroup1,'year') &amp;gt; 0 then from = input(compress(agegroup1,,'A'),best.)/12;&amp;nbsp;&lt;/P&gt;&lt;P&gt;else if index(agegroup2,'year') &amp;gt; 0 then upto= input(compress(agegroup2,,'A'), best.)/12;&lt;BR /&gt;else if index(agegroup2,'hour') &amp;gt; 0 then upto = input(compress(agegroup2,,'A'), best.)/(30*24);&lt;/P&gt;</description>
    <pubDate>Wed, 08 Feb 2017 21:32:49 GMT</pubDate>
    <dc:creator>starz4ever2007</dc:creator>
    <dc:date>2017-02-08T21:32:49Z</dc:date>
    <item>
      <title>Cutting and keeping characters from variables/ transforming data to months</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Cutting-and-keeping-characters-from-variables-transforming-data/m-p/330301#M62600</link>
      <description>&lt;P&gt;Hi I am trying to separate the following variable:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;agegroup&lt;/P&gt;&lt;P&gt;up to 59 days&lt;/P&gt;&lt;P&gt;2 months to 17 years&lt;/P&gt;&lt;P&gt;4 years to 10 years&lt;/P&gt;&lt;P&gt;up to 12 hours&lt;/P&gt;&lt;P&gt;7 years to&amp;nbsp;8 years&lt;/P&gt;&lt;P&gt;10 years and older&lt;/P&gt;&lt;P&gt;all ages&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;TO&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;agegroup1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; agegroup2&lt;/P&gt;&lt;P&gt;up&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 59 days&lt;/P&gt;&lt;P&gt;2 months&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 17 years&lt;/P&gt;&lt;P&gt;4 years&amp;nbsp;&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 years&lt;/P&gt;&lt;P&gt;up&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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 hours&lt;/P&gt;&lt;P&gt;7 years&amp;nbsp;&amp;nbsp;&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 years&lt;/P&gt;&lt;P&gt;10 years&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; older&lt;/P&gt;&lt;P&gt;&amp;nbsp;all&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ages&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;THEN, i would like all values to be converted into months (and if in the variables&amp;nbsp;"up", then = 0, and if "older", then&amp;nbsp;= 1200, and if "all", then=0, and if "ages", then = 1200):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;agegroup1_a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; agegroup2_a&lt;/P&gt;&lt;P&gt;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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.94&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 204&lt;/P&gt;&lt;P&gt;48&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 120&lt;/P&gt;&lt;P&gt;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.02&lt;/P&gt;&lt;P&gt;84&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 96&lt;/P&gt;&lt;P&gt;120&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 06 Feb 2017 20:22:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Cutting-and-keeping-characters-from-variables-transforming-data/m-p/330301#M62600</guid>
      <dc:creator>starz4ever2007</dc:creator>
      <dc:date>2017-02-06T20:22:30Z</dc:date>
    </item>
    <item>
      <title>Re: Cutting and keeping characters from variables/ transforming data to months</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Cutting-and-keeping-characters-from-variables-transforming-data/m-p/330322#M62601</link>
      <description>&lt;P&gt;Spliting agegroup:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data temp;
 set have;
      ix = index(agegroup,'to');
     agegroup1 = substr(agegroup,1,ix);
     agegroup2 = substr(agegroup,ix+3);&lt;BR /&gt;     drop ix;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Coversion:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
&amp;nbsp;set temp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;length from to 8;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;keep from upto;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; if &amp;nbsp;strip(agegroup1) in ('up' 'all) &amp;nbsp;then from=0; else
&amp;nbsp; &amp;nbsp; &amp;nbsp; if index(agegroup1,'month') &amp;gt; 0 then from = input(compress(agegroup1,,'A'),best.); else
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;if index(agegroup1,'year') &amp;gt; 0 then from =&amp;nbsp;&amp;nbsp;input(compress(agegroup1,,'A'), best.)/12;&amp;nbsp;

&amp;nbsp; &amp;nbsp; &amp;nbsp; if index(agegroup2,'days') &amp;gt; 0 then
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;upto = input(compress(agegroup2,,'A'), best.)/30;&amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; else&amp;nbsp;&amp;nbsp;if index(agegroup2,'year') &amp;gt; 0 then upto= input(compress(agegroup2,,'A'), best.)/12;&amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; else&amp;nbsp;&amp;nbsp;if index(agegroup2,'hour') &amp;gt; 0 then upto = input(compress(agegroup2,,'A'), best.)/(30*24);&amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; else if strip(agegroup2) in ('older' 'ages') then upto=1200;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;I haven't tested it but it should work.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 06 Feb 2017 21:37:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Cutting-and-keeping-characters-from-variables-transforming-data/m-p/330322#M62601</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2017-02-06T21:37:27Z</dc:date>
    </item>
    <item>
      <title>Re: Cutting and keeping characters from variables/ transforming data to months</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Cutting-and-keeping-characters-from-variables-transforming-data/m-p/330996#M62660</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for the response....I was finally able to try your suggeste code&amp;nbsp;today...so for the splitting of the age group, the "t" from the word "to" still remains in agegroup1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also, I get the following error in the conversion code:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;NOTE 49-169: The meaning of an identifier after a quoted string might change in a future SAS&lt;BR /&gt;release. Inserting white space between a quoted string and the succeeding&lt;BR /&gt;identifier is recommended.&lt;/P&gt;&lt;P&gt;ERROR 22-322: Syntax error, expecting one of the following: a quoted string,&lt;BR /&gt;a numeric constant, a datetime constant, a missing value, iterator, (, ), ','.&lt;/P&gt;&lt;P&gt;ERROR 76-322: Syntax error, statement will be ignored.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;at the end of these lines:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;if index(agegroup1,'year') &amp;gt; 0 then from = input(compress(agegroup1,,'A'),best.)/12;&amp;nbsp;&lt;/P&gt;&lt;P&gt;else if index(agegroup2,'year') &amp;gt; 0 then upto= input(compress(agegroup2,,'A'), best.)/12;&lt;BR /&gt;else if index(agegroup2,'hour') &amp;gt; 0 then upto = input(compress(agegroup2,,'A'), best.)/(30*24);&lt;/P&gt;</description>
      <pubDate>Wed, 08 Feb 2017 21:32:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Cutting-and-keeping-characters-from-variables-transforming-data/m-p/330996#M62660</guid>
      <dc:creator>starz4ever2007</dc:creator>
      <dc:date>2017-02-08T21:32:49Z</dc:date>
    </item>
    <item>
      <title>Re: Cutting and keeping characters from variables/ transforming data to months</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Cutting-and-keeping-characters-from-variables-transforming-data/m-p/330998#M62661</link>
      <description>&lt;P&gt;and the "years and older" shows up in both agegroup1 and agegroup2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;agegroup1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;agegroup 2&lt;/P&gt;&lt;P&gt;3 years t &amp;nbsp; &amp;nbsp; &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 years&lt;/P&gt;&lt;P&gt;13 years and older &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Years and older&lt;/P&gt;&lt;P&gt;all ages &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; l ages&lt;/P&gt;</description>
      <pubDate>Wed, 08 Feb 2017 21:43:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Cutting-and-keeping-characters-from-variables-transforming-data/m-p/330998#M62661</guid>
      <dc:creator>starz4ever2007</dc:creator>
      <dc:date>2017-02-08T21:43:52Z</dc:date>
    </item>
    <item>
      <title>Re: Cutting and keeping characters from variables/ transforming data to months</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Cutting-and-keeping-characters-from-variables-transforming-data/m-p/331016#M62664</link>
      <description>&lt;P&gt;so I figured out how to split the age groups correctly and found that the error statements i was getting was because i was missing a ' at the end of the first "all"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;however,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;my&amp;nbsp;new dataset shows as:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;from &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; upto&lt;/P&gt;&lt;P&gt;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.&lt;/P&gt;&lt;P&gt;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.&lt;/P&gt;&lt;P&gt;. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .&lt;/P&gt;&lt;P&gt;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1200&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;it did not create&amp;nbsp;agegroup1 and agegroup2 in months.....&lt;/P&gt;</description>
      <pubDate>Wed, 08 Feb 2017 22:35:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Cutting-and-keeping-characters-from-variables-transforming-data/m-p/331016#M62664</guid>
      <dc:creator>starz4ever2007</dc:creator>
      <dc:date>2017-02-08T22:35:35Z</dc:date>
    </item>
    <item>
      <title>Re: Cutting and keeping characters from variables/ transforming data to months</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Cutting-and-keeping-characters-from-variables-transforming-data/m-p/331044#M62668</link>
      <description>&lt;P&gt;Here is a fixed tested code.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
     infile datalines truncover;
     input agegroup $30.;
datalines;
up to 59 days
2 months to 17 years
4 years to 10 years
up to 12 hours
7 years to 8 years
10 years and older
all ages
; run;

data temp;
 set have;
     agegroup = compbl(agegroup);

     ix = index(agegroup,'to');
     if ix &amp;gt; 0 then do;
        agegroup1 = substr(agegroup,1,ix-1);
        agegroup2 = substr(agegroup,ix+3); 
     end; else do;
       ix = index(agegroup,'and');
       if ix &amp;gt; 0 then do;
        agegroup1 = substr(agegroup,1,ix-1);
        agegroup2 = substr(agegroup,ix+4); 
       end; else do;
         agegroup1 = scan(agegroup,1);
         agegroup2 = scan(agegroup,2);
       end;
     end;   
     *drop ix;
run;

data want;
 set temp;
      length from to 8;
      keep from upto;
      format from upto best.2;
       
      if  strip(agegroup1) in ('up', 'all')  then from=0; else
      if index(agegroup1,'month') &amp;gt; 0 then from = input(compress(agegroup1,,'A'),best.); else
      if index(agegroup1,'year') &amp;gt; 0 then from =  input(compress(agegroup1,,'A'), best.)*12; 

      if index(agegroup2,'days') &amp;gt; 0 then
         upto = input(compress(agegroup2,,'A'), best.)/30; 
      else if index(agegroup2,'year') &amp;gt; 0 then upto= input(compress(agegroup2,,'A'), best.)*12; 
      else if index(agegroup2,'hour') &amp;gt; 0 then upto = input(compress(agegroup2,,'A'), best.)/(30*24); 
      else if strip(agegroup2) in ('older', 'ages') then upto=1200;&lt;BR /&gt;&lt;BR /&gt;      from = round(from, 0.01);&lt;BR /&gt;      upto = round(upto, 0.01);
run;

&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 09 Feb 2017 18:53:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Cutting-and-keeping-characters-from-variables-transforming-data/m-p/331044#M62668</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2017-02-09T18:53:56Z</dc:date>
    </item>
  </channel>
</rss>

