<?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: make a new variable based on rules in New SAS User</title>
    <link>https://communities.sas.com/t5/New-SAS-User/make-a-new-variable-based-on-rules/m-p/717354#M27506</link>
    <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/353472"&gt;@mmea&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;I want to make a statement thats says;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;If values in VALUE for each value in  PLACE has a value over 400 most of the date 
period make make a new variable that says '&amp;gt;400':
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="s-table-container"&gt;
&lt;TABLE class="s-table"&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH&gt;PLACE&lt;/TH&gt;
&lt;TH&gt;DATE&lt;/TH&gt;
&lt;TH&gt;VALUE&lt;/TH&gt;
&lt;TH&gt;newvariable&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;06/02/2021&lt;/TD&gt;
&lt;TD&gt;676&lt;/TD&gt;
&lt;TD&gt;&amp;gt;400&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;07/02/2021&lt;/TD&gt;
&lt;TD&gt;566&lt;/TD&gt;
&lt;TD&gt;&amp;gt;400&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;08/02/2021&lt;/TD&gt;
&lt;TD&gt;345&lt;/TD&gt;
&lt;TD&gt;&amp;gt;400&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;09/02/2021&lt;/TD&gt;
&lt;TD&gt;23&lt;/TD&gt;
&lt;TD&gt;&amp;gt;400&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;10/02/2021&lt;/TD&gt;
&lt;TD&gt;1323&lt;/TD&gt;
&lt;TD&gt;&amp;gt;400&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;By "PLACE has a value over 400 &lt;EM&gt;&lt;STRONG&gt;most of the date period&lt;/STRONG&gt;&lt;/EM&gt;", I think you mean the MEDIAN of value is &amp;gt;400 over the set of dates for a single place.&amp;nbsp; If so then, you could use PROC UNIVARIATE to create a median for each PLACE, outputting the median to a dataset (NEED).&amp;nbsp; Then merge NEED with your original dataset (call it HAVE) match-merging on PLACE.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc univariate data=have noprint;
  by place;
  var value;
  output out=need median=median_value;
run;

data want;
  merge have need;
  by place;
  if median_value &amp;lt;= 400 then result='&amp;lt;=400';
  else result='&amp;gt;400';
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;This assumes your original data is sorted by PLACE.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sun, 07 Feb 2021 05:12:58 GMT</pubDate>
    <dc:creator>mkeintz</dc:creator>
    <dc:date>2021-02-07T05:12:58Z</dc:date>
    <item>
      <title>make a new variable based on rules</title>
      <link>https://communities.sas.com/t5/New-SAS-User/make-a-new-variable-based-on-rules/m-p/717296#M27497</link>
      <description>&lt;P&gt;I want to make a statement thats says;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;If values in VALUE for each value in  PLACE has a value over 400 most of the date 
period make make a new variable that says '&amp;gt;400':
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="s-table-container"&gt;
&lt;TABLE class="s-table"&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH&gt;PLACE&lt;/TH&gt;
&lt;TH&gt;DATE&lt;/TH&gt;
&lt;TH&gt;VALUE&lt;/TH&gt;
&lt;TH&gt;newvariable&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;06/02/2021&lt;/TD&gt;
&lt;TD&gt;676&lt;/TD&gt;
&lt;TD&gt;&amp;gt;400&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;07/02/2021&lt;/TD&gt;
&lt;TD&gt;566&lt;/TD&gt;
&lt;TD&gt;&amp;gt;400&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;08/02/2021&lt;/TD&gt;
&lt;TD&gt;345&lt;/TD&gt;
&lt;TD&gt;&amp;gt;400&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;09/02/2021&lt;/TD&gt;
&lt;TD&gt;23&lt;/TD&gt;
&lt;TD&gt;&amp;gt;400&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;10/02/2021&lt;/TD&gt;
&lt;TD&gt;1323&lt;/TD&gt;
&lt;TD&gt;&amp;gt;400&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;</description>
      <pubDate>Sat, 06 Feb 2021 12:52:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/make-a-new-variable-based-on-rules/m-p/717296#M27497</guid>
      <dc:creator>mmea</dc:creator>
      <dc:date>2021-02-06T12:52:41Z</dc:date>
    </item>
    <item>
      <title>Re: make a new variable based on rules</title>
      <link>https://communities.sas.com/t5/New-SAS-User/make-a-new-variable-based-on-rules/m-p/717304#M27499</link>
      <description>&lt;P&gt;It is not clear what you want:&lt;/P&gt;
&lt;P&gt;1) Does "for each value in place" mean the sum of VALUEs per place?&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;or you meant something else?&lt;/P&gt;
&lt;P&gt;2) What do you mean by "&lt;STRONG&gt;most&lt;/STRONG&gt; of the date"? "most" is ambiguous.&lt;/P&gt;</description>
      <pubDate>Sat, 06 Feb 2021 14:37:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/make-a-new-variable-based-on-rules/m-p/717304#M27499</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2021-02-06T14:37:16Z</dc:date>
    </item>
    <item>
      <title>Re: make a new variable based on rules</title>
      <link>https://communities.sas.com/t5/New-SAS-User/make-a-new-variable-based-on-rules/m-p/717305#M27500</link>
      <description>&lt;P&gt;Each place has a value everyday.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Place A has different values, but if Place A mostly have values over 400 out of all dates then it should say &amp;gt;400 in the new column in every row,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 06 Feb 2021 14:42:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/make-a-new-variable-based-on-rules/m-p/717305#M27500</guid>
      <dc:creator>mmea</dc:creator>
      <dc:date>2021-02-06T14:42:45Z</dc:date>
    </item>
    <item>
      <title>Re: make a new variable based on rules</title>
      <link>https://communities.sas.com/t5/New-SAS-User/make-a-new-variable-based-on-rules/m-p/717314#M27501</link>
      <description>&lt;P&gt;I suppose "most" means more than 50% of days in a place.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The logic should be:&lt;/P&gt;
&lt;P&gt;step 1) count number of days with value &amp;gt; 400 and number of days with value &amp;lt;= 400&lt;/P&gt;
&lt;P&gt;step 2) assign the newvar value according to relation of those two counters&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data=have; by place; run;
data temp;
 set have;
  by place;
       retain gt400 le400;
       if first.place then do; gt400=0; le400=0; end;
       if value &amp;gt; 400 then gt400+1; 
       else le400+1;
       if last.place then output;
run;
data want;
 merge have temp;
   by place;
        length newvar $4;
        retain newvar;&lt;BR /&gt;        if first.place then newvar = ' ';  
        drop gt400 le400;
        if gt400 &amp;gt; le400 then newvar = '&amp;gt;400';
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 06 Feb 2021 16:26:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/make-a-new-variable-based-on-rules/m-p/717314#M27501</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2021-02-06T16:26:42Z</dc:date>
    </item>
    <item>
      <title>Re: make a new variable based on rules</title>
      <link>https://communities.sas.com/t5/New-SAS-User/make-a-new-variable-based-on-rules/m-p/717354#M27506</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/353472"&gt;@mmea&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;I want to make a statement thats says;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;If values in VALUE for each value in  PLACE has a value over 400 most of the date 
period make make a new variable that says '&amp;gt;400':
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="s-table-container"&gt;
&lt;TABLE class="s-table"&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH&gt;PLACE&lt;/TH&gt;
&lt;TH&gt;DATE&lt;/TH&gt;
&lt;TH&gt;VALUE&lt;/TH&gt;
&lt;TH&gt;newvariable&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;06/02/2021&lt;/TD&gt;
&lt;TD&gt;676&lt;/TD&gt;
&lt;TD&gt;&amp;gt;400&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;07/02/2021&lt;/TD&gt;
&lt;TD&gt;566&lt;/TD&gt;
&lt;TD&gt;&amp;gt;400&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;08/02/2021&lt;/TD&gt;
&lt;TD&gt;345&lt;/TD&gt;
&lt;TD&gt;&amp;gt;400&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;09/02/2021&lt;/TD&gt;
&lt;TD&gt;23&lt;/TD&gt;
&lt;TD&gt;&amp;gt;400&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;10/02/2021&lt;/TD&gt;
&lt;TD&gt;1323&lt;/TD&gt;
&lt;TD&gt;&amp;gt;400&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;By "PLACE has a value over 400 &lt;EM&gt;&lt;STRONG&gt;most of the date period&lt;/STRONG&gt;&lt;/EM&gt;", I think you mean the MEDIAN of value is &amp;gt;400 over the set of dates for a single place.&amp;nbsp; If so then, you could use PROC UNIVARIATE to create a median for each PLACE, outputting the median to a dataset (NEED).&amp;nbsp; Then merge NEED with your original dataset (call it HAVE) match-merging on PLACE.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc univariate data=have noprint;
  by place;
  var value;
  output out=need median=median_value;
run;

data want;
  merge have need;
  by place;
  if median_value &amp;lt;= 400 then result='&amp;lt;=400';
  else result='&amp;gt;400';
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;This assumes your original data is sorted by PLACE.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 07 Feb 2021 05:12:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/make-a-new-variable-based-on-rules/m-p/717354#M27506</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2021-02-07T05:12:58Z</dc:date>
    </item>
    <item>
      <title>Re: make a new variable based on rules</title>
      <link>https://communities.sas.com/t5/New-SAS-User/make-a-new-variable-based-on-rules/m-p/717376#M27507</link>
      <description>&lt;P&gt;If I understood right, you mean the count of &amp;gt;400 is greater than the count of &amp;lt;400 ?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input place $ date : $20. value;
cards;
A	06/02/2021	676	
A	07/02/2021	566	
A	08/02/2021	345	
A	09/02/2021	23	
A	10/02/2021	1323
;
proc sql;
create table want as
select *,case when sum(value&amp;gt;400)&amp;gt; sum(value&amp;lt;400) then '&amp;gt;400' else '&amp;lt;400' end as variable
 from have
  group by place;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sun, 07 Feb 2021 10:58:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/make-a-new-variable-based-on-rules/m-p/717376#M27507</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2021-02-07T10:58:03Z</dc:date>
    </item>
  </channel>
</rss>

