【问题标题】:R Convert Chr String to Minutes & SecondsR将Chr字符串转换为分和秒
【发布时间】:2016-08-24 19:55:49
【问题描述】:

我有一个数据集,其中时间作为字符串表示分钟和秒,格式为 mm:ss.s。目前看起来像:

"00:14.3"

有没有一种简单的方法可以将其转换为时间,以便我可以处理数据(绘图等)?

我尝试过 Chron 包,但这似乎要求字符串为 hh:mm:ss,除非我误解了

【问题讨论】:

  • 用 chron 可以试试这个times(paste0("00:", "00:14.3"), format = "h:m:s"),但是小数秒是四舍五入的。

标签: r


【解决方案1】:

你应该可以像这样使用strptime with a custom format string:

> strptime("00:14.3", format="%M:%OS")
[1] "2016-08-24 00:00:14 PDT"

请注意,这将使用您当前的日期和时区创建一个完整的日期时间对象。要查看小数秒已被保留,请确保您的 options(digits.secs) 设置如下:

> options(digits.secs=2)
> strptime("00:14.3", format="%M:%OS")
[1] "2016-08-24 00:00:14.30 PDT"

您可以手动或使用 strptime 选项调整日期和时区。根据您使用它的方式,您始终可以将其格式化为字符串(在此处复制以证明转换中没有丢失任何信息):

> strftime(t, format="%M:%OS")
[1] "00:14.30"

【讨论】:

  • 这很好用,谢谢。有没有办法更改日期,避免显示为今天?
  • R 对象很有趣 - 在我的回答中,我建议创建始终具有日期属性的 posix 日期时间(如果需要,您当然可以更改)。根据您要执行的操作,您绝对可以更改日期,或者您可以使用 chron::times 函数生成如下格式的双精度:times(paste0("00:", "01:20.03"))
  • 对多个 cmets 感到抱歉 - 刚刚意识到这一点,但使用 times 函数可能会丢失数据,chron 包似乎不支持小数秒。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-04
  • 2021-03-19
  • 1970-01-01
  • 1970-01-01
  • 2015-03-01
相关资源
最近更新 更多