R 如何将小时数转换为时间?
我有一个数据文件,其中我必须在时间上处理数据列,即小时和分钟,但存储的数据是1900表示19小时00分,1845表示18小时45分,但930表示930,45表示4小时5分,所以现在我不知道如何处理相同的表单,如果我只想分割小时数的话。我该怎么办?没有分钟的小时可以计算为: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”对象,并从中
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