時間間隔的計算,在許多研究中是很重要的,包括用藥時間、存活時間、居住時間、曝露在特定污染環境的時間、住院時間等。所使用的SAS函數為INTCK('interval',from,to)'INTERVAL'為起迄時間的時間間隔,單位可以是day, week, month, quarter, year等。FROMTO各是「起」與「迄」的時間。

[程式一] 建立一組起迄時間,依序是start_date, end_date,日期格式是yymmdd10.,即西元年-
-日的格式。

[程式二] 在程式二中產生了5個變項(VARIABLE)DAY, MONTH1, MONTH2, YEAR1, YEAR2DAY為介於起迄間的天數;MONTH1為以SAS
預設的MONTH算起迄間的月數,從結果可知SAS將取整數的月數(128個月),小數點會被捨去(即無條件捨去)MONTH2為以DAY除以30.475計算精準的月數(128.263個月);同樣地YEAR1為以SAS預設的YEAR計算的起迄間的年數,從結果可知,SAS將取整數的年數(10),小數點會被捨去(即無條件捨去)YEAR2為以DAY除以365.25(4年潤年一次)計算精準的年數(10.6886)

[
程式一];
data aa;
input id $ start_date yymmdd10. end_date yymmdd10.;
format start_date end_date yymmdd10.;
cards;
A01 1998-02-032008-10-12
;
proc print;
run;

[
程式二];
data bb;
set aa;
day=intck('day',start_date,end_date);
month1=intck('month',start_date,end_date);
month2=intck('day',start_date,end_date)/30.4375;
year1=intck('year',start_date,end_date);
year2=intck('day',start_date,end_date)/365.25;
proc print;
run;

[
結果]
Obs id start_date end_date day month1 month2 year1 year2

1 A01 1998-02-03 2008-10-12 3904 128 128.263 10 10.6886
;

arrow
arrow

    estat 發表在 痞客邦 留言(3) 人氣()