2015-02-23 56 views
-4

我有一個數據集爲每個孩子,當每個孩子去牀上,當他們在早上醒來。我想計算的睡眠小時數如何計算每條記錄的睡眠小時數

下面是隻是一個簡單的數據:

id   time1(kids go bed)   time2(kids wake up time) 
101  12:00(am)     5:00(pm)  
102  3:00(am)     9:30(am)  
103  7:00(pm)     6:00(am)  
104  4:15(am)     2:00(pm) 

正如你可以看到我有恩的不同時間的組合:他們去睡覺凌晨( AM),第二天下午傍晚醒來(PM)。

讓我知道如果您有任何問題嗎?

+0

您到目前爲止嘗試過什麼?使用StackOverflow,您需要先嚐試自己解決問題,並顯示您嘗試過的內容並解釋您遇到的問題。 – Dijkgraaf 2015-02-23 23:20:10

+0

轉換爲24小時制並減去。但是,嚴肅地說,如果你沒有花時間來正確地解釋你正在努力完成的任務並給出更好的例子,那麼這個問題就會被關閉。正如上面所說的,顯示你已經嘗試或正在掙扎的東西。 – badfilms 2015-02-23 23:20:33

+0

哪種語言? – 2015-02-23 23:20:51

回答

2

您需要做的就是創建一個名爲SleepHour的新列,這個列基於孩子們什麼時候睡覺和什麼時候醒來。

使用你的數據,然後SleepHour = Time2 - Time1。同時假設time2time1datetime格式。

data WANT; 
set HAVE; 
SleepHour = (Time2 - Time1)/3600; /* seconds to hours */ 
run; 

但我猜的原始數據可能只包含time部分不date一部分。所以你需要澄清你想如何計算no. of hours

那麼,讓我們假設孩子不會每天24小時以上睡覺。那麼你需要一個if條件來計算no of hours

data WANT; 
set HAVE; 
if hour(time2) ge hour(time1) then SleepHour = (Time2 - Time1)/3600; 
else SleepHour = (Time2 + 24*3600 - Time1)/3600; 
run;