在 R 中将时间从数字格式转换为时间格式
Convert time from numeric to time format in R
我从 xls 文件中读取数据。显然,时间格式不正确。如下(举例)
0.3840277777777778
0.3847222222222222
0.3854166666666667
的确,他们应该
09:12
09:13
09:13
我不知道如何将其转换为正确的格式。我搜索了几个主题,所有主题都是关于将日期(with/without 时间)转换为正确格式的。
有人可以给我任何线索吗?
您可以在将您的数字乘以一天中的秒数 (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"
另一个选项是 times
来自 chron
library(chron)
times(nTime)
#[1] 09:13:00 09:14:00 09:15:00
去掉秒数,
substr(times(nTime),1,5)
#[1] "09:13" "09:14" "09:15"
数据
nTime <- c(0.3840277777777778, 0.3847222222222222, 0.3854166666666667)
对于想要相反方式的人:给定 09:13:00,得到 0.3840278
as.numeric(chron::times("09:13:00"))
基本上,这个想法是一整天是 1,所以中午(中午 12 点)是 0.5。
我从 xls 文件中读取数据。显然,时间格式不正确。如下(举例)
0.3840277777777778
0.3847222222222222
0.3854166666666667
的确,他们应该
09:12
09:13
09:13
我不知道如何将其转换为正确的格式。我搜索了几个主题,所有主题都是关于将日期(with/without 时间)转换为正确格式的。
有人可以给我任何线索吗?
您可以在将您的数字乘以一天中的秒数 (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"
另一个选项是 times
来自 chron
library(chron)
times(nTime)
#[1] 09:13:00 09:14:00 09:15:00
去掉秒数,
substr(times(nTime),1,5)
#[1] "09:13" "09:14" "09:15"
数据
nTime <- c(0.3840277777777778, 0.3847222222222222, 0.3854166666666667)
对于想要相反方式的人:给定 09:13:00,得到 0.3840278
as.numeric(chron::times("09:13:00"))
基本上,这个想法是一整天是 1,所以中午(中午 12 点)是 0.5。