r - 将变量转换为 %H :%M time format in R

标签 r

我有这个向量,表示记录为小时(0 到 24)和分钟(0 到 59)的时间。我想将其转换为 R 中的 %H:%M 时间格式,以便我可以使用 difftime 等函数。

str(SF5$ES_TIME)
 int [1:11452] 1940 600 5 1455 1443 2248 1115 900 200 420 ...

这是我尝试过的,但在这两种情况下,我都收到错误:

>SF5$time1<-as.POSIXct(SF5$ES_TIME, format = "%H:%M",tz="EST")
Error in as.POSIXct.numeric(SF5$ES_TIME, format = "%H:%M", tz = "EST") : 
  'origin' must be supplied
SF5$time1<-as.POSIXct(as.character(SF5$ES_TIME), format="%H:%M",tz="")
> str(SF5$time1)
POSIXct[1:11452], format: NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA ...

任何帮助或阅读建议将不胜感激! 谢谢你, 奥蕾莉

最佳答案

嗯,错误消息告诉您提供来源,一分钟是 60 秒,所以:

SF5 <- list(ES_TIME=as.integer(c(1940,600,5,1455,1443,2248,1115,900,200,420)))

x <- as.POSIXct(SF5$ES_TIME*60, origin="1970-01-01")
format(x, format="%H:%M")
#[1] "08:20" "10:00" "00:05" "00:15" "00:03" "13:28" "18:35" "15:00" "03:20" "07:00"

请注意,POSIXct 日期只是一个数字(带有类),因此您需要 format 调用来根据需要打印它 - 默认打印 x 将打印完整的日期信息(年/月/日等)。

...任何起源日期都可以,因为您不关心它,但 1970-01-01 是通常的起源...

关于r - 将变量转换为 %H :%M time format in R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10016412/

相关文章:

r - 对数据帧列表进行最佳非线性拟合

r - 在空环境中由 + 定义时使 `+` 工作的机制是什么?

r - 使用 gganimate 逐渐改变多边形的颜色

R reprex 没有为非常高的图呈现正确的 ggplot 输出

r - 如何在 r 中传播或转换多个值

r - 使用 ggplot2 在同一个图上将两个变量绘制为线

r - 在 R 中,比较不同数据帧中的两列并删除重复项

r - 打印工作区中的所有对象

R:对文本变量进行分类

r - 逐行操作 data.frame 中的一列的更快方法是什么?