<?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: two-dimensional clustering in SAS in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/two-dimensional-clustering-in-SAS/m-p/362792#M85745</link>
    <description>&lt;P&gt;After you run the macro,&amp;nbsp;submit&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc print data=results; 
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Tue, 30 May 2017 16:55:05 GMT</pubDate>
    <dc:creator>Rick_SAS</dc:creator>
    <dc:date>2017-05-30T16:55:05Z</dc:date>
    <item>
      <title>two-dimensional clustering in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/two-dimensional-clustering-in-SAS/m-p/362561#M85662</link>
      <description>&lt;P&gt;Dear,&lt;BR /&gt;&lt;BR /&gt;Im relatively new to SAS and I'm experiencing some problems with a two-way clustering I have to do for my panel data. Since this option is available by default, I'm using someone's macro that I found on this website:&amp;nbsp;&lt;A href="https://sites.google.com/site/markshuaima/home/two-way-clustered-standard-errors-and-sas-code" target="_blank"&gt;https://sites.google.com/site/markshuaima/home/two-way-clustered-standard-errors-and-sas-code&lt;/A&gt;. I saw this website being referred to in a previous post. This is my log:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;1 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: ODS statements in the SAS Studio environment may disable some output features.&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;62&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;63 /* Generated Code (IMPORT) */&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;64 /* Source File: spss data panelregr.sav */&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;65 /* Source Path: /home/poulsinghps0/finale SAS */&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;66 /* Code generated on: 29/05/2017 23:00 */&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;67&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;68 %web_drop_table(WORK.paneltwowaycluster2);&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(WEB_DROP_TABLE): Beginning execution.&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(WEB_DROP_TABLE): %LET (variable name is NUM)&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(WEB_DROP_TABLE): %LET (variable name is STEPNEEDED)&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(WEB_DROP_TABLE): %LET (variable name is STEPSTARTED)&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(WEB_DROP_TABLE): %LET (variable name is DSNAME)&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(WEB_DROP_TABLE): %DO %WHILE(&amp;amp;dsname ne) loop beginning; condition is TRUE.&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(WEB_DROP_TABLE): %IF condition %sysfunc(exist(&amp;amp;dsname)) is TRUE&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(WEB_DROP_TABLE): %LET (variable name is STEPNEEDED)&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(WEB_DROP_TABLE): %IF condition (&amp;amp;stepstarted eq 0) is TRUE&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(WEB_DROP_TABLE): %LET (variable name is STEPSTARTED)&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: Table WORK.PANELTWOWAYCLUSTER2 has been dropped.&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(WEB_DROP_TABLE): %IF condition %sysfunc(exist(&amp;amp;dsname,view)) is FALSE&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(WEB_DROP_TABLE): %LET (variable name is NUM)&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(WEB_DROP_TABLE): %LET (variable name is DSNAME)&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(WEB_DROP_TABLE): %DO %WHILE() condition is FALSE; loop will not iterate again.&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(WEB_DROP_TABLE): %IF condition &amp;amp;stepstarted is TRUE&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: PROCEDURE SQL used (Total process time):&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;real time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;user cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;system cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;memory 41.93k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;OS Memory 31392.00k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Timestamp 29/05/2017 09:29:28 PM&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Step Count 197 Switch Count 30&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Faults 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Reclaims 15&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Swaps 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Voluntary Context Switches 66&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Involuntary Context Switches 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Input Operations 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Output Operations 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(WEB_DROP_TABLE): Ending execution.&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;69&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;70&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;71 FILENAME REFFILE '/home/poulsinghps0/finale SAS/spss data panelregr.sav';&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;72&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;73 PROC IMPORT DATAFILE=REFFILE&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;74 DBMS=SAV&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;75 OUT=WORK.paneltwowaycluster2;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;76 RUN;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The import data set has 5170 observations and 59 variables.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: WORK.PANELTWOWAYCLUSTER2 data set was successfully created.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: PROCEDURE IMPORT used (Total process time):&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;real time 0.01 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;user cpu time 0.01 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;system cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;memory 1967.93k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;OS Memory 32932.00k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Timestamp 29/05/2017 09:29:28 PM&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Step Count 198 Switch Count 40&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Faults 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Reclaims 278&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Swaps 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Voluntary Context Switches 92&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Involuntary Context Switches 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Input Operations 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Output Operations 4872&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;77&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;78 %MACRO REG2DSE(y, x, firm, time, multi, dataset, output);&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;79&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;80 proc surveyreg data=work.paneltwowaycluster2;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;81 cluster id;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;82 model tevpa = indevolatiliteitpa ETF1 ETF2 ETF3 etf4 etf5 etf6 etf7 etf8 etf9 etf10 etf11 etf12 etf13 etf14 etf15 etf16&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;82 ! etf17 etf18 etf19 etf20 etf21 etf22 etf23 etf24 etf25 etf26 etf27 etf28 etf29 etf30 etf31 etf32 etf33 etf34 etf35 etf36&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;82 ! etf37 etf38 etf39 etf40 etf41 etf42 etf43 etf44 etf45 etf46 etf47 /covb ;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;83 ods output covb=firm;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;84 ods output FitStatistics=fit;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;85 run;quit;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;86&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;87&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;88 proc surveyreg data=work.paneltwowaycluster2;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;89 cluster t;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;90 model tevpa = indevolatiliteitpa ETF1 ETF2 ETF3 etf4 etf5 etf6 etf7 etf8 etf9 etf10 etf11 etf12 etf13 etf14 etf15 etf16&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;90 ! etf17 etf18 etf19 etf20 etf21 etf22 etf23 etf24 etf25 etf26 etf27 etf28 etf29 etf30 etf31 etf32 etf33 etf34 etf35 etf36&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;90 ! etf37 etf38 etf39 etf40 etf41 etf42 etf43 etf44 etf45 etf46 etf47 /covb ;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;91 ods output covb=time;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;92 run;quit;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;93&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;94 %if 0=1 %then %do;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;95&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;96 proc surveyreg data=work.paneltwowaycluster2;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;97 cluster t id;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;98 model tevpa = indevolatiliteitpa ETF1 ETF2 ETF3 etf4 etf5 etf6 etf7 etf8 etf9 etf10 etf11 etf12 etf13 etf14 etf15 etf16&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;98 ! etf17 etf18 etf19 etf20 etf21 etf22 etf23 etf24 etf25 etf26 etf27 etf28 etf29 etf30 etf31 etf32 etf33 etf34 etf35 etf36&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;98 ! etf37 etf38 etf39 etf40 etf41 etf42 etf43 etf44 etf45 etf46 etf47 / covb;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;99 ods output covb=both ;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;100 ods output parameterestimates=parm;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;101 run;quit;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;102&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;103 data parm; set parm;keep parameter estimate;run;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;104&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;105 %end;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;106&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;107&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;108 %else %if 0=0 %then %do;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;109&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;110 proc reg data=work.paneltwowaycluster2;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;111 model tevpa = indevolatiliteitpa ETF1 ETF2 ETF3 etf4 etf5 etf6 etf7 etf8 etf9 etf10 etf11 etf12 etf13 etf14 etf15 etf16&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;111 ! etf17 etf18 etf19 etf20 etf21 etf22 etf23 etf24 etf25 etf26 etf27 etf28 etf29 etf30 etf31 etf32 etf33 etf34 etf35 etf36&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;111 ! etf37 etf38 etf39 etf40 etf41 etf42 etf43 etf44 etf45 etf46 etf47 /hcc acov covb;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;112 ods output acovest=both ;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;113 ods output parameterestimates=parm;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;114 run;quit;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;115&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;116 data both; set both; parameter=Variable; run;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;117&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;118 data both; set both;drop variable Dependent Model;run;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;119&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;120 data parm; set parm;parameter=Variable;Estimates=Estimate;keep parameter estimates;run;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;121&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;122 %end;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;123&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;124 data parm1; set parm;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;125 n=_n_;m=1;keep m n;run;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;126&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;127 data parm1;set parm1;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;128 by m;if last.m;keep n;run;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;129&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;130 data both; set both;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;131 keep indevolatiliteitpa ETF1 ETF2 ETF3 etf4 etf5 etf6 etf7 etf8 etf9 etf10 etf11 etf12 etf13 etf14 etf15 etf16 etf17&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;131 ! etf18 etf19 etf20 etf21 etf22 etf23 etf24 etf25 etf26 etf27 etf28 etf29 etf30 etf31 etf32 etf33 etf34 etf35 etf36 etf37&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;131 ! etf38 etf39 etf40 etf41 etf42 etf43 etf44 etf45 etf46 etf47;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;132 run;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;133 data firm; set firm;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;134 keep indevolatiliteitpa ETF1 ETF2 ETF3 etf4 etf5 etf6 etf7 etf8 etf9 etf10 etf11 etf12 etf13 etf14 etf15 etf16 etf17&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;134 ! etf18 etf19 etf20 etf21 etf22 etf23 etf24 etf25 etf26 etf27 etf28 etf29 etf30 etf31 etf32 etf33 etf34 etf35 etf36 etf37&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;134 ! etf38 etf39 etf40 etf41 etf42 etf43 etf44 etf45 etf46 etf47;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;135 run;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;136 data time; set time;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;137 keep indevolatiliteitpa ETF1 ETF2 ETF3 etf4 etf5 etf6 etf7 etf8 etf9 etf10 etf11 etf12 etf13 etf14 etf15 etf16 etf17&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;137 ! etf18 etf19 etf20 etf21 etf22 etf23 etf24 etf25 etf26 etf27 etf28 etf29 etf30 etf31 etf32 etf33 etf34 etf35 etf36 etf37&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;137 ! etf38 etf39 etf40 etf41 etf42 etf43 etf44 etf45 etf46 etf47;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;138 run;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;139&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;140 data fit1; set fit;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;141 parameter=Label1;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;142 Estimates=nValue1;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;143 if parameter="R-square" then output;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;144 run;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;145&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;146 data fit1; set fit1;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;147 n=1;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;148 keep parameter Estimates n;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;149 run;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;150 proc iml;use both;read all var _num_ into Z;print Z;use firm;read all var _num_ into X;print X;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;151 use time;read all var _num_ into Y;print Y;use parm1;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;152 read all var _num_ into n;print n;B=X+Y-Z;C=I(n);D=J(n,1);E=C#B;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;153 F=E*D;G=F##.5;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;154 print B;print G;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;155 create b from G [colname='stderr']; append from G;quit;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;156&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;157 data results; merge parm B ;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;158 tstat=estimates/stderr;n=0;run;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;159&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;160 data resultsfit; merge results fit1;by n;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;161 run;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;162&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;163 data &amp;amp;output; set resultsfit;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;164 drop n;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;165 run;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;166&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;167 %MEND REG2DSE;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;168 %REG2DSE(y=DV, x=INDV, firm=firmid, time=timeid, multi=0, dataset=A.data, output=A.results);&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(REG2DSE): Beginning execution.&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(REG2DSE): Parameter Y has value DV&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(REG2DSE): Parameter X has value INDV&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(REG2DSE): Parameter FIRM has value firmid&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(REG2DSE): Parameter TIME has value timeid&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(REG2DSE): Parameter MULTI has value 0&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(REG2DSE): Parameter DATASET has value A.data&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(REG2DSE): Parameter OUTPUT has value A.results&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The data set WORK.FIT has 3 observations and 3 variables.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The data set WORK.FIRM has 49 observations and 50 variables.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: PROCEDURE SURVEYREG used (Total process time):&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;real time 1.21 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;user cpu time 1.20 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;system cpu time 0.02 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;memory 11345.56k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;OS Memory 40560.00k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Timestamp 29/05/2017 09:29:29 PM&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Step Count 199 Switch Count 28&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Faults 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Reclaims 1998&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Swaps 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Voluntary Context Switches 72&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Involuntary Context Switches 5&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Input Operations 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Output Operations 1080&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The data set WORK.TIME has 49 observations and 50 variables.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: PROCEDURE SURVEYREG used (Total process time):&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;real time 1.19 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;user cpu time 1.19 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;system cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;memory 5685.87k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;OS Memory 41672.00k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Timestamp 29/05/2017 09:29:30 PM&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Step Count 200 Switch Count 24&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Faults 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Reclaims 788&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Swaps 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Voluntary Context Switches 48&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Involuntary Context Switches 2&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Input Operations 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Output Operations 920&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(REG2DSE): %IF condition 0=1 is FALSE&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(REG2DSE): %IF condition 0=0 is TRUE&lt;/DIV&gt;&lt;DIV class="sasWarning"&gt;WARNING: ODS graphics with more than 5000 points have been suppressed. Use the PLOTS(MAXPOINTS= ) option in the PROC REG statement&lt;/DIV&gt;&lt;DIV class="sasWarning"&gt;to change or override the cutoff.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The data set WORK.PARM has 49 observations and 13 variables.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The data set WORK.BOTH has 48 observations and 52 variables.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: PROCEDURE REG used (Total process time):&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;real time 2.20 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;user cpu time 2.18 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;system cpu time 0.02 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;memory 7661.12k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;OS Memory 44996.00k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Timestamp 29/05/2017 09:29:33 PM&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Step Count 201 Switch Count 37&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Faults 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Reclaims 1288&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Swaps 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Voluntary Context Switches 99&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Involuntary Context Switches 5&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Input Operations 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Output Operations 7296&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: There were 48 observations read from the data set WORK.BOTH.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The data set WORK.BOTH has 48 observations and 53 variables.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: DATA statement used (Total process time):&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;real time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;user cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;system cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;memory 1085.31k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;OS Memory 39336.00k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Timestamp 29/05/2017 09:29:33 PM&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Step Count 202 Switch Count 20&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Faults 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Reclaims 285&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Swaps 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Voluntary Context Switches 32&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Involuntary Context Switches 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Input Operations 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Output Operations 264&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: There were 48 observations read from the data set WORK.BOTH.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The data set WORK.BOTH has 48 observations and 50 variables.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: DATA statement used (Total process time):&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;real time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;user cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;system cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;memory 1068.81k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;OS Memory 39336.00k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Timestamp 29/05/2017 09:29:33 PM&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Step Count 203 Switch Count 22&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Faults 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Reclaims 286&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Swaps 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Voluntary Context Switches 34&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Involuntary Context Switches 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Input Operations 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Output Operations 264&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: There were 49 observations read from the data set WORK.PARM.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The data set WORK.PARM has 49 observations and 2 variables.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: DATA statement used (Total process time):&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;real time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;user cpu time 0.01 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;system cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;memory 1063.00k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;OS Memory 39336.00k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Timestamp 29/05/2017 09:29:33 PM&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Step Count 204 Switch Count 24&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Faults 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Reclaims 286&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Swaps 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Voluntary Context Switches 27&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Involuntary Context Switches 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Input Operations 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Output Operations 264&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: There were 49 observations read from the data set WORK.PARM.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The data set WORK.PARM1 has 49 observations and 2 variables.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: DATA statement used (Total process time):&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;real time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;user cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;system cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;memory 1057.31k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;OS Memory 39336.00k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Timestamp 29/05/2017 09:29:33 PM&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Step Count 205 Switch Count 22&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Faults 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Reclaims 288&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Swaps 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Voluntary Context Switches 35&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Involuntary Context Switches 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Input Operations 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Output Operations 264&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: There were 49 observations read from the data set WORK.PARM1.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The data set WORK.PARM1 has 1 observations and 1 variables.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: DATA statement used (Total process time):&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;real time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;user cpu time 0.01 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;system cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;memory 1052.78k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;OS Memory 39336.00k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Timestamp 29/05/2017 09:29:33 PM&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Step Count 206 Switch Count 20&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Faults 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Reclaims 283&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Swaps 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Voluntary Context Switches 26&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Involuntary Context Switches 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Input Operations 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Output Operations 264&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasWarning"&gt;WARNING: The variable etf47 in the DROP, KEEP, or RENAME list has never been referenced.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: There were 48 observations read from the data set WORK.BOTH.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The data set WORK.BOTH has 48 observations and 47 variables.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: DATA statement used (Total process time):&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;real time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;user cpu time 0.01 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;system cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;memory 1079.50k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;OS Memory 39336.00k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Timestamp 29/05/2017 09:29:33 PM&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Step Count 207 Switch Count 28&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Faults 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Reclaims 284&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Swaps 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Voluntary Context Switches 42&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Involuntary Context Switches 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Input Operations 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Output Operations 264&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: There were 49 observations read from the data set WORK.FIRM.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The data set WORK.FIRM has 49 observations and 48 variables.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: DATA statement used (Total process time):&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;real time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;user cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;system cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;memory 1079.81k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;OS Memory 39336.00k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Timestamp 29/05/2017 09:29:33 PM&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Step Count 208 Switch Count 22&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Faults 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Reclaims 284&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Swaps 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Voluntary Context Switches 34&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Involuntary Context Switches 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Input Operations 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Output Operations 264&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: There were 49 observations read from the data set WORK.TIME.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The data set WORK.TIME has 49 observations and 48 variables.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: DATA statement used (Total process time):&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;real time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;user cpu time 0.01 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;system cpu time 0.01 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;memory 1079.90k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;OS Memory 39336.00k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Timestamp 29/05/2017 09:29:33 PM&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Step Count 209 Switch Count 22&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Faults 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Reclaims 282&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Swaps 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Voluntary Context Switches 34&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Involuntary Context Switches 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Input Operations 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Output Operations 264&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: There were 3 observations read from the data set WORK.FIT.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The data set WORK.FIT1 has 0 observations and 5 variables.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: DATA statement used (Total process time):&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;real time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;user cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;system cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;memory 1071.87k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;OS Memory 39336.00k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Timestamp 29/05/2017 09:29:33 PM&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Step Count 210 Switch Count 24&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Faults 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Reclaims 286&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Swaps 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Voluntary Context Switches 27&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Involuntary Context Switches 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Input Operations 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Output Operations 264&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: There were 0 observations read from the data set WORK.FIT1.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The data set WORK.FIT1 has 0 observations and 3 variables.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: DATA statement used (Total process time):&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;real time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;user cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;system cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;memory 1058.09k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;OS Memory 39336.00k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Timestamp 29/05/2017 09:29:33 PM&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Step Count 211 Switch Count 20&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Faults 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Reclaims 286&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Swaps 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Voluntary Context Switches 26&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Involuntary Context Switches 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Input Operations 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Output Operations 264&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: IML Ready&lt;/DIV&gt;&lt;DIV class="sasError"&gt;ERROR: (execution) Matrices do not conform to the operation.&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;operation : - at line 168 column 1&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;operands : _TEM1001, Z&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;_TEM1001 49 rows 48 cols (numeric)&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;Z 48 rows 47 cols (numeric)&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;statement : ASSIGN at line 168 column 1&lt;/DIV&gt;&lt;DIV class="sasError"&gt;ERROR: (execution) Matrix has not been set to a value.&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;operation : # at line 168 column 1&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;operands : C, B&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;C 49 rows 49 cols (numeric)&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;B 0 row 0 col (type ?, size 0)&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;statement : ASSIGN at line 168 column 1&lt;/DIV&gt;&lt;DIV class="sasError"&gt;ERROR: (execution) Matrix has not been set to a value.&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;operation : * at line 168 column 1&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;operands : E, D&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;E 0 row 0 col (type ?, size 0)&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;D 49 rows 1 col (numeric)&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;statement : ASSIGN at line 168 column 1&lt;/DIV&gt;&lt;DIV class="sasError"&gt;ERROR: (execution) Matrix has not been set to a value.&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;operation : ## at line 168 column 1&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;operands : F, *LIT1002&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;F 0 row 0 col (type ?, size 0)&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;*LIT1002 1 row 1 col (numeric)&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;0.5&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;statement : ASSIGN at line 168 column 1&lt;/DIV&gt;&lt;DIV class="sasError"&gt;ERROR: Matrix B has not been set to a value.&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;statement : PRINT at line 168 column 1&lt;/DIV&gt;&lt;DIV class="sasError"&gt;ERROR: Matrix G has not been set to a value.&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;statement : PRINT at line 168 column 1&lt;/DIV&gt;&lt;DIV class="sasError"&gt;ERROR: Matrix G has not been set to a value.&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;statement : CREATE at line 168 column 1&lt;/DIV&gt;&lt;DIV class="sasError"&gt;ERROR: No data set is currently open for output.&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;statement : APPEND at line 168 column 1&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: Exiting IML.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The SAS System stopped processing this step because of errors.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: PROCEDURE IML used (Total process time):&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;real time 2.41 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;user cpu time 2.41 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;system cpu time 0.01 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;memory 3069.53k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;OS Memory 41388.00k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Timestamp 29/05/2017 09:29:35 PM&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Step Count 212 Switch Count 130&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Faults 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Reclaims 1369&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Swaps 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Voluntary Context Switches 503&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Involuntary Context Switches 21&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Input Operations 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Output Operations 1376&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasError"&gt;ERROR: File WORK.B.DATA does not exist.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The SAS System stopped processing this step because of errors.&lt;/DIV&gt;&lt;DIV class="sasWarning"&gt;WARNING: The data set WORK.RESULTS may be incomplete. When this step was stopped there were 0 observations and 5 variables.&lt;/DIV&gt;&lt;DIV class="sasWarning"&gt;WARNING: Data set WORK.RESULTS was not replaced because this step was stopped.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: DATA statement used (Total process time):&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;real time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;user cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;system cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;memory 733.21k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;OS Memory 39848.00k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Timestamp 29/05/2017 09:29:35 PM&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Step Count 213 Switch Count 26&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Faults 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Reclaims 252&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Swaps 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Voluntary Context Switches 35&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Involuntary Context Switches 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Input Operations 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Output Operations 8&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasError"&gt;ERROR: BY variable n is not on input data set WORK.RESULTS.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The SAS System stopped processing this step because of errors.&lt;/DIV&gt;&lt;DIV class="sasWarning"&gt;WARNING: The data set WORK.RESULTSFIT may be incomplete. When this step was stopped there were 0 observations and 5 variables.&lt;/DIV&gt;&lt;DIV class="sasWarning"&gt;WARNING: Data set WORK.RESULTSFIT was not replaced because this step was stopped.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: DATA statement used (Total process time):&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;real time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;user cpu time 0.01 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;system cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;memory 1302.90k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;OS Memory 40108.00k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Timestamp 29/05/2017 09:29:35 PM&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Step Count 214 Switch Count 22&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Faults 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Reclaims 287&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Swaps 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Voluntary Context Switches 35&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Involuntary Context Switches 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Input Operations 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Output Operations 8&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasError"&gt;ERROR: Libref A is not assigned.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The SAS System stopped processing this step because of errors.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: DATA statement used (Total process time):&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;real time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;user cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;system cpu time 0.00 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;memory 1033.12k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;OS Memory 39588.00k&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Timestamp 29/05/2017 09:29:35 PM&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Step Count 215 Switch Count 20&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Faults 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Reclaims 248&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Page Swaps 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Voluntary Context Switches 26&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Involuntary Context Switches 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Input Operations 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;Block Output Operations 0&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;MLOGIC(REG2DSE): Ending execution.&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;169&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;170 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;183&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Mon, 29 May 2017 21:34:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/two-dimensional-clustering-in-SAS/m-p/362561#M85662</guid>
      <dc:creator>poulsinghps0</dc:creator>
      <dc:date>2017-05-29T21:34:12Z</dc:date>
    </item>
    <item>
      <title>Re: two-dimensional clustering in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/two-dimensional-clustering-in-SAS/m-p/362731#M85714</link>
      <description>&lt;P&gt;Did who ever wrot that macro provide any descriptions of what the input data set should look like? Does your data match those requirements?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 30 May 2017 14:26:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/two-dimensional-clustering-in-SAS/m-p/362731#M85714</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2017-05-30T14:26:32Z</dc:date>
    </item>
    <item>
      <title>Re: two-dimensional clustering in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/two-dimensional-clustering-in-SAS/m-p/362740#M85718</link>
      <description>&lt;P&gt;The error is&amp;nbsp;&lt;/P&gt;
&lt;DIV class="sasNote"&gt;ERROR: (execution) Matrices do not conform to the operation.&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;One matrix has &amp;nbsp;49 rows 48 cols (numeric). The other has&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Z 48 rows 47 cols (numeric)&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;So it would seem that your data is not the size that the macro expects.&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Tue, 30 May 2017 14:42:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/two-dimensional-clustering-in-SAS/m-p/362740#M85718</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2017-05-30T14:42:08Z</dc:date>
    </item>
    <item>
      <title>Re: two-dimensional clustering in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/two-dimensional-clustering-in-SAS/m-p/362784#M85743</link>
      <description>&lt;P&gt;Dear sir,&lt;BR /&gt;&lt;BR /&gt;I also thought that was part of the problem.&lt;BR /&gt;Using the /noint command and deleting the intercept term from the code did solve practically all of the errors, So I think I got the standard errors I need in column G which is at the end of my output, I thank you for your comment. However, looking at the macro code, I think the output should also give me the t-statistics and perform t/std error. That however does not show in my output, nor does my log show any errors. Do you have any clue on why that might be the reason?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm referring to the last 9-10 lines of the code. I should admit that I THINK colums G is provided the adjusted standard errors (adjusted after two-dimensional clustering) but I'm not entirely sure. (For now I'm using these numbers to compute the t-statistic myself, however, normally the code should provide them). Column G has 48 numbers (one for each of my variables)&lt;BR /&gt;&lt;BR /&gt;Here is the full code:&lt;/P&gt;&lt;P&gt;/* Generated Code (IMPORT) */&lt;BR /&gt;/* Source File: spss data panelregr.sav */&lt;BR /&gt;/* Source Path: /home/poulsinghps0/finale SAS */&lt;BR /&gt;/* Code generated on: 30-05-17 17:31 */&lt;/P&gt;&lt;P&gt;%web_drop_table(WORK.sasfeedback);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;FILENAME REFFILE '/home/poulsinghps0/finale SAS/spss data panelregr.sav';&lt;/P&gt;&lt;P&gt;PROC IMPORT DATAFILE=REFFILE&lt;BR /&gt;DBMS=SAV&lt;BR /&gt;OUT=WORK.sasfeedback;&lt;BR /&gt;RUN;&lt;/P&gt;&lt;P&gt;PROC CONTENTS DATA=WORK.sasfeedback; RUN;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%web_open_table(WORK.sasfeedback);&lt;/P&gt;&lt;P&gt;/*July ,2015*/&lt;BR /&gt;/*This sas macro code is modified by Mark (Shuai) Ma based on the two-way clustered SE code from Professor John McInnis *******/&lt;/P&gt;&lt;P&gt;/*According to Petersen (2008) and Thompson (2011), there are three steps to estimate two-way clustered SEs: */&lt;BR /&gt;/*1. estimate firm-clustered VARIANCE-COVARIANCE matrix V firm,*/&lt;BR /&gt;/*2. estimate time-clustered VARIANCE-COVARIANCE matrix V time,*/&lt;BR /&gt;/*3. estimate heteroskedasticity robust white VARIANCE-COVARIANCE matrix (V white) when there is only one observations each firm-time intersection,*/&lt;BR /&gt;/*or, estimate firm-time intersection clustered VARIANCE-COVARIANCE matrix (V firm-time) when there is more than one observations each firm-time intersection,*/&lt;BR /&gt;/*This code allows the user to closely follows the formula given by Petersen (2008) and Thompson (2011).*/&lt;/P&gt;&lt;P&gt;/********************************************************************************************************************************/&lt;BR /&gt;/*If you use this code, please add a footnote:*/&lt;BR /&gt;/*To obtain unbiased estimates in finite samples,the clustered standard error is adjusted by (N-1)/(N-P)× G/(G-1),where N is the sample size, P is the number of independent variables, and G is the number of clusters. */&lt;BR /&gt;/*For details, please see my note on two-way clustered standard errors avaiable on SSRN and my website &lt;A href="https://sites.google.com/site/markshuaima/home.*/" target="_blank"&gt;https://sites.google.com/site/markshuaima/home.*/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;/*Lastly, I post this code for the communication purpose without any warranty or guaranty of accuracy or support.*/&lt;BR /&gt;/*I tried my best to ensure the accuracy of the codes, but I could not exclude the possibility that there might still be errors. If any error is found, please get me know immediately.*/&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;/********************************************************************************************************************************/&lt;BR /&gt;/*Input explanations */&lt;/P&gt;&lt;P&gt;/* After running the macro code below, you will need to run the following command,&lt;BR /&gt;you only need to change the names of datasets and variables and "multi" value in the following command, and results will be in dataset "A.results"*/&lt;/P&gt;&lt;P&gt;/*****************command*******************************************************************************************************/&lt;BR /&gt;/*%REG2DSE(y=DV, x=INDV, firm=firmid, time=timeid, multi=0, dataset=A.data, output=A.results);*/&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;/**************Variable Explanation*********************************************************************************************/&lt;BR /&gt;/* 1. A.data: A is your library name, data is your input dataset name,*/&lt;BR /&gt;/*A.results : A is your library name, results is the name you want for your output dataset ,*/&lt;/P&gt;&lt;P&gt;/*2. DV: the dependent variable, */&lt;BR /&gt;/*INDV: the list of your independent variable(s),*/&lt;/P&gt;&lt;P&gt;/*3. firmid: the firm identifier (such as gvkey, permno) ,*/&lt;BR /&gt;/*timeid: the time identifier (such as fyear, date),*/&lt;/P&gt;&lt;P&gt;/*4. multi=0 or 1 (you need to choose whether you use 0 or 1 ) */&lt;BR /&gt;/* if you have one observation per firm-time (intersection of two dimendions), you need to have multi=0*/&lt;BR /&gt;/* if you have multiple observations per firm-time (intersection of two dimendions) , you need to have multi=1*/&lt;/P&gt;&lt;P&gt;/********************************************************************************************************************************/&lt;BR /&gt;/************************The macro code is as follows*************************************/&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%MACRO REG2DSE(y, x, firm, time, multi, dataset, output);&lt;/P&gt;&lt;P&gt;proc surveyreg data=WORK.sasfeedback;&lt;BR /&gt;cluster id;&lt;BR /&gt;model tevpa = indevolatiliteitpa ETF1 ETF2 ETF3 etf4 etf5 etf6 etf7 etf8 etf9 etf10 etf11 etf12 etf13 etf14 etf15 etf16 etf17 etf18 etf19 etf20 etf21 etf22 etf23 etf24 etf25 etf26 etf27 etf28 etf29 etf30 etf31 etf32 etf33 etf34 etf35 etf36 etf37 etf38 etf39 etf40 etf41 etf42 etf43 etf44 etf45 etf46 etf47 /covb noint ;&lt;BR /&gt;ods output covb=firm;&lt;BR /&gt;ods output FitStatistics=fit;&lt;BR /&gt;run;quit;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;proc surveyreg data=WORK.sasfeedback;&lt;BR /&gt;cluster t;&lt;BR /&gt;model tevpa = indevolatiliteitpa ETF1 ETF2 ETF3 etf4 etf5 etf6 etf7 etf8 etf9 etf10 etf11 etf12 etf13 etf14 etf15 etf16 etf17 etf18 etf19 etf20 etf21 etf22 etf23 etf24 etf25 etf26 etf27 etf28 etf29 etf30 etf31 etf32 etf33 etf34 etf35 etf36 etf37 etf38 etf39 etf40 etf41 etf42 etf43 etf44 etf45 etf46 etf47 /covb noint ;&lt;BR /&gt;ods output covb=time;&lt;BR /&gt;run;quit;&lt;/P&gt;&lt;P&gt;%if 0=1 %then %do;&lt;/P&gt;&lt;P&gt;proc surveyreg data=WORK.sasfeedback;&lt;BR /&gt;cluster t id;&lt;BR /&gt;model tevpa = indevolatiliteitpa ETF1 ETF2 ETF3 etf4 etf5 etf6 etf7 etf8 etf9 etf10 etf11 etf12 etf13 etf14 etf15 etf16 etf17 etf18 etf19 etf20 etf21 etf22 etf23 etf24 etf25 etf26 etf27 etf28 etf29 etf30 etf31 etf32 etf33 etf34 etf35 etf36 etf37 etf38 etf39 etf40 etf41 etf42 etf43 etf44 etf45 etf46 etf47 / covb noint;&lt;BR /&gt;ods output covb=both ;&lt;BR /&gt;ods output parameterestimates=parm;&lt;BR /&gt;run;quit;&lt;/P&gt;&lt;P&gt;data parm; set parm;keep parameter estimate;run;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%else %if 0=0 %then %do;&lt;/P&gt;&lt;P&gt;proc reg data=WORK.sasfeedback;&lt;BR /&gt;model tevpa = indevolatiliteitpa ETF1 ETF2 ETF3 etf4 etf5 etf6 etf7 etf8 etf9 etf10 etf11 etf12 etf13 etf14 etf15 etf16 etf17 etf18 etf19 etf20 etf21 etf22 etf23 etf24 etf25 etf26 etf27 etf28 etf29 etf30 etf31 etf32 etf33 etf34 etf35 etf36 etf37 etf38 etf39 etf40 etf41 etf42 etf43 etf44 etf45 etf46 etf47 /hcc acov covb noint;&lt;BR /&gt;ods output acovest=both ;&lt;BR /&gt;ods output parameterestimates=parm;&lt;BR /&gt;run;quit;&lt;/P&gt;&lt;P&gt;data both; set both; parameter=Variable; run;&lt;/P&gt;&lt;P&gt;data both; set both;drop variable Dependent Model;run;&lt;/P&gt;&lt;P&gt;data parm; set parm;parameter=Variable;Estimates=Estimate;keep parameter estimates;run;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;data parm1; set parm;&lt;BR /&gt;n=_n_;m=1;keep m n;run;&lt;/P&gt;&lt;P&gt;data parm1;set parm1;&lt;BR /&gt;by m;if last.m;keep n;run;&lt;BR /&gt;&lt;BR /&gt;data both; set both;&lt;BR /&gt;keep indevolatiliteitpa ETF1 ETF2 ETF3 etf4 etf5 etf6 etf7 etf8 etf9 etf10 etf11 etf12 etf13 etf14 etf15 etf16 etf17 etf18 etf19 etf20 etf21 etf22 etf23 etf24 etf25 etf26 etf27 etf28 etf29 etf30 etf31 etf32 etf33 etf34 etf35 etf36 etf37 etf38 etf39 etf40 etf41 etf42 etf43 etf44 etf45 etf46 etf47;&lt;BR /&gt;run;&lt;BR /&gt;data firm; set firm;&lt;BR /&gt;keep indevolatiliteitpa ETF1 ETF2 ETF3 etf4 etf5 etf6 etf7 etf8 etf9 etf10 etf11 etf12 etf13 etf14 etf15 etf16 etf17 etf18 etf19 etf20 etf21 etf22 etf23 etf24 etf25 etf26 etf27 etf28 etf29 etf30 etf31 etf32 etf33 etf34 etf35 etf36 etf37 etf38 etf39 etf40 etf41 etf42 etf43 etf44 etf45 etf46 etf47;&lt;BR /&gt;run;&lt;BR /&gt;data time; set time;&lt;BR /&gt;keep indevolatiliteitpa ETF1 ETF2 ETF3 etf4 etf5 etf6 etf7 etf8 etf9 etf10 etf11 etf12 etf13 etf14 etf15 etf16 etf17 etf18 etf19 etf20 etf21 etf22 etf23 etf24 etf25 etf26 etf27 etf28 etf29 etf30 etf31 etf32 etf33 etf34 etf35 etf36 etf37 etf38 etf39 etf40 etf41 etf42 etf43 etf44 etf45 etf46 etf47;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data fit1; set fit;&lt;BR /&gt;parameter=Label1;&lt;BR /&gt;Estimates=nValue1;&lt;BR /&gt;if parameter="R-square" then output;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data fit1; set fit1;&lt;BR /&gt;n=1;&lt;BR /&gt;keep parameter Estimates n;&lt;BR /&gt;run;&lt;BR /&gt;proc iml;use both;read all var _num_ into Z;print Z;use firm;read all var _num_ into X;print X;&lt;BR /&gt;use time;read all var _num_ into Y;print Y;use parm1;&lt;BR /&gt;read all var _num_ into n;print n;B=X+Y-Z;C=I(n);D=J(n,1);E=C#B;&lt;BR /&gt;F=E*D;G=F##.5;&lt;BR /&gt;print B;print G;&lt;BR /&gt;create b from G [colname='stderr']; append from G;quit;&lt;/P&gt;&lt;P&gt;data results; merge parm B ;&lt;BR /&gt;tstat=estimates/stderr;n=0;run;&lt;/P&gt;&lt;P&gt;data resultsfit; merge results fit1;by n;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data work.results; set resultsfit;&lt;BR /&gt;drop n;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;%MEND REG2DSE;&lt;/P&gt;&lt;P&gt;%REG2DSE(y=DV, x=INDV, firm=firmid, time=timeid, multi=0, dataset=work.data, output=work.results)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 30 May 2017 16:45:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/two-dimensional-clustering-in-SAS/m-p/362784#M85743</guid>
      <dc:creator>poulsinghps0</dc:creator>
      <dc:date>2017-05-30T16:45:00Z</dc:date>
    </item>
    <item>
      <title>Re: two-dimensional clustering in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/two-dimensional-clustering-in-SAS/m-p/362792#M85745</link>
      <description>&lt;P&gt;After you run the macro,&amp;nbsp;submit&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc print data=results; 
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 30 May 2017 16:55:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/two-dimensional-clustering-in-SAS/m-p/362792#M85745</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2017-05-30T16:55:05Z</dc:date>
    </item>
    <item>
      <title>Re: two-dimensional clustering in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/two-dimensional-clustering-in-SAS/m-p/362874#M85777</link>
      <description>&lt;P&gt;That worked, thank you very much.&lt;/P&gt;</description>
      <pubDate>Tue, 30 May 2017 20:52:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/two-dimensional-clustering-in-SAS/m-p/362874#M85777</guid>
      <dc:creator>poulsinghps0</dc:creator>
      <dc:date>2017-05-30T20:52:15Z</dc:date>
    </item>
  </channel>
</rss>

