libname clinic 'D:\SAS'; data clinic.admitfee;
set sasueser.admit;
run;
proc sort data=clinic.admitfee out=admit; /*proc 排序 排誰 輸出到哪lib.name*/ by age; run;
proc print data=admit label; /*打印 打誰 label?*/ var age height weight fee; /*變量 1 2 3 4 */ label fee='admission fee'; /* 更換變量名*/ run;
proc print data=admit noobs; /*no obs 取消顯示observations*/ var age height; where age>30; /*where 給變量指定一個條件*/ run; /*character必須要加引號,區分大小寫*/
proc print data=admit; id id; /*id 用后面的變量(可以不是一個)取代obs*/ run; /*當id后面的變量 和 var 后面的重復,那么這個變量會出現2次*/
? data work.admit2; *創建數據集名稱,位置; set sasuser.All; *引用該數據集; run;
ods listing; proc print data=work.admit2; where location contains 'all'; *變量location中contains all 子字符串的觀察單位; run;
*contains 可以用 ? 代替; proc print data=admit; where age>30 and age<50; *邏輯關系 AND or & , OR or |; run;
proc print data=admit; where age<30 or( age>50 and sex='M'); *邏輯關系 AND or & , OR or |; run;
PROC PRINT DATA=ADMIT; WHERE ACTLEVEL IN ('LOW','MOD'); * in 使得表達簡潔; run;
proc sort data=clinic.admit out=wdadmit; by weight age; *根據先weight后age排序,默認升序; run;
proc print data=wdadmit; run;
proc sort data=clinic.admit out=dwdadmit; by descending weight descending age; *降序 run; proc print data=dwdadmit; run;
proc print data=admit; var name age height weight fee; where actlevel='LOW'; sum fee; * 給變量求和,並創建新的一行; run;
proc sort data=clinic.admit out=admit;
by actlevel;
run;
proc print data=admit;
sum fee;
by actlevel; *按照分類變量求和,必須現根據該分類變量排序;
run;
proc sort data=clinic.admit out=admit;
by actlevel;
run;
proc print data=admit;
sum fee;
by actlevel; *按照分類變量求和,必須現根據該分類變量排序;
run;
proc print data=admit;
sum fee;
by actlevel; *使用by 和 id聯合使用,自定義layout,考慮id的作用;
id actlevel;
run;
proc print data=admit;
sum fee;
by actlevel;
id actlevel;
pageby actlevel; *pageby后面的變量,必須在by中被指定;
run;
proc print data=admit double; *兩倍行距;
sum fee;
run;
title1 'Heart Rates for Patients with'; *數字可以說是1-10;
title11 'Increased Stress Tolerance Levels';
proc print data=admit;
run;
footnote1 'Data from Treadmill Tests';
footnote3 '1st Quarter Admissions';
proc print data=admit;
run;
title; *取消title和footnote;
footnote; *默認的title是SAS程序;
proc print data=admit;
run;
proc print data=admit label ; *臨時的給變量名加label;
label fee='total fee'; * 'total fee'n ='fee' 有空格的情況;
run;
proc print data=admit label;
label fee='total fee' sex='gender';
run;
proc print data=clinic.admit; var actlevel fee; where actlevel='HIGH'; format fee dollar4.; *format 臨時的改變數據的顯示格式; run; proc print data=clinic.admit; var actlevel fee; where actlevel='HIGH'; format fee 5.2; run;
永久的修改這些變量
data clinic.admit;
set sasuser.admit;
label fee='tatal fee';
run;
proc print dara=clinic.admit label; *!!!print 時仍需要label;
run;
proc print data=admit split='*';
label fee='f*e*e'; *將變量名按照特殊的格式分開;
run;
label \double\noobs 需要在print里
proc sort out
by