<?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: Understanding keywords: merge, keep and by in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Understanding-keywords-merge-keep-and-by/m-p/892410#M352450</link>
    <description>Thank you so much for your help and support so far!&lt;BR /&gt;&lt;BR /&gt;Here are some code that joins table together using file ref and provider code. But for Annual policies, the provider code is not unique within each file ref. So to put the tables together, I need to learn the merge command.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;PROC SQL;&lt;BR /&gt;CREATE TABLE Together AS&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;/* SELECT */&lt;BR /&gt;SELECT&lt;BR /&gt;base.*, /*take everything in the base table. Note this is not the same as SELECT *, because that takes everything*/&lt;BR /&gt;PR.'PremiumRank'n,&lt;BR /&gt;wantTop5.'avgmarkettop5'n,&lt;BR /&gt;wantTop10.'avgmarkettop10'n,&lt;BR /&gt;wantAverage.'avg'n&lt;BR /&gt;FROM WORK.QUERY_FOR_MSM_OUTPUT_0001 base&lt;BR /&gt;LEFT JOIN PremiumRank as PR on base.file_ref=PR.file_ref and base.'Provider Code'n=PR.'Provider Code'n&lt;BR /&gt;LEFT JOIN wantTop5 as five on base.file_ref=five.file_ref and base.'Provider Code'n=five.'Provider Code'n&lt;BR /&gt;LEFT JOIN wantTop10 as ten on base.file_ref=ten.file_ref and base.'Provider Code'n=ten.'Provider Code'n&lt;BR /&gt;LEFT JOIN wantAverage as average on base.file_ref=average.file_ref and base.'Provider Code'n=average.'Provider Code'n;&lt;BR /&gt;&lt;BR /&gt;run;</description>
    <pubDate>Sat, 02 Sep 2023 11:53:42 GMT</pubDate>
    <dc:creator>actuarial</dc:creator>
    <dc:date>2023-09-02T11:53:42Z</dc:date>
    <item>
      <title>Understanding keywords: merge, keep and by</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Understanding-keywords-merge-keep-and-by/m-p/892408#M352448</link>
      <description />
      <pubDate>Mon, 04 Sep 2023 12:06:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Understanding-keywords-merge-keep-and-by/m-p/892408#M352448</guid>
      <dc:creator>actuarial</dc:creator>
      <dc:date>2023-09-04T12:06:48Z</dc:date>
    </item>
    <item>
      <title>Re: Understanding keywords: merge, keep and by</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Understanding-keywords-merge-keep-and-by/m-p/892409#M352449</link>
      <description>&lt;P&gt;PROC SUMMARY computes averages (and many other statistics, if requested) and stores the result in a SAS data set.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The MERGE command in the data step combines two different SAS data sets, side-by-side, so now the original data, and the averages computed by PROC SUMMARY are both in a single new data step. The BY statement causes this merge operation to be done file_ref by file_ref.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To get the WantTop5 and WantTop10 in the same data set, you MERGE the two data sets.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;_TYPE_ is created by PROC SUMMARY, and I wouldn't worry about _TYPE_ at this point, it is irrelevant to this problem.&lt;/P&gt;</description>
      <pubDate>Sat, 02 Sep 2023 11:51:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Understanding-keywords-merge-keep-and-by/m-p/892409#M352449</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2023-09-02T11:51:48Z</dc:date>
    </item>
    <item>
      <title>Re: Understanding keywords: merge, keep and by</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Understanding-keywords-merge-keep-and-by/m-p/892410#M352450</link>
      <description>Thank you so much for your help and support so far!&lt;BR /&gt;&lt;BR /&gt;Here are some code that joins table together using file ref and provider code. But for Annual policies, the provider code is not unique within each file ref. So to put the tables together, I need to learn the merge command.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;PROC SQL;&lt;BR /&gt;CREATE TABLE Together AS&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;/* SELECT */&lt;BR /&gt;SELECT&lt;BR /&gt;base.*, /*take everything in the base table. Note this is not the same as SELECT *, because that takes everything*/&lt;BR /&gt;PR.'PremiumRank'n,&lt;BR /&gt;wantTop5.'avgmarkettop5'n,&lt;BR /&gt;wantTop10.'avgmarkettop10'n,&lt;BR /&gt;wantAverage.'avg'n&lt;BR /&gt;FROM WORK.QUERY_FOR_MSM_OUTPUT_0001 base&lt;BR /&gt;LEFT JOIN PremiumRank as PR on base.file_ref=PR.file_ref and base.'Provider Code'n=PR.'Provider Code'n&lt;BR /&gt;LEFT JOIN wantTop5 as five on base.file_ref=five.file_ref and base.'Provider Code'n=five.'Provider Code'n&lt;BR /&gt;LEFT JOIN wantTop10 as ten on base.file_ref=ten.file_ref and base.'Provider Code'n=ten.'Provider Code'n&lt;BR /&gt;LEFT JOIN wantAverage as average on base.file_ref=average.file_ref and base.'Provider Code'n=average.'Provider Code'n;&lt;BR /&gt;&lt;BR /&gt;run;</description>
      <pubDate>Sat, 02 Sep 2023 11:53:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Understanding-keywords-merge-keep-and-by/m-p/892410#M352450</guid>
      <dc:creator>actuarial</dc:creator>
      <dc:date>2023-09-02T11:53:42Z</dc:date>
    </item>
    <item>
      <title>Re: Understanding keywords: merge, keep and by</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Understanding-keywords-merge-keep-and-by/m-p/892412#M352451</link>
      <description>&lt;P&gt;Is there a resource you can point me to, to get results like the following table, please?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Premium&lt;/TD&gt;&lt;TD&gt;Rank for Variable Premium&lt;/TD&gt;&lt;TD&gt;avgmarkettop5&lt;/TD&gt;&lt;TD&gt;avgmarkettop10&lt;/TD&gt;&lt;TD&gt;avg&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;13.5&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;14.17&lt;/TD&gt;&lt;TD&gt;15.36&lt;/TD&gt;&lt;TD&gt;37.22259&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;13.8&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;14.17&lt;/TD&gt;&lt;TD&gt;15.36&lt;/TD&gt;&lt;TD&gt;37.22259&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;13.84&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;14.17&lt;/TD&gt;&lt;TD&gt;15.36&lt;/TD&gt;&lt;TD&gt;37.22259&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;14.71&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;14.17&lt;/TD&gt;&lt;TD&gt;15.36&lt;/TD&gt;&lt;TD&gt;37.22259&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;14.17&lt;/TD&gt;&lt;TD&gt;15.36&lt;/TD&gt;&lt;TD&gt;37.22259&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Sat, 02 Sep 2023 12:03:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Understanding-keywords-merge-keep-and-by/m-p/892412#M352451</guid>
      <dc:creator>actuarial</dc:creator>
      <dc:date>2023-09-02T12:03:34Z</dc:date>
    </item>
    <item>
      <title>Re: Understanding keywords: merge, keep and by</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Understanding-keywords-merge-keep-and-by/m-p/892414#M352452</link>
      <description>&lt;P&gt;Another problem: Is it possible to get the average market 6 to 10?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tried:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data=PremiumRank(where=(6&amp;lt;=premiumrank&amp;lt;=10))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;but the SAS did not understand?&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Premium&lt;/TD&gt;&lt;TD&gt;Rank&lt;/TD&gt;&lt;TD&gt;Avg Market Top 5&lt;/TD&gt;&lt;TD&gt;Avg Market Top 10&lt;/TD&gt;&lt;TD&gt;Avg Market 6-10&lt;/TD&gt;&lt;TD&gt;Avg Market&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;10.26&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;12.876&lt;/TD&gt;&lt;TD&gt;15.9&lt;/TD&gt;&lt;TD&gt;18.924&lt;/TD&gt;&lt;TD&gt;31.73816667&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;11.4&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;12.876&lt;/TD&gt;&lt;TD&gt;15.9&lt;/TD&gt;&lt;TD&gt;18.924&lt;/TD&gt;&lt;TD&gt;31.73816667&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;12.71&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;12.876&lt;/TD&gt;&lt;TD&gt;15.9&lt;/TD&gt;&lt;TD&gt;18.924&lt;/TD&gt;&lt;TD&gt;31.73816667&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;13.35&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;12.876&lt;/TD&gt;&lt;TD&gt;15.9&lt;/TD&gt;&lt;TD&gt;18.924&lt;/TD&gt;&lt;TD&gt;31.73816667&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;16.66&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;12.876&lt;/TD&gt;&lt;TD&gt;15.9&lt;/TD&gt;&lt;TD&gt;18.924&lt;/TD&gt;&lt;TD&gt;31.73816667&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Sat, 02 Sep 2023 12:13:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Understanding-keywords-merge-keep-and-by/m-p/892414#M352452</guid>
      <dc:creator>actuarial</dc:creator>
      <dc:date>2023-09-02T12:13:49Z</dc:date>
    </item>
    <item>
      <title>Re: Understanding keywords: merge, keep and by</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Understanding-keywords-merge-keep-and-by/m-p/892415#M352453</link>
      <description>This does seem to work. But how to put everything together?</description>
      <pubDate>Sat, 02 Sep 2023 12:23:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Understanding-keywords-merge-keep-and-by/m-p/892415#M352453</guid>
      <dc:creator>actuarial</dc:creator>
      <dc:date>2023-09-02T12:23:25Z</dc:date>
    </item>
    <item>
      <title>Re: Understanding keywords: merge, keep and by</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Understanding-keywords-merge-keep-and-by/m-p/892424#M352456</link>
      <description>&lt;P&gt;I have the answer to my own question. Thank you for letting me figuring out how to code myself.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;data work.QUERY_FOR_MSM_OUTPUT_0003 ;
  infile datalines dsd dlm='|' truncover;
  input File_Ref :$72. "Provider Code"N Premium ;
  format File_Ref $char72. "Provider Code"N best4. ;
  informat File_Ref $char72. "Provider Code"N best4. ;
datalines4;
Input_file_20230901T230451_208|1046|134.8
Input_file_20230901T230451_208|41|166.08
Input_file_20230901T230451_208|1008|175.26
Input_file_20230901T230451_208|1046|184.91
Input_file_20230901T230451_208|1005|186.25
Input_file_20230901T230451_208|1053|187.91
Input_file_20230901T230451_208|1024|195.57
Input_file_20230901T230451_208|87|196.98
Input_file_20230901T230451_208|1025|200.4
Input_file_20230901T230451_208|1010|208.4
Input_file_20230901T230451_208|1008|237.36
Input_file_20230901T230451_208|1005|245.25
Input_file_20230901T230451_208|1024|245.33
Input_file_20230901T230451_208|41|248.51
Input_file_20230901T230451_208|2|253.04
Input_file_20230901T230451_208|87|254.18
Input_file_20230901T230451_208|1059|257.75
Input_file_20230901T230451_208|1010|261.09
Input_file_20230901T230451_208|1046|272.67
Input_file_20230901T230451_208|1053|273.18
;;;;


/*create the premium ranking*/
proc rank data=WORK.QUERY_FOR_MSM_OUTPUT_0003 out=PremiumRank ties=low;
	by File_Ref;
	var 'Premium'n;
	ranks PremiumRank;
run;


/*code for top 5*/
proc summary data=PremiumRank(where=(premiumrank&amp;lt;=5)) nway;
	by file_ref;
	var premium;
	output out=average5 mean=avgmarkettop5;
run;


data wantTop5;
	merge PremiumRank average5(keep=file_ref avgmarkettop5);
	by file_ref;
run;

/*code for top 10*/
proc summary data=PremiumRank(where=(premiumrank&amp;lt;=10)) nway;
	by file_ref;
	var premium;
	output out=average10 mean=avgmarkettop10;
run;

data wantTop10;
	merge wantTop5 average10(keep=file_ref avgmarkettop10);
	by file_ref;
run;


/*code for top 6 to 10*/

proc summary data=PremiumRank(where=(6&amp;lt;=premiumrank&amp;lt;=10)) nway;
	by file_ref;
	var premium;
	output out=average6to10 mean=avgmarket6TO10;
run;

data wantTop6to10;
	merge wantTop10 average6to10(keep=file_ref avgmarket6TO10);
	by file_ref;
run;

/*code for overall average*/


proc summary data=PremiumRank nway;
	by file_ref;
	var premium;
	output out=average mean=avg;
run;

data wantAVG;
	merge wantTop6to10 average(keep=file_ref avg);
	by file_ref;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 02 Sep 2023 12:56:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Understanding-keywords-merge-keep-and-by/m-p/892424#M352456</guid>
      <dc:creator>actuarial</dc:creator>
      <dc:date>2023-09-02T12:56:18Z</dc:date>
    </item>
    <item>
      <title>Re: Understanding keywords: merge, keep and by</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Understanding-keywords-merge-keep-and-by/m-p/892430#M352457</link>
      <description>&lt;P&gt;Combining the three data sets is a single merge in a data step.&lt;/P&gt;</description>
      <pubDate>Sat, 02 Sep 2023 13:33:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Understanding-keywords-merge-keep-and-by/m-p/892430#M352457</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2023-09-02T13:33:56Z</dc:date>
    </item>
  </channel>
</rss>

