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

R 如何将小时数转换为时间?,r,R,我有一个数据文件,其中我必须在时间上处理数据列,即小时和分钟,但存储的数据是1900表示19小时00分,1845表示18小时45分,但930表示930,45表示4小时5分,所以现在我不知道如何处理相同的表单,如果我只想分割小时数的话。我该怎么办?没有分钟的小时可以计算为: s <- c(1900, 1845, 930, 930, 455) # input s %/% 100 ## [1] 19 18 9 9 4 计时时间 另一种方法是将s转换为chron“times”对象,并从中

我有一个数据文件,其中我必须在时间上处理数据列,即小时和分钟,但存储的数据是1900表示19小时00分,1845表示18小时45分,但930表示930,45表示4小时5分,所以现在我不知道如何处理相同的表单,如果我只想分割小时数的话。我该怎么办?

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

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

s %/% 100
## [1] 19 18  9  9  4
计时时间 另一种方法是将
s
转换为chron
“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
库(chron)

如果您在一个示例中提供一些示例数据,显示不同类型的输入和每个输入的预期输出,那么会更容易提供帮助。这样可以测试和验证可能的解决方案。欢迎使用堆栈溢出!你可能想退房。如果没有更多的细节,任何人都很难帮助你。你可以像字符串一样处理它们。将其拆分(最后两位数字和其余数字)。最后两位是分钟,前两位或前一位是小时。455如何转换为4h5?你好,Tuyen,有一个很棒的软件包叫
lubridate
,它可能对你有帮助。如果您以我们可以剪切和粘贴到R会话中的形式向我们提供数据样本,并提供输出的具体说明,我们将更容易提供帮助。谢谢:)
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