如何将小时数转换为时间?

时间:2018-10-11 21:48:21

标签: r

我有一个数据文件,其中我必须按时处理数据列,即小时和分钟,但是存储的数据是1900,代表19h00',1845代表18h45',但是930和455也有930 4h5,所以现在我不知道如何处理相同的表格,如果我只想分配小时数。我该怎么办?

1 个答案:

答案 0 :(得分:1)

没有分钟的小时数可以计算为:

s <- c(1900, 1845, 930, 930, 455) # input

s %/% 100
## [1] 19 18  9  9  4

或小时数(使用小数小时表示分钟数)为:

s %/% 100 + (s %% 100) / 60
## [1] 19.000000 18.750000  9.500000  9.500000  4.916667

计时时间

另一种方法是将s转换为时间"times"对象,并从中提取小时或小时和分钟。下面的最后一种选择是使用"times"对象存储为一天的一小部分的事实。

library(chron)

tt <- times(sub("(..)$", ":\\1:00", s)); tt
## [1] 19:00:00 18:45:00 09:30:00 09:30:00 04:55:00

# alternative    
times((s %/% 100) / 24 + (s %% 100) / (24 * 60))
## [1] 19:00:00 18:45:00 09:30:00 09:30:00 04:55:00

hours(tt)
## [1] 19 18  9  9  4

minutes(tt)
## [1]  0 45 30 30 55

hours(tt) + minutes(tt) / 60
## [1] 19.000000 18.750000  9.500000  9.500000  4.916667

24 * as.numeric(tt)
## [1] 19.000000 18.750000  9.500000  9.500000  4.916667