【问题标题】:character into time conversion [duplicate]字符到时间转换[重复]
【发布时间】:2013-08-09 01:48:33
【问题描述】:

一个让我发疯的简单问题.. 我有一个这种格式的时间列:

time
00:05:00
00:10:00
00:15:00
10:20:00
10:25:00

如何及时转换所有值(就像 as.Date 函数适用于日期一样)? 我试过了

df$time <- chron(df$time)

但它只是将值转换为原子值。 我也读过this post,但对我没有帮助。

【问题讨论】:

  • 这个问题确实对你有帮助,假设你真的按照答案的建议去做:chron(times=df$time)
  • 我很惊讶你在没有命名参数的情况下尝试它时没有收到错误和几个警告。
  • @Joshua。问题是 chron 时间以原子值显示,而我正在寻找一个保持 H:M:S 格式的函数。
  • 显示输出,因为在我看来,它看起来像00:05:00
  • @matteo:您问题中的代码会引发错误。如果您有一个 data.frame 并按照您链接到的答案中的说明进行操作,它就可以正常工作。

标签: r time


【解决方案1】:

使用POSIXt 日期/时间数据类型。 (例如,参见?as.POSIXct)。以下是您的数据示例:

t <- c("00:05:00", "00:10:00", "00:15:00", "10:20:00", "10:25:00")
t2 <- as.POSIXct(t, format="%H:%M:%S")

diff(t2)

给出:

 > Time differences in mins
 > [1]   5   5 605   5
 > attr(,"tzone")

和:

difftime(t2[-1], t2[-length(t2)], units="hours")

给出:

 >Time differences in hours
 > [1]  0.08333333  0.08333333 10.08333333  0.08333333
 > attr(,"tzone")

干杯, 以利

【讨论】:

  • diff? difftime?为什么?
  • 只是为了展示时间对象的一些功能。
  • 这甚至没有接近回答这个问题......
  • 嗯 ... 字符串到 POSIX 时间对象的转换是使用 as.POSIXct 完成的。不是这个问题吗?
  • 问题是如何将时间字符串转换为时间类。 POSIXct 是一个日期时间类。它没有只有小时、分钟和秒的概念;它们必须附有日期。如果未提供日期,则假定为 Sys.Date(),如果 Sys.Date() 恰好是您所在时区中夏令时更改的日期,则存在问题。
猜你喜欢
  • 2013-11-25
  • 2021-05-12
  • 2012-02-08
  • 2020-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-07
相关资源
最近更新 更多