【问题标题】:24:00 hour support in RR 中的 24:00 小时支持
【发布时间】:2015-07-19 19:57:32
【问题描述】:

R 支持从 00:00 到 23:59 的时间。有没有办法将其更改为 24:00。创建“2012-12-03 24:00”的 POSIXct 对象使其成为“2012-12-04 00:00”。对于我的数据集(TMY3),这是有问题的。

作为一种解决方法,我已将“24:00”的所有实例替换为“23:59”,然后转换为 POSIXct。现在的问题是我不能使用辅助函数来提取小时。 23:50 和 23:00 均为 23 小时。现在按小时绘制点在 23 小时有两个数据点。

我有什么选择?

【问题讨论】:

  • 您应该以您正在使用的任何形式发布“数据集”。如果它是一个文本文件,请发布足够多的内容以说明问题以及您当前使用的输入代码。然后解释“问题”是什么。午夜是午夜,惯例是午夜是第二天的开始。那么究竟是什么问题呢?
  • 我怀疑你必须用一个新的父类来定义它(例如POSIX24ct)并编写一个format.POSIX24ct,它的逻辑是打印24:00而不是00:00。您是否还希望 00:01 为 24:01 等等?

标签: r xts lubridate chron


【解决方案1】:

简单的答案是你不能真正做到这一点。你当然可以创建一个函数来打印一个 POSIXct 对象作为前一天使用 24 而不是 0 但你要问的是相当于问“我可以让 50(五十)显示为 40_10(四十) ?”

根据你真正喜欢做什么,你可以做类似ifelse(hour(POSobj)==0,24,hour(POSobj))(你已经标记lubridate,所以我认为这些功能是公平的游戏)或者你可以做也跟着...

ifelse(hour(POSobj)==0,gsub(" 00:"," 24:",gsub(as.character(floor_date(POSobj)),as.character(floor_date(POSobj)-days(1)),POSobj)),as.character(POSobj))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    • 2012-12-08
    • 1970-01-01
    相关资源
    最近更新 更多