<?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 min &amp;amp; max within macro in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/min-amp-max-within-macro/m-p/431929#M281745</link>
    <description>&lt;P&gt;In the below code I'm trying to take the difference of min and max values of a variable that varies with RN and stat. The following code gives the output:&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; unit&amp;nbsp; SORT_ORDER&amp;nbsp; min_stat&amp;nbsp; max_stat&amp;nbsp; &amp;nbsp;stat_dist&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;61881.27&lt;/TD&gt;&lt;TD&gt;61881.27&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;65405.85&lt;/TD&gt;&lt;TD&gt;65405.85&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;66931.5&lt;/TD&gt;&lt;TD&gt;66931.5&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;69289.32&lt;/TD&gt;&lt;TD&gt;69289.32&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;61879.68&lt;/TD&gt;&lt;TD&gt;61879.68&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;65404.52&lt;/TD&gt;&lt;TD&gt;65404.52&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;66928.74&lt;/TD&gt;&lt;TD&gt;66928.74&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;69270.52&lt;/TD&gt;&lt;TD&gt;69270.52&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro add_dist(RN,stat);

	data have;
		set have;

		if unit = &amp;amp;RN then
			if SORT_ORDER = &amp;amp;stat then
			do;
				min_stat = min(STATISTIC_VAL);
				max_stat = max(STATISTIC_VAL);
				stat_dist = max(STATISTIC_VAL) - min(STATISTIC_VAL);
			end;
	run;

%mend add_dist;

%add_dist(2801,1113);
%add_dist(2801,1114);&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;The desired output is:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; unit&amp;nbsp; SORT_ORDER&amp;nbsp; min_stat&amp;nbsp; max_stat&amp;nbsp; &amp;nbsp;stat_dist&lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;61881.27&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;7598.334&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;61881.27&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;7598.334&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;61881.27&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;7598.334&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;61881.27&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;7598.334&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;61881.27&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;7598.334&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;61881.27&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;7598.334&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;61881.27&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;7598.334&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;61881.27&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;7598.334&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;61879.68&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;7581.12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;61879.68&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;7581.12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;61879.68&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;7581.12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;61879.68&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;7581.12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;61879.68&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;7581.12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;61879.68&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;7581.12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;61879.68&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;7581.12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;61879.68&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;7581.12&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
    <pubDate>Mon, 29 Jan 2018 19:47:32 GMT</pubDate>
    <dc:creator>capam</dc:creator>
    <dc:date>2018-01-29T19:47:32Z</dc:date>
    <item>
      <title>min &amp; max within macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/min-amp-max-within-macro/m-p/431929#M281745</link>
      <description>&lt;P&gt;In the below code I'm trying to take the difference of min and max values of a variable that varies with RN and stat. The following code gives the output:&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; unit&amp;nbsp; SORT_ORDER&amp;nbsp; min_stat&amp;nbsp; max_stat&amp;nbsp; &amp;nbsp;stat_dist&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;61881.27&lt;/TD&gt;&lt;TD&gt;61881.27&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;65405.85&lt;/TD&gt;&lt;TD&gt;65405.85&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;66931.5&lt;/TD&gt;&lt;TD&gt;66931.5&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;69289.32&lt;/TD&gt;&lt;TD&gt;69289.32&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;61879.68&lt;/TD&gt;&lt;TD&gt;61879.68&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;65404.52&lt;/TD&gt;&lt;TD&gt;65404.52&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;66928.74&lt;/TD&gt;&lt;TD&gt;66928.74&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;69270.52&lt;/TD&gt;&lt;TD&gt;69270.52&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro add_dist(RN,stat);

	data have;
		set have;

		if unit = &amp;amp;RN then
			if SORT_ORDER = &amp;amp;stat then
			do;
				min_stat = min(STATISTIC_VAL);
				max_stat = max(STATISTIC_VAL);
				stat_dist = max(STATISTIC_VAL) - min(STATISTIC_VAL);
			end;
	run;

%mend add_dist;

%add_dist(2801,1113);
%add_dist(2801,1114);&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;The desired output is:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; unit&amp;nbsp; SORT_ORDER&amp;nbsp; min_stat&amp;nbsp; max_stat&amp;nbsp; &amp;nbsp;stat_dist&lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;61881.27&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;7598.334&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;61881.27&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;7598.334&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;61881.27&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;7598.334&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;61881.27&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;7598.334&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;61881.27&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;7598.334&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;61881.27&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;7598.334&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;61881.27&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;7598.334&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1113&lt;/TD&gt;&lt;TD&gt;61881.27&lt;/TD&gt;&lt;TD&gt;69479.6&lt;/TD&gt;&lt;TD&gt;7598.334&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;61879.68&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;7581.12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;61879.68&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;7581.12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;61879.68&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;7581.12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;61879.68&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;7581.12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;61879.68&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;7581.12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;61879.68&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;7581.12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;61879.68&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;7581.12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2801&lt;/TD&gt;&lt;TD&gt;1114&lt;/TD&gt;&lt;TD&gt;61879.68&lt;/TD&gt;&lt;TD&gt;69460.8&lt;/TD&gt;&lt;TD&gt;7581.12&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Mon, 29 Jan 2018 19:47:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/min-amp-max-within-macro/m-p/431929#M281745</guid>
      <dc:creator>capam</dc:creator>
      <dc:date>2018-01-29T19:47:32Z</dc:date>
    </item>
    <item>
      <title>Re: min &amp; max within macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/min-amp-max-within-macro/m-p/431930#M281746</link>
      <description>&lt;P&gt;Ok, why do you need a macro here?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc means data=have noprint nway;
class unit sort_order;
var statistic_val;
output out=want min=min_stat max=max_stat range=stat_dist;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 29 Jan 2018 19:50:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/min-amp-max-within-macro/m-p/431930#M281746</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-01-29T19:50:45Z</dc:date>
    </item>
    <item>
      <title>Re: min &amp; max within macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/min-amp-max-within-macro/m-p/431933#M281747</link>
      <description>&lt;P&gt;What is RN?? This is not clear. Are the original variable min_stat and max_stat always equal as in your example?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Other than that, everything you are doing can be done much simpler and without macros by using PROC SUMMARY and then merge the results back into your original dataset.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;UNTESTED CODE&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc summary nway data=have;
    class unit sort_order;
    var min_stat max_stat;
    output out=results min(min_stat)= max(max_stat)=;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;No sorting needed, no macros needed.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 29 Jan 2018 19:53:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/min-amp-max-within-macro/m-p/431933#M281747</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2018-01-29T19:53:54Z</dc:date>
    </item>
    <item>
      <title>Re: min &amp; max within macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/min-amp-max-within-macro/m-p/431935#M281748</link>
      <description>&lt;P&gt;While I agree with Reeza and Paige about not needing macros, you do want to add the min and max to each observation.&amp;nbsp; So you can either use SQL, or merge Reeza's results back into your data, or do it all in one step:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;do until (last.sort_order);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; by unit sort_order;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; min_stat = min(min_stat, statistic_val);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; max_stat = max(max_stat, statistic_val);&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;stat_dist = max_stat - min_stat;&lt;/P&gt;
&lt;P&gt;do until (last.sort_order);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; by unit sort_order;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;</description>
      <pubDate>Mon, 29 Jan 2018 19:58:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/min-amp-max-within-macro/m-p/431935#M281748</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2018-01-29T19:58:54Z</dc:date>
    </item>
    <item>
      <title>Re: min &amp; max within macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/min-amp-max-within-macro/m-p/431936#M281749</link>
      <description>&lt;P&gt;This may be a useful example, it covers how to add statistics to your data set. Note that RANGE is the statistic name for the Max-Min statistic.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://github.com/statgeek/SAS-Tutorials/blob/master/add_average_value_to_dataset.sas" target="_blank"&gt;https://github.com/statgeek/SAS-Tutorials/blob/master/add_average_value_to_dataset.sas&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 29 Jan 2018 19:56:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/min-amp-max-within-macro/m-p/431936#M281749</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-01-29T19:56:28Z</dc:date>
    </item>
    <item>
      <title>Re: min &amp; max within macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/min-amp-max-within-macro/m-p/431953#M281750</link>
      <description>Great, but the range is not included. Can proc summary give a range?</description>
      <pubDate>Mon, 29 Jan 2018 20:28:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/min-amp-max-within-macro/m-p/431953#M281750</guid>
      <dc:creator>capam</dc:creator>
      <dc:date>2018-01-29T20:28:40Z</dc:date>
    </item>
    <item>
      <title>Re: min &amp; max within macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/min-amp-max-within-macro/m-p/431955#M281751</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/154084"&gt;@capam&lt;/a&gt; wrote:&lt;BR /&gt;Great, but the range is not included. Can proc summary give a range?&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Yes, and also range is one of the simplest statistics to compute, you could compute it yourself.&lt;/P&gt;</description>
      <pubDate>Mon, 29 Jan 2018 20:29:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/min-amp-max-within-macro/m-p/431955#M281751</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2018-01-29T20:29:26Z</dc:date>
    </item>
    <item>
      <title>Re: min &amp; max within macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/min-amp-max-within-macro/m-p/431956#M281752</link>
      <description>Thanks for the quick response and a great idea.</description>
      <pubDate>Mon, 29 Jan 2018 20:30:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/min-amp-max-within-macro/m-p/431956#M281752</guid>
      <dc:creator>capam</dc:creator>
      <dc:date>2018-01-29T20:30:41Z</dc:date>
    </item>
  </channel>
</rss>

