我已經減去了時間變數(睡眠時間 = 喚醒時間 - 就寢時間),雖然我得到了正確的結果,但我需要將睡眠時間分為 2 類(如果睡眠時間 => 7 小時,則睡眠 =0;如果小于 7 小時,則睡眠 = 1 )。
問題是當我對變數進行分類時,我沒有得到正確的分類。這就是我得到的:
bedtime waketime sleeptime sleep
22:00:00 07:00:00 09:00:00 1
22:30:00 06:30:00 08:00:00 1
00:55:00 08:10:00 07:15:00 0
02:30:00 08:30:00 06:00:00 1
這是我使用的代碼:
data have; set want;
sleeptime = waketime - bedtime;
if sleeptime => '07:00:00't then sleep=0;
if sleeptime < '07:00:00't then sleep=1; run;
我一直在考慮將睡眠時間轉換為一個值,以便更容易分類,例如:
bedtime waketime sleeptime sleeptime1
22:00:00 07:00:00 09:00:00 9
22:30:00 06:30:00 08:00:00 8
02:30:00 08:30:00 06:00:00 6
有什么想法嗎?謝謝您的幫助!
uj5u.com熱心網友回復:
時間變數是數字,所以你可以不理會它……但是你忘記了午夜!
要么保持你的變數為datetime(它保持日期,所以它讓你像你所做的那樣做這種事情),或者捏造它:
data have;
input bedtime :time8. waketime :time8.;
datalines;
22:00:00 07:00:00
22:30:00 06:30:00
00:55:00 08:10:00
02:30:00 08:30:00
;;;;
run;
data want;
set have;
sleeptime = waketime-bedtime (86400*(bedtime gt waketime));
format bedtime waketime sleeptime time8.;
run;
這僅在您確定waketime應該在bedtime. 似乎有可能,但值得指出。(而且,86400 是 24 小時內的秒數 -'24:00:00't如果需要,您也可以使用。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/358055.html
