我有一个十进制数字向量,它代表“十进制日”,即一天的分数。我想使用 R 将其转换为 HH:MM 格式。
例如,数字
0.8541667
对应于 20:30
。如何将数字转换为 HH:MM
格式?
使用
chron
:
chron::times(0.8541667)
#[1] 20:30:00
试试这个:
R> format(as.POSIXct(Sys.Date() + 0.8541667), "%H:%M", tz="UTC")
[1] "20:30"
R>
我们从一个日期开始(可以是任何日期,因此我们使用今天)并添加您想要的小数天。
然后我们将 Date 类型转换为 Datetime 对象。
最后,我们格式化 Datetime 对象的小时和分钟部分,确保时区使用 UTC。
data.table 的一个选项:
> library(data.table)
> structure(as.integer(0.4305556*60*60*24), class="ITime")
[1] "10:20:00"
我们将日分数转换为自午夜以来的秒数;强制为整数;并应用 ITime 类。 (ITime 使用自午夜以来整数存储的秒数。)
其他资源:
您可以使用
library(openxlsx)
,它对于导入和导出数据非常强大。它还有其他非常有用的数据预处理功能。
library(openxlsx)
time <- 0.8541667
time1 <- convertToDateTime(time)
time2 <- format(time1, "%H:%M:%S")