<?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: Outputting records in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Outputting-records/m-p/646052#M193207</link>
    <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is exactly what I want to do and I believe this is my fault of making an incomplete dataset as I tried to simplify what i wanted. So your code actually does what I want but, it's not copying the entire row...for example I have 49 different variables in this dataset, however, when you're outputting the minimum value, it's copying everything that is in the maximum row:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For example: lets say I have this:&lt;/P&gt;&lt;P&gt;Row SUBJID VISIT AVISIT ADY PARAMCD AVAL&amp;nbsp;&lt;/P&gt;&lt;P&gt;1 1001 Week_1 Week_1 6 SUPINE 130&lt;BR /&gt;2 1001 Week_2 Week_2 12 SUPINE&amp;nbsp; 133&lt;/P&gt;&lt;P&gt;3 1001 Week_3 Week_3 18 SUPINE 131&lt;/P&gt;&lt;P&gt;4 1001 Week_1 Week_1 6 ALT 8&lt;/P&gt;&lt;P&gt;5&amp;nbsp;1001 Week_2 Week_2 12 ALT 8&lt;/P&gt;&lt;P&gt;6&amp;nbsp;1001 Week_3 Week_3 18 ALT 8&lt;/P&gt;&lt;P&gt;7&amp;nbsp;1001 Week_1 Week_1 6 APC 5&lt;/P&gt;&lt;P&gt;I want this:&lt;/P&gt;&lt;P&gt;Row SUBJID VISIT AVISIT ADY PARAMCD AVAL DTYPE&lt;/P&gt;&lt;P&gt;1 1001 Week_1 Week_1 6 SUPINE 130&lt;BR /&gt;2 1001 Week_2 Week_2 12 SUPINE&amp;nbsp; 133&lt;/P&gt;&lt;P&gt;3 1001 Week_3 Week_3 18 SUPINE 131&lt;/P&gt;&lt;P&gt;4 1001 Week_1 Week_1 6 SUPINE&amp;nbsp; 130 MINIMUM&lt;/P&gt;&lt;P&gt;5 1001 Week_2 Week_2 12 SUPINE&amp;nbsp; 133 MAXIMUM&lt;/P&gt;&lt;P&gt;6 1001 Week_1 Week_1 6 ALT 8&lt;/P&gt;&lt;P&gt;7 1001 Week_2 Week_2 12 ALT 8&lt;/P&gt;&lt;P&gt;8 1001 Week_3 Week_3 18 ALT 8&lt;/P&gt;&lt;P&gt;9 1001 Week_1 Week_1 6 ALT 8 MINIMUM&lt;/P&gt;&lt;P&gt;10 1001 Week_3 Week_3 12 ALT 8 MAXIMUM&lt;/P&gt;&lt;P&gt;11 1001 Week_1 Week_1 6 APC 5&lt;/P&gt;&lt;P&gt;12 1001 Week_1 Week_1 6 APC 5 MINIMUM&lt;/P&gt;&lt;P&gt;13 1001 Week_1 Week_1 6 APC 5 MAXIMUM&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The current code due to my lack of providing more context to the data creates the minimum line using all the data that is in the maximum line except for the aval value.&amp;nbsp;&lt;/P&gt;&lt;P&gt;So your code is creating this:&lt;/P&gt;&lt;P&gt;Row SUBJID VISIT AVISIT ADY PARAMCD AVAL DTYPE&lt;BR /&gt;1 1001 Week_1 Week_1 6 SUPINE 130&lt;BR /&gt;2 1001 Week_2 Week_2 12 SUPINE&amp;nbsp; 133&lt;/P&gt;&lt;P&gt;3 1001 Week_3 Week_3 18 SUPINE 131&lt;/P&gt;&lt;P&gt;4 1001 &lt;FONT color="#FF0000"&gt;Week_2 Week_2 12&lt;/FONT&gt; SUPINE&amp;nbsp; 130 MINIMUM&lt;/P&gt;&lt;P&gt;5 1001 Week_2 Week_2 12 SUPINE&amp;nbsp; 133 MAXIMUM&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 07 May 2020 23:03:13 GMT</pubDate>
    <dc:creator>Dregerator</dc:creator>
    <dc:date>2020-05-07T23:03:13Z</dc:date>
    <item>
      <title>Outputting records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Outputting-records/m-p/645972#M193173</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I'm trying to output the minimum aval record and then a maximum aval record into the existing dataset.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;For example lets say i have this set of data:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;subjid paramcd aval&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 ALT 34&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 ALT 39&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 ALT 28&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 ALT 28&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 ALT 40&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 ALT 40&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 APT 15&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 APT 15&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 APT 15&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 APT 9&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 APT 9&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 APT 15&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 APT 12&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;1 ABC 9&lt;/P&gt;&lt;P&gt;1 ABC 9&lt;/P&gt;&lt;P&gt;1 ABC 9&lt;/P&gt;&lt;P&gt;1 ABC 9&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to create the following dataset as:&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;subjid paramcd aval dtype&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 ALT 28&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 ALT 28&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 ALT 34&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 ALT 39&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 ALT 40&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 ALT 40&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;SPAN&gt;1 ALT 28 MINIMUM&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;SPAN&gt;1 ALT 40 MAXIMUM&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;1 APT 9&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 APT 9&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 APT 12&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 APT 15&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 APT 15&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 APT 15&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1 APT 15&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;SPAN&gt;1 APT 9 MINIMUM&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;SPAN&gt;1 ALT 9 MAXIMUM&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;1 ABC 9&lt;/P&gt;&lt;P&gt;1 ABC 9&lt;/P&gt;&lt;P&gt;1 ABC 9&lt;/P&gt;&lt;P&gt;1 ABC 9&lt;/P&gt;&lt;P&gt;&lt;FONT color="#339966"&gt;1 ABC 9&amp;nbsp;&lt;SPAN&gt;MINIMUM&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#339966"&gt;1 ABC 9&amp;nbsp;&lt;SPAN&gt;MAXIMUM&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;This is the current code i am using. First i'm sorting the dataset with&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;proc sort data=have;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;by&amp;nbsp;subjid paramcd aval;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;then doing this&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;data want;&lt;BR /&gt;set have;&lt;BR /&gt;by subjid paramcd;&lt;BR /&gt;if first.paramcd then DTYPE="MINIMUM"; output;&lt;BR /&gt;if last.paramcd then DTYPE="MAXIMUM"; output;&lt;BR /&gt;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;However, it keeps giving me two Minimums as the first record gets minimum and then the second record that is being outputted as minimum. As I only want 2 new records that just state minimum and maximum and that's it.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thank you in advance.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 07 May 2020 17:54:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Outputting-records/m-p/645972#M193173</guid>
      <dc:creator>Dregerator</dc:creator>
      <dc:date>2020-05-07T17:54:11Z</dc:date>
    </item>
    <item>
      <title>Re: Outputting records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Outputting-records/m-p/645992#M193182</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/301047"&gt;@Dregerator&lt;/a&gt;&amp;nbsp; Are you sure about this?&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;SPAN&gt;1 APT 9 MINIMUM&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;SPAN&gt;1 ALT 9 MAXIMUM&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="arial black,avant garde" color="#339966"&gt;That doesn't make sense to me.&lt;/FONT&gt;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input subjid paramcd $ aval;
cards;
1 ALT 34
1 ALT 39
1 ALT 28
1 ALT 28
1 ALT 40
1 ALT 40
1 APT 15
1 APT 15
1 APT 15
1 APT 9
1 APT 9
1 APT 15
1 APT 12
1 ABC 9
1 ABC 9
1 ABC 9
1 ABC 9
;

data want;
 do until(last.paramcd);
  set have ;
  by subjid paramcd notsorted;
  _min=min(_min,aval);
  _max=max(_max,aval);
  output;
 end;
 aval=_min;
 do dtype='min','max';
  output;
  aval=_max;
 end;
 drop _:;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="branch"&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure Print: Data Set WORK.WANT" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;&lt;COLGROUP&gt; &lt;COL /&gt; &lt;COL /&gt; &lt;COL /&gt; &lt;COL /&gt;&lt;/COLGROUP&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="r header" scope="col"&gt;subjid&lt;/TH&gt;
&lt;TH class="l header" scope="col"&gt;paramcd&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;aval&lt;/TH&gt;
&lt;TH class="l header" scope="col"&gt;dtype&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;ALT&lt;/TD&gt;
&lt;TD class="r data"&gt;34&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;ALT&lt;/TD&gt;
&lt;TD class="r data"&gt;39&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;ALT&lt;/TD&gt;
&lt;TD class="r data"&gt;28&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;ALT&lt;/TD&gt;
&lt;TD class="r data"&gt;28&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;ALT&lt;/TD&gt;
&lt;TD class="r data"&gt;40&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;ALT&lt;/TD&gt;
&lt;TD class="r data"&gt;40&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;ALT&lt;/TD&gt;
&lt;TD class="r data"&gt;28&lt;/TD&gt;
&lt;TD class="l data"&gt;min&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;ALT&lt;/TD&gt;
&lt;TD class="r data"&gt;40&lt;/TD&gt;
&lt;TD class="l data"&gt;max&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;APT&lt;/TD&gt;
&lt;TD class="r data"&gt;15&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;APT&lt;/TD&gt;
&lt;TD class="r data"&gt;15&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;APT&lt;/TD&gt;
&lt;TD class="r data"&gt;15&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;APT&lt;/TD&gt;
&lt;TD class="r data"&gt;9&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;APT&lt;/TD&gt;
&lt;TD class="r data"&gt;9&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;APT&lt;/TD&gt;
&lt;TD class="r data"&gt;15&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;APT&lt;/TD&gt;
&lt;TD class="r data"&gt;12&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;APT&lt;/TD&gt;
&lt;TD class="r data"&gt;9&lt;/TD&gt;
&lt;TD class="l data"&gt;min&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;APT&lt;/TD&gt;
&lt;TD class="r data"&gt;15&lt;/TD&gt;
&lt;TD class="l data"&gt;max&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;ABC&lt;/TD&gt;
&lt;TD class="r data"&gt;9&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;ABC&lt;/TD&gt;
&lt;TD class="r data"&gt;9&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;ABC&lt;/TD&gt;
&lt;TD class="r data"&gt;9&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;ABC&lt;/TD&gt;
&lt;TD class="r data"&gt;9&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;ABC&lt;/TD&gt;
&lt;TD class="r data"&gt;9&lt;/TD&gt;
&lt;TD class="l data"&gt;min&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="l data"&gt;ABC&lt;/TD&gt;
&lt;TD class="r data"&gt;9&lt;/TD&gt;
&lt;TD class="l data"&gt;max&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 07 May 2020 18:25:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Outputting-records/m-p/645992#M193182</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-05-07T18:25:30Z</dc:date>
    </item>
    <item>
      <title>Re: Outputting records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Outputting-records/m-p/646052#M193207</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is exactly what I want to do and I believe this is my fault of making an incomplete dataset as I tried to simplify what i wanted. So your code actually does what I want but, it's not copying the entire row...for example I have 49 different variables in this dataset, however, when you're outputting the minimum value, it's copying everything that is in the maximum row:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For example: lets say I have this:&lt;/P&gt;&lt;P&gt;Row SUBJID VISIT AVISIT ADY PARAMCD AVAL&amp;nbsp;&lt;/P&gt;&lt;P&gt;1 1001 Week_1 Week_1 6 SUPINE 130&lt;BR /&gt;2 1001 Week_2 Week_2 12 SUPINE&amp;nbsp; 133&lt;/P&gt;&lt;P&gt;3 1001 Week_3 Week_3 18 SUPINE 131&lt;/P&gt;&lt;P&gt;4 1001 Week_1 Week_1 6 ALT 8&lt;/P&gt;&lt;P&gt;5&amp;nbsp;1001 Week_2 Week_2 12 ALT 8&lt;/P&gt;&lt;P&gt;6&amp;nbsp;1001 Week_3 Week_3 18 ALT 8&lt;/P&gt;&lt;P&gt;7&amp;nbsp;1001 Week_1 Week_1 6 APC 5&lt;/P&gt;&lt;P&gt;I want this:&lt;/P&gt;&lt;P&gt;Row SUBJID VISIT AVISIT ADY PARAMCD AVAL DTYPE&lt;/P&gt;&lt;P&gt;1 1001 Week_1 Week_1 6 SUPINE 130&lt;BR /&gt;2 1001 Week_2 Week_2 12 SUPINE&amp;nbsp; 133&lt;/P&gt;&lt;P&gt;3 1001 Week_3 Week_3 18 SUPINE 131&lt;/P&gt;&lt;P&gt;4 1001 Week_1 Week_1 6 SUPINE&amp;nbsp; 130 MINIMUM&lt;/P&gt;&lt;P&gt;5 1001 Week_2 Week_2 12 SUPINE&amp;nbsp; 133 MAXIMUM&lt;/P&gt;&lt;P&gt;6 1001 Week_1 Week_1 6 ALT 8&lt;/P&gt;&lt;P&gt;7 1001 Week_2 Week_2 12 ALT 8&lt;/P&gt;&lt;P&gt;8 1001 Week_3 Week_3 18 ALT 8&lt;/P&gt;&lt;P&gt;9 1001 Week_1 Week_1 6 ALT 8 MINIMUM&lt;/P&gt;&lt;P&gt;10 1001 Week_3 Week_3 12 ALT 8 MAXIMUM&lt;/P&gt;&lt;P&gt;11 1001 Week_1 Week_1 6 APC 5&lt;/P&gt;&lt;P&gt;12 1001 Week_1 Week_1 6 APC 5 MINIMUM&lt;/P&gt;&lt;P&gt;13 1001 Week_1 Week_1 6 APC 5 MAXIMUM&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The current code due to my lack of providing more context to the data creates the minimum line using all the data that is in the maximum line except for the aval value.&amp;nbsp;&lt;/P&gt;&lt;P&gt;So your code is creating this:&lt;/P&gt;&lt;P&gt;Row SUBJID VISIT AVISIT ADY PARAMCD AVAL DTYPE&lt;BR /&gt;1 1001 Week_1 Week_1 6 SUPINE 130&lt;BR /&gt;2 1001 Week_2 Week_2 12 SUPINE&amp;nbsp; 133&lt;/P&gt;&lt;P&gt;3 1001 Week_3 Week_3 18 SUPINE 131&lt;/P&gt;&lt;P&gt;4 1001 &lt;FONT color="#FF0000"&gt;Week_2 Week_2 12&lt;/FONT&gt; SUPINE&amp;nbsp; 130 MINIMUM&lt;/P&gt;&lt;P&gt;5 1001 Week_2 Week_2 12 SUPINE&amp;nbsp; 133 MAXIMUM&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 07 May 2020 23:03:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Outputting-records/m-p/646052#M193207</guid>
      <dc:creator>Dregerator</dc:creator>
      <dc:date>2020-05-07T23:03:13Z</dc:date>
    </item>
    <item>
      <title>Re: Outputting records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Outputting-records/m-p/646070#M193217</link>
      <description>&lt;P&gt;Please try this&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
input Row SUBJID $ VISIT $ AVISIT $  ADY PARAMCD $ AVAL ;
cards;
1 1001 Week_1 Week_1 6 SUPINE 130
2 1001 Week_2 Week_2 12 SUPINE  133
3 1001 Week_3 Week_3 18 SUPINE 131
4 1001 Week_1 Week_1 6 ALT 8
5 1001 Week_2 Week_2 12 ALT 8
6 1001 Week_3 Week_3 18 ALT 8
7 1001 Week_1 Week_1 6 APC 5
;

data want;
 do _n_=1 by 1 until(last.PARAMCD);
  set have;
  by SUBJID PARAMCD notsorted;
  if first.PARAMCD or aval&amp;lt;_min  then do;
    _minv=visit;
	_min=aval;
  end;
  if aval&amp;gt;=_max then do;
    _maxv=visit;
	_max=aval;
  end;
  output;
 end; 
 array m  _maxv _minv;
 do _n_=1 to _n_;
  set have;
  if visit in m then do;
   dtype=ifc(_minv=visit,'min','max');
   output;
  end;
 end;
 if _n_=2 then do;
  dtype='max';
  output;
 end;
 drop _:;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 08 May 2020 00:04:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Outputting-records/m-p/646070#M193217</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-05-08T00:04:29Z</dc:date>
    </item>
  </channel>
</rss>

