2017-06-01 37 views
0

我有一個帶有Unix時間值的TIMESTAMP列表。我需要將它轉換爲一天的時間間隔,如夜間,早上,下午,下午,黃昏,晚上。將UnixTime轉換爲R中的日期間隔(早上,晚上,晚上等)

data$TIMESTAMP[1] 
[1] 1372636858 
time <- anytime(1372636858) 
> time 
[1] "2013-07-01 01:00:58 WEST" 

我做:

cut(time, breaks= as.POSIXct(paste("2001-01-01",c("00:00:00", "06:00:00", "09:00:00","12:00:00","15:00:00","18:00:00", "20:00:00")),format="%Y-%m-%d %H:%M:%S", tz ="Portugal"),labels=c('night','morning','before_afternoon','afternoon','twilight','evening')) 

輸出:

[1] <NA> 
Levels: night morning before_afternoon afternoon twilight evening 

我做錯了嗎?

+0

它不工作,因爲日期不同(2013-07-01和2001-01-01)。您可能需要刪除時間元素。 –

+2

我想嘗試c('night','morning','before_afternoon','afternoon','twilight','evening')[findInterval(as.POSIXlt(time)$ hour,c(0,6, 9,15,18,20))]'。 – nicola

+0

它以這種方式工作!正是我需要的。非常感謝!!!! – Larisa

回答

0

我想嘗試c('night','morning','before_afternoon','afternoon','twilight','evening')[findInt erval(as.POSIXlt(tim e)$ hour ,C(0,6,9,15,1 8,20))。 - 尼古拉6月1日11:06

相關問題