我正在Sas中运行快速集群进程。 我得到的频率值是excel输出的科学形式。我不想要它。我应该改变哪些代码。下面是我的代码的snipeet和我得到的输出
%MACRO LOOP(Start,End);
%DO MAXC=&Start %TO &End;
ODS HTML PATH="J:\DIAC-CITI\Client_Data\CARDS\03 Analysis\Clustering\Pre-Optimization\Output\Cluster Outputs"
BODY="MaxCluster&MAXC..xls"
STYLE=DEFAULT;
ODS LISTING CLOSE;
OPTIONS NOLABEL;
PROC FASTCLUS
DATA=Pre_Modeling
OUT=test
MAXCLUSTERS=&MAXC
MAXITER=100;
OUTSTAT=stat&maxc;
FREQ FREQUENCY;
WEIGHT REGIONAL_WTS;
VAR RISK_SCORE;
TITLE ' ';
RUN;
ODS HTML CLOSE;
ODS LISTING;
data stat&maxc;
set stat&maxc(rename=( _type_=type));
where type in('RSQ','PSEUDO_F','CCC');
run;
proc sort data=stat&maxc;
by type;
run;
proc transpose data=stat&maxc out=stat&maxc prefix=value&maxc.;
by type;
var over_all;
run;
%END;
%MEND LOOP;
%LOOP(1,30)
输出
Cluster Frequency
1 69
2 2295564
4 172098
6 6
9 6941
12 32
18 872126
8 4.56E+07
16 34347
17 1.98E+07
15 9568079
10 8824842
7 9669026
3 5855012
5 3353213
11 876159
13 313310
14 202065
19 33736
我得到的频率是科学的。我不想那样。如果我把它改成excel中的数字,它会四舍五入,原始数字会丢失。
任何人都可以帮助我
当我将格式添加到代码
时PROC FASTCLUS
DATA=Pre_Modeling
OUT=test
MAXCLUSTERS=22
MAXITER=100
OUTSTAT=stat22;
FREQ frequency format best16. ;
WEIGHT REGIONAL_WTS;
VAR RISK_SCORE;
TITLE ' ';
RUN;
PROC FASTCLUS
DATA=Pre_Modeling
OUT=test
MAXCLUSTERS=22
MAXITER=100
OUTSTAT=stat22;
FREQ format frequency best16. ;
WEIGHT REGIONAL_WTS;
VAR RISK_SCORE;
TITLE ' ';
RUN;
两个代码都没有运行,并且出错了。
答案 0 :(得分:0)
格式语句应放在代码的最后一部分:Proc Transpose。
proc transpose data=stat&maxc out=stat&maxc prefix=value&maxc.;
by type;
var over_all;
format over_all best16.;
run;