close

目標1: 生成2, 4, 6, ~ 20的數據

語法1.1:

data a;
do i=1 to 10; *用do...end循環10次,注意end前需有output指令,將i寫入數據集a;
y=i*2;
output;
end;
run;

proc print;run;

 

語法1.2:

data a;
do i=2 to 20 by 2; * by 2: 以2為間隔;
output;
end;
run;

proc print;run;

 

目標2: 產生100筆身高145~190公分 & 40~100公斤數據

語法2:

data a;
 do i=1 to 100;
   HT=round(145+(190-145)*rand('uniform'));*四捨五入取整數;
   WT=round((40+(100-40)*rand('uniform')), 0.1);*取至小數後1位;
 output;
 end;

data a1;set a;
   BMI=WT/(HT/100)**0.5;* "**"表示次方,如: A**2,代表A平方;
run;
proc print data=a1(obs=5);*只列印前五筆資料;
run;

說明: 

1. rand('uniform'):  產生服從0~1之間的均勻分布之隨機數字。

2. round()函數為四捨五入

結果: 

image

驗證:

1.用Excel驗算BMI:

Step 1. 將結果貼到Excel

Step 2. 在F欄輸入D3/(C3/100)^0.5

image

Step 3. 框框右下角出現黑色十字時往下拉,其他格子內便會複製相同動作,結果相同

2023-05-05 18_09_10-活頁簿1 - Excel (產品啟動失敗).jpg

可以在Excel中再進一步四捨五入BMI至小數後四位,跟SAS-BMI比較

 

說明:

1. 取 X n次方: SAS: X**n; Excel: X^n 

2. 四捨五入 X 至小數後4位: SAS: round(X, 0.0001); Excel: round(X, 4)



 

arrow
arrow
    創作者介紹
    創作者 Vivian 的頭像
    Vivian

    統計散記-Vivian 經驗分享

    Vivian 發表在 痞客邦 留言(0) 人氣()