<?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: proc sort nodupkey equivalent proc sql in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/proc-sort-nodupkey-equivalent-proc-sql/m-p/47869#M12897</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi guys, I dont know about using the proc qsl for the structure I wanted:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort nodupkey&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc frequency&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc transpose&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I understand it looks like more code programming, but it is more intuitive to me &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks anyway for the discussion.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 29 Mar 2012 22:34:43 GMT</pubDate>
    <dc:creator>michtka</dc:creator>
    <dc:date>2012-03-29T22:34:43Z</dc:date>
    <item>
      <title>proc sort nodupkey equivalent proc sql</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/proc-sort-nodupkey-equivalent-proc-sql/m-p/47862#M12890</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi guys, &lt;/P&gt;&lt;P&gt;there some equivalentt to proc sort nodupkey using proc sql?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example, if I want to remove the next record of a dataset (have):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;subjid prefterm treat day_start_study&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drug1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; placebo&amp;nbsp;&amp;nbsp; -1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drug2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; placebo&amp;nbsp;&amp;nbsp;&amp;nbsp; -12&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drug2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; placebo&amp;nbsp;&amp;nbsp; -12&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drug2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; placebo&amp;nbsp;&amp;nbsp; -11&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;to remove the duplicate record number 3, I use:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=have out=want nodupkey;&lt;/P&gt;&lt;P&gt;by subjid prefterm treat day_start_study;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drug1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; placebo&amp;nbsp;&amp;nbsp; -1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drug2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; placebo&amp;nbsp;&amp;nbsp;&amp;nbsp; -12&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drug2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; placebo&amp;nbsp;&amp;nbsp; -11&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now , using proc freq I obtain the frequency of the prefterm by treat:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc freq data=want noprint;&lt;/P&gt;&lt;P&gt;tables treat*prefterm/ out=wantf (drop=percent);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;dataset wantf:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; treat&amp;nbsp;&amp;nbsp; prefterm&amp;nbsp; count&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;placebo&amp;nbsp; drug1&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;placebo drug2&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and using proc transpose:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc transpose data=wantf out=wantft;&lt;/P&gt;&lt;P&gt;by prefterm;&lt;/P&gt;&lt;P&gt;id treat;&lt;/P&gt;&lt;P&gt;var count;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I obtain the dataset wantft:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;prefterm&amp;nbsp;&amp;nbsp; placebo&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;drug1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;drug2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can anyone do it using proc sql?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;J V&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Mar 2012 00:54:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/proc-sort-nodupkey-equivalent-proc-sql/m-p/47862#M12890</guid>
      <dc:creator>michtka</dc:creator>
      <dc:date>2012-03-29T00:54:48Z</dc:date>
    </item>
    <item>
      <title>Re: proc sort nodupkey equivalent proc sql</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/proc-sort-nodupkey-equivalent-proc-sql/m-p/47863#M12891</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code"&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt; input subjid (prefterm treat) ($) day_start_study;&lt;/P&gt;&lt;P&gt; cards;&lt;/P&gt;&lt;P&gt;1 drug1 placebo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-1&lt;/P&gt;&lt;P&gt;2 drug2 placebo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-12&lt;/P&gt;&lt;P&gt;2 drug2 placebo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-12&lt;/P&gt;&lt;P&gt;3 drug2 placebo -11&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt; /* proc sort data=have out=_have nodupkey; by &lt;SPAN style="font-family: monospace; white-space: pre; background-color: #ffffff;"&gt;subjid prefterm treat day_start_study; run; */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt; create view _have as&lt;/P&gt;&lt;P&gt; select subjid,prefterm,treat,day_start_study,count(*)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; from have&lt;/P&gt;&lt;P&gt;&amp;nbsp; group by subjid,prefterm,treat,day_start_study;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; select distinct cat('sum(treat="',treat,'") as ',treat)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; into :treat_counts separated by ', '&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; from have;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; select prefterm,&amp;amp;treat_counts&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; from _have&lt;/P&gt;&lt;P&gt;&amp;nbsp; group by prefterm;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;prefterm&amp;nbsp;&amp;nbsp; placebo&lt;/P&gt;&lt;P&gt;ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ&lt;/P&gt;&lt;P&gt;drug1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;drug2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Mar 2012 01:08:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/proc-sort-nodupkey-equivalent-proc-sql/m-p/47863#M12891</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2012-03-29T01:08:13Z</dc:date>
    </item>
    <item>
      <title>Re: proc sort nodupkey equivalent proc sql</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/proc-sort-nodupkey-equivalent-proc-sql/m-p/47864#M12892</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you very much, &lt;/P&gt;&lt;P&gt;it works perfectly, but I find it bit complex, still thinking of keep going with proc sort nodupkey&lt;/P&gt;&lt;P&gt;until i understand more proc sql.&lt;/P&gt;&lt;P&gt;Regards.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Mar 2012 01:44:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/proc-sort-nodupkey-equivalent-proc-sql/m-p/47864#M12892</guid>
      <dc:creator>michtka</dc:creator>
      <dc:date>2012-03-29T01:44:30Z</dc:date>
    </item>
    <item>
      <title>Re: proc sort nodupkey equivalent proc sql</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/proc-sort-nodupkey-equivalent-proc-sql/m-p/47865#M12893</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;CODE class="jive-code"&gt;/* proc sort data=have out=_have nodupkey; by subjid prefterm treat day_start_study; run; */&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;equivalent to:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&lt;CODE class="jive-code"&gt; create view _have as&lt;BR /&gt; select subjid,prefterm,treat,day_start_study,count(*)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; from have&lt;BR /&gt;&amp;nbsp; group by subjid,prefterm,treat,day_start_study;&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Mar 2012 02:02:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/proc-sort-nodupkey-equivalent-proc-sql/m-p/47865#M12893</guid>
      <dc:creator>michtka</dc:creator>
      <dc:date>2012-03-29T02:02:54Z</dc:date>
    </item>
    <item>
      <title>Re: proc sort nodupkey equivalent proc sql</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/proc-sort-nodupkey-equivalent-proc-sql/m-p/47866#M12894</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;SQL is more succinct .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;data have;
 input subjid (prefterm treat) ($) day_start_study;
 cards;
1 drug1 placebo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -1
2 drug2 placebo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -12
2 drug2 placebo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -12
3 drug2 placebo -11
;
run;
proc sql;
 select prefterm,count(treat='placebo') as placebo
&amp;nbsp; from (select distinct * from have)
&amp;nbsp;&amp;nbsp; group by prefterm ;
quit;

&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Mar 2012 04:02:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/proc-sort-nodupkey-equivalent-proc-sql/m-p/47866#M12894</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2012-03-29T04:02:13Z</dc:date>
    </item>
    <item>
      <title>proc sort nodupkey equivalent proc sql</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/proc-sort-nodupkey-equivalent-proc-sql/m-p/47867#M12895</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;KSharp,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good point, select distinct * will provide the same results.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your count function needs to be a sum though.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; select prefterm,sum(treat='placebo') as placebo&lt;/P&gt;&lt;P&gt;&amp;nbsp; from (select distinct * from have)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; group by prefterm ;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Mar 2012 05:20:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/proc-sort-nodupkey-equivalent-proc-sql/m-p/47867#M12895</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2012-03-29T05:20:35Z</dc:date>
    </item>
    <item>
      <title>proc sort nodupkey equivalent proc sql</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/proc-sort-nodupkey-equivalent-proc-sql/m-p/47868#M12896</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Opps.&lt;/P&gt;&lt;P&gt;It is my typo. Thank you Matt to point out.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Mar 2012 07:03:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/proc-sort-nodupkey-equivalent-proc-sql/m-p/47868#M12896</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2012-03-29T07:03:45Z</dc:date>
    </item>
    <item>
      <title>Re: proc sort nodupkey equivalent proc sql</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/proc-sort-nodupkey-equivalent-proc-sql/m-p/47869#M12897</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi guys, I dont know about using the proc qsl for the structure I wanted:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort nodupkey&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc frequency&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc transpose&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I understand it looks like more code programming, but it is more intuitive to me &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks anyway for the discussion.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Mar 2012 22:34:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/proc-sort-nodupkey-equivalent-proc-sql/m-p/47869#M12897</guid>
      <dc:creator>michtka</dc:creator>
      <dc:date>2012-03-29T22:34:43Z</dc:date>
    </item>
  </channel>
</rss>

