<?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 Dataset Transformation Problem in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Dataset-Transformation-Problem/m-p/877721#M346734</link>
    <description>&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Hi All,&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am looking for a solution to this problem using Datastep. Using SAS transform &lt;STRONG&gt;&lt;EM&gt;have&lt;/EM&gt;&lt;/STRONG&gt; dataset to &lt;STRONG&gt;&lt;EM&gt;want&lt;/EM&gt;&lt;/STRONG&gt; dataset. Output all observations with maximum price by item &lt;EM&gt;(do not remove duplicates).&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;have:&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;TABLE width="228"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;&lt;STRONG&gt;id&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;&lt;STRONG&gt;item&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;&lt;STRONG&gt;price&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Apple&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;98&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Apple&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;99&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Apple&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;100&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Apple&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;100&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Banana&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;30&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Banana&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;45&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Banana&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;48&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Orange&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;76&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Orange&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;78&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Orange&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;78&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Orange&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;83&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Orange&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;83&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;want:&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;TABLE width="228"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;&lt;STRONG&gt;id&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;&lt;STRONG&gt;item&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;&lt;STRONG&gt;price&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Apple&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;100&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Apple&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;100&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Banana&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;48&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Orange&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;83&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Orange&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;83&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Dataset code:&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Data&lt;/STRONG&gt; have;&lt;/P&gt;
&lt;P&gt;input id item $ price;&lt;/P&gt;
&lt;P&gt;datalines;&lt;/P&gt;
&lt;P&gt;1 Apple 98&lt;/P&gt;
&lt;P&gt;1 Apple 99&lt;/P&gt;
&lt;P&gt;1 Apple 100&lt;/P&gt;
&lt;P&gt;1 Apple 100&lt;/P&gt;
&lt;P&gt;2 Banana 30&lt;/P&gt;
&lt;P&gt;2 Banana 45&lt;/P&gt;
&lt;P&gt;2 Banana 48&lt;/P&gt;
&lt;P&gt;3 Orange 76&lt;/P&gt;
&lt;P&gt;3 Orange 78&lt;/P&gt;
&lt;P&gt;3 Orange 78&lt;/P&gt;
&lt;P&gt;3 Orange 83&lt;/P&gt;
&lt;P&gt;3 Orange 83&lt;/P&gt;
&lt;P&gt;;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;proc&lt;/STRONG&gt; &lt;STRONG&gt;print&lt;/STRONG&gt;; &lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Solution using:&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;U&gt;PROC SQL:&lt;/U&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;proc&lt;/STRONG&gt; &lt;STRONG&gt;sql&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;create table want as&lt;/P&gt;
&lt;P&gt;select * from have as a&lt;/P&gt;
&lt;P&gt;where id in (&lt;/P&gt;
&lt;P&gt;select id from have as b&lt;/P&gt;
&lt;P&gt;group by id&lt;/P&gt;
&lt;P&gt;having max(b.price) = a.price&lt;/P&gt;
&lt;P&gt;);&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;quit&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;proc&lt;/STRONG&gt; &lt;STRONG&gt;print&lt;/STRONG&gt;; &lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am looking for a solution using Datastep.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 26 May 2023 15:36:20 GMT</pubDate>
    <dc:creator>vijaypratap0195</dc:creator>
    <dc:date>2023-05-26T15:36:20Z</dc:date>
    <item>
      <title>Dataset Transformation Problem</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dataset-Transformation-Problem/m-p/877721#M346734</link>
      <description>&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Hi All,&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am looking for a solution to this problem using Datastep. Using SAS transform &lt;STRONG&gt;&lt;EM&gt;have&lt;/EM&gt;&lt;/STRONG&gt; dataset to &lt;STRONG&gt;&lt;EM&gt;want&lt;/EM&gt;&lt;/STRONG&gt; dataset. Output all observations with maximum price by item &lt;EM&gt;(do not remove duplicates).&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;have:&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;TABLE width="228"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;&lt;STRONG&gt;id&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;&lt;STRONG&gt;item&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;&lt;STRONG&gt;price&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Apple&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;98&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Apple&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;99&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Apple&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;100&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Apple&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;100&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Banana&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;30&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Banana&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;45&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Banana&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;48&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Orange&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;76&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Orange&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;78&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Orange&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;78&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Orange&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;83&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Orange&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;83&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;want:&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;TABLE width="228"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;&lt;STRONG&gt;id&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;&lt;STRONG&gt;item&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;&lt;STRONG&gt;price&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Apple&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;100&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Apple&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;100&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Banana&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;48&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Orange&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;83&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="76"&gt;
&lt;P&gt;3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;Orange&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="76"&gt;
&lt;P&gt;83&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Dataset code:&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Data&lt;/STRONG&gt; have;&lt;/P&gt;
&lt;P&gt;input id item $ price;&lt;/P&gt;
&lt;P&gt;datalines;&lt;/P&gt;
&lt;P&gt;1 Apple 98&lt;/P&gt;
&lt;P&gt;1 Apple 99&lt;/P&gt;
&lt;P&gt;1 Apple 100&lt;/P&gt;
&lt;P&gt;1 Apple 100&lt;/P&gt;
&lt;P&gt;2 Banana 30&lt;/P&gt;
&lt;P&gt;2 Banana 45&lt;/P&gt;
&lt;P&gt;2 Banana 48&lt;/P&gt;
&lt;P&gt;3 Orange 76&lt;/P&gt;
&lt;P&gt;3 Orange 78&lt;/P&gt;
&lt;P&gt;3 Orange 78&lt;/P&gt;
&lt;P&gt;3 Orange 83&lt;/P&gt;
&lt;P&gt;3 Orange 83&lt;/P&gt;
&lt;P&gt;;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;proc&lt;/STRONG&gt; &lt;STRONG&gt;print&lt;/STRONG&gt;; &lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Solution using:&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;U&gt;PROC SQL:&lt;/U&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;proc&lt;/STRONG&gt; &lt;STRONG&gt;sql&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;create table want as&lt;/P&gt;
&lt;P&gt;select * from have as a&lt;/P&gt;
&lt;P&gt;where id in (&lt;/P&gt;
&lt;P&gt;select id from have as b&lt;/P&gt;
&lt;P&gt;group by id&lt;/P&gt;
&lt;P&gt;having max(b.price) = a.price&lt;/P&gt;
&lt;P&gt;);&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;quit&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;proc&lt;/STRONG&gt; &lt;STRONG&gt;print&lt;/STRONG&gt;; &lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am looking for a solution using Datastep.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 26 May 2023 15:36:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dataset-Transformation-Problem/m-p/877721#M346734</guid>
      <dc:creator>vijaypratap0195</dc:creator>
      <dc:date>2023-05-26T15:36:20Z</dc:date>
    </item>
    <item>
      <title>Re: Dataset Transformation Problem</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dataset-Transformation-Problem/m-p/877728#M346739</link>
      <description>&lt;P&gt;Why a data step? "Groups of related values" really isn't the main strength of the data step. Data step is more for record by record processing.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It would likely be easier to use a Proc Sort before the data step. Note that "group by" is an implied sort behind the scenes in SQL.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 26 May 2023 16:05:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dataset-Transformation-Problem/m-p/877728#M346739</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2023-05-26T16:05:53Z</dc:date>
    </item>
    <item>
      <title>Re: Dataset Transformation Problem</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dataset-Transformation-Problem/m-p/877729#M346740</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data=have;
    by id item descending price;
run; 
data want; 
	set have;
	by id item;
	retain temp;
	if first.item then temp=price;
	if price=temp;
proc print;run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 26 May 2023 16:06:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dataset-Transformation-Problem/m-p/877729#M346740</guid>
      <dc:creator>A_Kh</dc:creator>
      <dc:date>2023-05-26T16:06:46Z</dc:date>
    </item>
    <item>
      <title>Re: Dataset Transformation Problem</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dataset-Transformation-Problem/m-p/877822#M346792</link>
      <description>&lt;P&gt;You could also use Proc Rank.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;Data have;
  input id item $ price;
  datalines;
1 Apple 98
1 Apple 99
1 Apple 100
1 Apple 100
2 Banana 30
2 Banana 45
2 Banana 48
3 Orange 76
3 Orange 78
3 Orange 78
3 Orange 83
3 Orange 83
;
proc rank data=have out=want(where=(rank=1)) ties=dense descending;
  by id;
  ranks rank;
  var price;
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-1685153166372.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/84374i9200B5BE921CD4FF/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Patrick_0-1685153166372.png" alt="Patrick_0-1685153166372.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 27 May 2023 02:06:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dataset-Transformation-Problem/m-p/877822#M346792</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2023-05-27T02:06:11Z</dc:date>
    </item>
    <item>
      <title>Re: Dataset Transformation Problem</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dataset-Transformation-Problem/m-p/877830#M346795</link>
      <description>&lt;P&gt;Use a double DO loop:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
do until (last.item);
  set have;
  by id item;
  maxprice = max(maxprice,price);
end;
do until (last.item);
  set have;
  by id item;
  if price = maxprice then output;
end;
drop maxprice;
run;
  &lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 27 May 2023 07:17:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dataset-Transformation-Problem/m-p/877830#M346795</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2023-05-27T07:17:16Z</dc:date>
    </item>
  </channel>
</rss>

