DATA D1_0;                                                                                                                                                                               
INPUT DQ0$10. DQ$10. X1-X8;                                                                                                                                                                       
LABEL X1="鲜菜(千克)" X2="食用植物油(千克)" X3="猪肉(千克)" X4="牛羊肉(千克)"  X5="  鲜蛋(千克)" X6="鲜奶(千克)" X7="鲜瓜果(千克)" X8="煤炭(千克)" ;  
DATALINES;                                                                                                                                                                                
东部地区  EAST      109.34  7.88  21.14  3.38  10.55  15.36  55.31  19.17                                                                                                                           
中部地区  MIDDLE    121.55  9.62  19.66  2.89  10.31  11.13  54.52  54.25                                                                                                                           
西部地区  WEST      119.66  9.38  23.63  4.94  7.68   15.2   49.12  40.83                                                                                                                           
东北地区  NORTHEAST 124.07  9.82  15.82  5.16  11.66  12.44  59.23  38.25                                                                                                                           
;
PROC DISTANCE DATA=D1_0 OUT=D1_1 METHOD= CITYBLOCK; 
 /*对数据集D1_0计算绝对距离CITYBLOCK,结果存放于D1_1*/                                                                                       
VAR INTERVAL(X1-X8 / STD=STD);  /*利用标准差STD对变量X1-X8进行标准化*/                                                                                                            
ID DQ;   /*为距离矩阵数据集D1_1中的样品进行标签设置*/                                                                                                                         
RUN;                                                                                                                                     
PROC PRINT DATA=D1_1 NOOBS;   /*输出数据集D1_1，并且不显示OBS*/                                                                                                                   
RUN;
PROC CLUSTER DATA=D1_1 M=AVE OUTTREE=D1_2; 
/*利用类平均法（AVE）对数据集D1_1中的样品聚类，结果存放于数据集D1_2*/                                                                                                                            
ID DQ;  /*为聚类结果数据集D1_2中的样品进行标签设置*/                                                                                                                            
RUN;                                                                                                                                        
PROC TREE DATA=D1_2  H  N=2 OUT=D1_3 LINES=(COLOR=BLUE WIDTH=3 DOTS);  
/*根据数据集D1_2画水平树形图，聚为两类，结果存放于数据集D1_3*/                                                                       
ID DQ;    /*为树形图结果数据集D1_3中的样品进行标签设置*/                                                                                                                                     
RUN;

PROC DISTANCE DATA=D1_0 OUT=D1_4  METHOD=DCORR;  
/*对数据集D1_0计算距离，结果存放于D1_4; METHOD=DCORR表示将相关矩阵转化为距离矩阵*/                                                                                      
VAR INTERVAL(X1-X8 / STD=STD);   /*利用标准差STD对变量X1-X8进行标准化*/                                                                                                         
ID DQ;  /*为距离矩阵数据集D1_4中的样品进行标签设置*/                                                                                                                      
RUN;                                                                                                                                     
PROC PRINT DATA=D1_4 NOOBS;    /*输出数据集D1_4，并且不显示OBS*/                                                                                                                  
RUN;
PROC CLUSTER DATA=D1_4  M=AVE  OUTTREE=D1_5; 
/*利用类平均法（AVE）对数据集D1_4中的样品聚类，结果存放于数据集D1_5*/                                                                                                                                              
ID DQ;  /*为聚类结果数据集D1_5中的样品进行标签设置*/                                                                                                                              
RUN;                                                                                                                                        
PROC TREE DATA=D1_5  H  N=2  OUT=D1_6 LINES=(COLOR=BLUE WIDTH=3 DOTS);
         /*根据数据集D1_5画水平树形图，聚为两类，结果存放于数据集D1_6*/                                                                      
ID DQ;  /*为树形图结果数据集D1_6中的样品进行标签设置*/                                                                                                                                      
RUN;

DATA D2_0;                                                                                                                                                                               
INPUT DQ$7. X1-X4;                                                                                                                                                                       
LABEL DQ="地区" X1="第一产业" X2="第二产业" X3="第三产业" X4="人均GDP" ; 
DATALINES;            
北  京	0.9	24	75.1	75943
天  津	1.6	52.5	46	72994
河  北	12.6	52.5	34.9	28668
山  西	6	56.9	37.1	26283
内蒙古	9.4	54.6	36.1	47347
辽  宁	8.8	54.1	37.1	42355
吉  林	12.1	52	35.9	31599
黑龙江	12.6	50.2	37.2	27076
上  海	0.7	42.1	57.3	76074.49
江  苏	6.1	52.5	41.4	52840
浙  江	4.9	51.6	43.5	51711
安  徽	14	52.1	33.9	20888
福  建	9.3	51	39.7	40025
江  西	12.8	54.2	33	21253
山  东	9.2	54.2	36.6	41106
河  南	14.1	57.3	28.6	24446
湖  北	13.4	48.6	37.9	27906
湖  南	14.5	45.8	39.7	24719
广  东	5	50	45	44736
广  西	17.5	47.1	35.4	20219
海  南	26.1	27.7	46.2	23831
重  庆	8.6	55	36.4	27596
四  川	14.4	50.5	35.1	21182
贵  州	13.6	39.1	47.3	13119
云  南	15.3	44.6	40	15752
西  藏	13.5	32.3	54.2	17319
陕  西	9.8	53.8	36.4	27133
甘  肃	14.5	48.2	37.3	16113
青  海	10	55.1	34.9	24115
宁  夏	9.4	49	41.6	26860
新  疆	19.8	47.7	32.5	25034
;

PROC FASTCLUS DATA=D2_0  OUT=D2_1  MAXCLUSTERS=4; 
/*对数据集D2_0中的样品聚为4类，结果存放于数据集D2_1*/                                                                                                                                                                                       
VAR X1-X4;                                                                                                                                                                                                                                                      
ID DQ;  /*为聚类结果数据集D2_1中的样品进行标签设置*/             
RUN;
PROC SORT DATA=D2_1;   /*对数据集D2_1按变量CLUSTER进行升序排列*/                                                                                                                       
BY CLUSTER;                                                                                                                                   
RUN;                                                                                                                                          
PROC PRINT DATA=D2_1 NOOBS; /*输出数据集D2_1，并且不显示OBS*/                                                                                                      
RUN;   
PROC FREQ DATA=D2_1 ; /*对数据集D2_1中的变量CLUSTER进行频数分析*/
TABLE CLUSTER;
RUN;

DATA D2_2;                                                                                                                                                                               
INPUT DQ$7.  X1-X4; 
LABEL DQ="地区" X1="第一产业" X2="第二产业" X3="第三产业" X4="人均GDP" ; 
DATALINES;                                                                                                                                                                                
浙  江   4.9    51.6   43.5   51711
河  南   14.1   57.3   28.6   24446
新  疆   19.8   47.7   32.5   25034
 ;

PROC FASTCLUS DATA=D2_0 SEED=D2_2  OUT=D2_3  MAXCLUSTERS=3; 
        /*以数据集D2_2作为凝聚点初始种子，对数据集D2_0中的样品聚为3类，结果存放于数据集D2_3*/                                                                                                                                                                                                                
VAR X1-X4;                                                                                                                                                                                                                                                      
ID DQ;  /*为聚类结果数据集D2_3中的样品进行标签设置*/                                                                                                                                                                                                                                                        
RUN;  
PROC SORT DATA=D2_3;  /*对数据集D2_3按变量CLUSTER进行升序排列*/                                                                                                                       
BY CLUSTER;                                                                                                                                   
RUN;                                                                                                                                          
PROC PRINT DATA=D2_3  NOOBS; /*输出数据集D2_3，并且不显示OBS*/                                                                                                                          
RUN;   
PROC FREQ DATA=D2_3 ; /*对数据集D2_3中的变量CLUSTER进行频数分析*/
TABLE CLUSTER;
RUN;

DATA  D3_0;                                                                                                                                   
INPUT  DQ$8.  X1-X4;                                                                                                                            
LABEL  DQ="省份"  X1="农业"  X2="林业"  X3="牧业"  X4="渔业" ;  /*为变量设置标签*/                                                            
DATALINES;     
 北  京	47.0 	5.1 	42.6 	3.5 
 天  津	53.0 	0.7 	27.6 	15.8 
 河  北	57.3 	1.2 	33.5 	3.3 
 山  西	63.8 	6.2 	23.9 	0.6 
 内蒙古	48.8 	4.2 	44.6 	0.9 
 辽  宁	36.7 	2.7 	40.9 	15.8 
 吉  林	46.9 	3.7 	44.9 	1.4 
 黑龙江	54.0 	3.8 	38.1 	2.1 
 上  海	54.1 	2.6 	21.9 	18.3 
 江  苏	52.8 	1.8 	21.5 	18.7 
 浙  江	47.9 	5.5 	20.6 	24.0 
 安  徽	52.3 	4.6 	29.3 	10.0 
 福  建	42.3 	8.2 	16.5 	29.2 
 江  西	42.2 	9.8 	30.7 	13.4 
 山  东	55.2 	1.3 	26.7 	12.7 
 河  南	61.7 	2.0 	31.5 	1.2 
 湖  北	54.9 	1.9 	26.4 	13.1 
 湖  南	54.4 	5.5 	29.5 	6.1 
 广  东	46.9 	4.7 	25.2 	19.7 
 广  西	49.2 	6.4 	32.0 	9.1 
 海  南	41.6 	15.1 	19.3 	21.1 
 重  庆	61.0 	3.0 	32.0 	2.7 
 四  川	50.7 	2.8 	41.8 	3.2 
 贵  州	58.9 	4.1 	30.5 	1.4 
 云  南	51.1 	10.2 	32.5 	2.7 
 西  藏	45.8 	2.4 	48.5 	0.2 
 陕  西	66.5 	2.1 	26.1 	0.5 
 甘  肃	71.7 	1.8 	17.2 	0.1 
 青  海	45.7 	1.9 	50.4 	0.1 
 宁  夏	63.8 	2.8 	26.8 	2.6 
 新  疆	74.6 	1.9 	20.4 	0.7 
;

 PROC CLUSTER DATA=D3_0  M=WARD  STANDARD  OUTTREE=D3_1;                                                                                      
    VAR X1-X4;                                                                                                                                    
    ID DQ;                                                                                                                                        
    RUN; 
PROC TREE DATA=D3_1  H  N=3 OUT=D3_2 LINES=(COLOR=BLUE WIDTH=3 DOTS);                                                                         
    ID DQ;                 /*对数据集D3_2中的样品进行标签设置*/                                                                                                                                      
    COPY X1-X4;             /*复制变量X1-X5至数据集D3_2*/                                                                                                                              
PROC SORT DATA=D3_2;    /*对数据集D3_2按变量CLUSTER进行升序排列*/                                                                                                                       
    BY CLUSTER;             /*以CLUSTER变量作为排序依据*/                                                                                                                  
    RUN;                                                                                                                                          
PROC PRINT DATA=D3_2;                                                                                                                         
    RUN;  
            
PROC MEANS DATA=D3_2  N MEAN MEDIAN STD CV MAXDEC=2;    /*进行简单描述统计分析*/                                                                                          
CLASS CLUSTER;                                                                                                                                
VAR X1-X4;                                                                                                                                    
RUN;                                                                                                                                          
PROC GCHART DATA=D3_2;                                 /*画出饼图*/                                                                                       
PIE3D CLUSTER/DISCRETE TYPE=PCT;                                                                                                              
RUN;

PROC FASTCLUS  DATA=D3_0 MAXCLUSTERS=3 OUT=D3_3;   
 /*对数据集D3_0进行快速聚类，分为3类，聚类结果存储于D3_3的文件夹中*/  
ID DQ;
RUN; 
PROC SORT DATA=D3_3;                                  /*对快速聚类的输出结果进行排序*/ 
BY CLUSTER;
RUN;
PROC PRINT DATA=D3_3 NOOBS;                               /*打印现实输出结果*/
RUN;
