<?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 Issue converting text monthly to weekly values in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Issue-converting-text-monthly-to-weekly-values/m-p/912913#M359839</link>
    <description>&lt;P&gt;I am trying to convert a text response containing monthly to a weekly value. The issue is when I run the code below it divides all values in var2 instead of just the ones that meet the text response requirements (e.g. 2 month) . Hopefully this makes sense, please let me know if my issue is unclear.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;var1&lt;/TD&gt;&lt;TD&gt;var2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2 months&lt;/TD&gt;&lt;TD&gt;150&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;two months&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1 week&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1 week&lt;/TD&gt;&lt;TD&gt;45&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;2 months&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;2 months&lt;/TD&gt;&lt;TD&gt;220&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Desired outcome=&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;var1&lt;/TD&gt;&lt;TD&gt;var2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1 week&lt;/TD&gt;&lt;TD&gt;17.26&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1 week&lt;/TD&gt;&lt;TD&gt;10.36&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1 week&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1 week&lt;/TD&gt;&lt;TD&gt;45&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;1 week&lt;/TD&gt;&lt;TD&gt;11.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;1 week&lt;/TD&gt;&lt;TD&gt;25.31&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Current code&lt;/P&gt;&lt;DIV&gt;data want;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;set have;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;if index(lowcase(var1), '2 month') &amp;gt; 0 then var2 = var2/8.69;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;else if index(lowcase(var1), '2 months') &amp;gt; 0 then var2 = var2/8.69;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;else if index(lowcase(var1), 'two months') &amp;gt; 0 then var2 = var2/8.69;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;</description>
    <pubDate>Thu, 25 Jan 2024 02:07:07 GMT</pubDate>
    <dc:creator>PIEFLAVOR</dc:creator>
    <dc:date>2024-01-25T02:07:07Z</dc:date>
    <item>
      <title>Issue converting text monthly to weekly values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Issue-converting-text-monthly-to-weekly-values/m-p/912913#M359839</link>
      <description>&lt;P&gt;I am trying to convert a text response containing monthly to a weekly value. The issue is when I run the code below it divides all values in var2 instead of just the ones that meet the text response requirements (e.g. 2 month) . Hopefully this makes sense, please let me know if my issue is unclear.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;var1&lt;/TD&gt;&lt;TD&gt;var2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2 months&lt;/TD&gt;&lt;TD&gt;150&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;two months&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1 week&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1 week&lt;/TD&gt;&lt;TD&gt;45&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;2 months&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;2 months&lt;/TD&gt;&lt;TD&gt;220&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Desired outcome=&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;var1&lt;/TD&gt;&lt;TD&gt;var2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1 week&lt;/TD&gt;&lt;TD&gt;17.26&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1 week&lt;/TD&gt;&lt;TD&gt;10.36&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1 week&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1 week&lt;/TD&gt;&lt;TD&gt;45&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;1 week&lt;/TD&gt;&lt;TD&gt;11.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;1 week&lt;/TD&gt;&lt;TD&gt;25.31&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Current code&lt;/P&gt;&lt;DIV&gt;data want;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;set have;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;if index(lowcase(var1), '2 month') &amp;gt; 0 then var2 = var2/8.69;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;else if index(lowcase(var1), '2 months') &amp;gt; 0 then var2 = var2/8.69;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;else if index(lowcase(var1), 'two months') &amp;gt; 0 then var2 = var2/8.69;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;</description>
      <pubDate>Thu, 25 Jan 2024 02:07:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Issue-converting-text-monthly-to-weekly-values/m-p/912913#M359839</guid>
      <dc:creator>PIEFLAVOR</dc:creator>
      <dc:date>2024-01-25T02:07:07Z</dc:date>
    </item>
    <item>
      <title>Re: Issue converting text monthly to weekly values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Issue-converting-text-monthly-to-weekly-values/m-p/912915#M359841</link>
      <description>&lt;P&gt;Your question will become much clearer if you provide us with sample HAVE data and show us the desired result.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The code you shared returns the result you desire as far as I understand your question.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  infile datalines truncover dlm=',';
  input var1 $50.;
  var2=8.69049;
  datalines;
xxx 2 Month yyy
xxx 2 Months yyy
xxx two Months yyy
xxx 3 Months yyy
;

data want;
  set have;
  if index(lowcase(var1), '2 month') &amp;gt; 0 then var2 = var2/8.69049;
  else if index(lowcase(var1), '2 months') &amp;gt; 0 then var2 = var2/8.69049;
  else if index(lowcase(var1), 'two months') &amp;gt; 0 then var2 = var2/8.69049;
run;

proc print data=want;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Patrick_0-1706147388852.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/92957i7A4D0FD3FC04967A/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Patrick_0-1706147388852.png" alt="Patrick_0-1706147388852.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jan 2024 01:50:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Issue-converting-text-monthly-to-weekly-values/m-p/912915#M359841</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2024-01-25T01:50:37Z</dc:date>
    </item>
    <item>
      <title>Re: Issue converting text monthly to weekly values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Issue-converting-text-monthly-to-weekly-values/m-p/912920#M359843</link>
      <description>Note that you don't need to look for:&lt;BR /&gt;"2 months"&lt;BR /&gt;Any time it appears, it would have been caught by the first check, looking for:&lt;BR /&gt;"2 month"</description>
      <pubDate>Thu, 25 Jan 2024 02:07:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Issue-converting-text-monthly-to-weekly-values/m-p/912920#M359843</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2024-01-25T02:07:26Z</dc:date>
    </item>
    <item>
      <title>Re: Issue converting text monthly to weekly values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Issue-converting-text-monthly-to-weekly-values/m-p/912921#M359844</link>
      <description>&lt;P&gt;I forgot to include my current results (undesired)-&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;var1&lt;/TD&gt;&lt;TD&gt;var2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1 week&lt;/TD&gt;&lt;TD&gt;17.26&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1 week&lt;/TD&gt;&lt;TD&gt;10.36&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1 week&lt;/TD&gt;&lt;TD&gt;3.45&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1 week&lt;/TD&gt;&lt;TD&gt;5.17&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;1 week&lt;/TD&gt;&lt;TD&gt;11.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;1 week&lt;/TD&gt;&lt;TD&gt;25.31&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Thu, 25 Jan 2024 02:12:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Issue-converting-text-monthly-to-weekly-values/m-p/912921#M359844</guid>
      <dc:creator>PIEFLAVOR</dc:creator>
      <dc:date>2024-01-25T02:12:34Z</dc:date>
    </item>
    <item>
      <title>Re: Issue converting text monthly to weekly values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Issue-converting-text-monthly-to-weekly-values/m-p/912930#M359850</link>
      <description>&lt;P&gt;I am not sure that I see a clear definition of a conversion from "month" to week. This may be very important if you have values of 3 or more months. I see one conversion for only 2 months. Do you have more variability in your data?&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jan 2024 04:20:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Issue-converting-text-monthly-to-weekly-values/m-p/912930#M359850</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2024-01-25T04:20:28Z</dc:date>
    </item>
    <item>
      <title>Re: Issue converting text monthly to weekly values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Issue-converting-text-monthly-to-weekly-values/m-p/912938#M359853</link>
      <description>&lt;P&gt;I guess you assume weeks per month =&amp;nbsp; 4.34523809523809&amp;nbsp; (= 365/*(7*12)).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you have only two original time units ("week/weeks"&amp;nbsp; or "month/months") then discriminating between them is easy.&amp;nbsp; The remaining task is to get a numeric value from the first "word" in var1.&amp;nbsp; You could then do:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input var1 $12.   var2;
datalines;
2 months     150
two months   90
1 week       30
1 week       45
2 months     100
2 months     220
run;

%let weeks_per_month=%sysevalf((365/7)/12);

data want (/*drop=_:*/);
  set have;
  array numwords {12} $6 _temporary_ ('one','two','three','four','five','six',
                                      'seven','eight','nine','ten','eleven','twelve');
  _nunits=whichc(lowcase(scan(var1,1)),of numwords{*});
  if _nunits=0 then _nunits=input(scan(var1,1),2.);

  if index(lowcase(var1),'month') then weekly_var2=  var2/(_nunits*&amp;amp;weeks_per_month);
  else weekly_var2=var2/_nunits;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;This allows you to have "one month", "two months", ... "twelve months" to start var1 (or "one week" through "twelve weeks"), as well as any set of (up to) 12 digits.&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jan 2024 06:00:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Issue-converting-text-monthly-to-weekly-values/m-p/912938#M359853</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2024-01-25T06:00:59Z</dc:date>
    </item>
  </channel>
</rss>

