在R中将时间从数字转换为时间格式

Duy*_*Bui 13 time datetime r date

我从xls文件中读取数据.显然,时间不是正确的格式.如下(例如)

0.3840277777777778
0.3847222222222222
0.3854166666666667
Run Code Online (Sandbox Code Playgroud)

的确,他们应该是

09:12
09:13
09:13
Run Code Online (Sandbox Code Playgroud)

我不知道如何将其转换为正确的格式.我搜索了几个线程,所有这些线程都是关于将日期(有/没有时间)转换为正确的格式.

有人能给我任何线索吗?

Mic*_*lli 13

将您的数字乘以一天中的秒数(60*60*24)后,您可以使用as.POSIXct

nTime <- c(0.3840277777777778, 0.3847222222222222, 0.3854166666666667)
format(as.POSIXct((nTime) * 86400, origin = "1970-01-01", tz = "UTC"), "%H:%M")
## [1] "09:13" "09:14" "09:15"
Run Code Online (Sandbox Code Playgroud)


akr*_*run 10

另一种选择是times来自chron

library(chron)
times(nTime)
#[1] 09:13:00 09:14:00 09:15:00
Run Code Online (Sandbox Code Playgroud)

剥掉秒,

substr(times(nTime),1,5)
#[1] "09:13" "09:14" "09:15"
Run Code Online (Sandbox Code Playgroud)

数据

nTime <- c(0.3840277777777778, 0.3847222222222222, 0.3854166666666667)
Run Code Online (Sandbox Code Playgroud)