DATA  D1_0;   
INPUT  N $  H  W  S @@;   /* 输入字符型变量N（$）和数值型变量H，W，S * /
/*续行符@@表示按变量名依次读完一个观测后，继续在该行依次读取数据,故一行可含有多个观测*/
LABEL  N="学号" H="身高（公分）"  W="体重（公斤）"  S="性别";  /* 给变量设置标签 */            
DATALINES;                                   
D001	171	53	2	D016	181	70	1
D002	167	56	2	D017	154	44	2
D003	177	64	1	D018	164	47	2
D004	154	49	2	D019	176	63	1
D005	169	55	2	D020	173	55	2
D006	175	66	1	D021	184	75	1
D007	163	52	1	D022	160	45	2
D008	152	47	2	D023	155	42	2
D009	172	58	1	D024	161	44	2
D010	160	50	1	D025	178	65	1
D011	178	66	1	D026	175	63	1
D012	172	60	1	D027	150	41	2
D013	165	50	2	D028	158	47	2
D014	163	45	2	D029	168	55	2
D015	181	70	1	D030	179	70	1
;

PROC IMPORT OUT=SAS.D1_0                                                                                                             
DATAFILE= "D:\CH1.XLS"
DBMS=EXCEL REPLACE; 
SHEET="D1_0$"; 
GETNAMES=YES;
MIXED=NO; 
SCANTEXT=YES; 
USEDATE=YES; 
SCANTIME=YES;                                                                                                                      
RUN;   

DATA D1_1;
SET SAS.D1_0; /*复制SAS逻辑库中的数据集D1_0*/                                                                                                                         
RENAME _COL0=N _COL1=H _COL2=W _COL3=S;                                                                                                 
RUN;  
PROC PRINT DATA=D1_1 ;  /*打印数据集D1_1的全部样本信息*/                                                                                                            
RUN;  

PROC MEANS DATA= D1_0 N MEAN MEDIAN CLM MAXDEC=2;                                                                                        
VAR H W;                                                                                                                                
RUN;  

PROC MEANS DATA= D1_0 STD CV RANGE MAX MIN Q3 Q1 FW=7 MAXDEC=1;                                                                         
VAR H W;                                                                                                                                
RUN; 

PROC UNIVARIATE DATA= D1_0 PLOT NORMAL TRIM=0.05  ROBUSTSCALE;                                                                
VAR H ;                                                                                                                                
HISTOGRAM H/NORMAL( COLOR=RED W=2 L=2) MIDPOINTS =150 155 160 165 170 175 180 185;
/*绘制身高（H）的高分辨直方图，外加正态曲线估计及绘制（NORMAL）*/   
ID N;  /*给样本设置标签N*/
RUN;  

DATA  D1_1;                                                                                                                         
SET  D1_0;                                                                                                                    
LNH=LOG(H);                                                                                                                             
LNW=LOG(W);
BMI=W/((H/100)*(H/100));
/*计算肥胖指数BMI（BODY MASS INDEX)=体重（KG）/身高（M）的平方;BMI在18-25间为正常体重*/                                                                                                                                
RUN;                                                                                                                                    
PROC PRINT DATA= D1_1 (OBS=5);                                                                                                              
RUN; 

PROC STANDARD  DATA= D1_0  MEAN=0  STD=1 OUT=D1_2;                                                                               
VAR H W;                                                                                                                                
RUN; 
 
PROC PRINT DATA=D1_2(FIRSTOBS=11 OBS=20);
RUN; 

DATA D1_3;                                                                                                                           
SET  D1_2;                                                                                                                               
IF  ABS(W)>=3 THEN OUTPUT;                                                                                                             
RUN;                                                                                                                                    
PROC PRINT DATA=D1_3;                                                                                                                
RUN;

PROC SORT DATA=D1_0 OUT=D1_4;                                                                                                               
BY S;                                                                                                                                   
RUN;   
PROC PRINT DATA=D1_4;
RUN;

PROC GPLOT DATA=D1_0;                                                                                                                   
PLOT W*H;                                                                                                                               
RUN;
SYMBOL  V=CIRCLE W=2; 
PROC GPLOT DATA=D1_0;                                                                                                               
PLOT W*H=S;  /*以性别（S）分组绘制体重（W）与身高(H)两变量的散点图，图形点以圈圈表示（CIRCLE*/                                                                                                                              
RUN; 


PROC FORMAT;                                                                                                                            
VALUE SS  1='男'    2='女';                                                                                                                       
RUN;                        
PROC MEANS DATA=D1_0 MEAN CV;
VAR H W;
CLASS S;
FORMAT S SS.;       
RUN;

PROC BOXPLOT DATA=D1_0;                                                                                                            
PLOT H*S;                                                                                                                               
FORMAT S SS.;                                                                                                                           
RUN; 

DATA D2_0;                                                                                                                                                                                                                                                      
INPUT DQ$8. Y X1 X2;                                                                                                                                                                                                                                            
LABEL Y=" 每百户电脑拥有量"  X1=" 人均消费性支出"  X2="人均GDP";                                                                                                                                                                                                
DATALINES; 
DQ	       Y	   X1	     X2
北 京	103.93	19934.48	75943
天 津	90.68	16561.77	72994
河 北	61.32	10318.32	28668
山 西	54.08	9792.65	    26283
内蒙古	46.76	13994.62	47347
辽 宁	67.72	13280.04	42355
吉 林	54.18	11679.04	31599
黑龙江	47.21	10683.92	27076
上 海	128.19	23200.4	    76074.49
江 苏	81.36	14357.49	52840
浙 江	89.84	17858.2	    51711
安 徽	63.79	11512.55	20888
福 建	94.81	14750.01	40025
江 西	59.91	10618.69	21253
山 东	77.21	13118.24	41106
河 南	56.98	10838.49	24446
湖 北	58.53	11450.97	27906
湖 南	52.68	11825.33	24719
广 东	96.8	18489.53	44736
广 西	78.98	11490.08	20219
海 南	52.88	10926.71	23831
重 庆	69.03	13335.02	27596
四 川	61.35	12105.09	21182
贵 州	56.79	10058.29	13119
云 南	53.64	11074.08	15752
西 藏	39.08	9685.54	    17319
陕 西	68.06	11821.88	27133
甘 肃	42.9	9895.35	    16113
青 海	39.94	9613.79	    24115
宁 夏	51.32	11334.43	26860
新 疆	47.68	10197.09	25034
;

PROC MEANS DATA=D2_0  N MEAN MEDIAN CLM MAXDEC=2;                                                                                                                                                                                                                
VAR Y ;                                                                                                                                                                                                                                                    
RUN; 
 
PROC MEANS DATA=D2_0  STD CV RANGE MAX MIN Q3 Q1 FW=7 MAXDEC=2;                                                                                                                                                                                            
VAR Y;                                                                                                                                                                                                                                                          
RUN;  

PROC UNIVARIATE  DATA=D2_0  PLOT  NORMAL ;                                                                                                                                                                                                                         
VAR  Y ;                                                                                                                                                                                                                                                        
HISTOGRAM  Y/NORMAL( COLOR=RED W=2 L=2)   MIDPOINTS = 30 40 50 60 70 80 90 100 110 120 130 ;                                                                                                                                                                    
RUN;

PROC STANDARD  DATA=D2_0  MEAN=0 STD=1 OUT=SAS1;                                                                                                                                                                                                                
VAR Y;                                                                                                                                                                                                                                                          
RUN;                                                                                                                                                                                                                                                    
DATA YICHANG;                                                                                                                                                                                                                                                   
SET SAS1;                                                                                                                                                                                                                                                       
IF Y<-2.5 OR Y>2.5 THEN OUTPUT;                                                                                                                                                                                                                                     
RUN;                                                                                                                                                                                                                                                            
PROC PRINT DATA=YICHANG;                                                                                                                                                                                                                                        
RUN;  

PROC GPLOT DATA=D2_0;  
PLOT Y*X1 Y*X2;                                                                                                                                                                                                                                                                                                                                                                          
RUN;    

