2015-07-19 59 views
0

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

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

我有什么选择?

+3

您应该以任何形式发布“数据集”。如果它是一个文本文件,然后发布足够的内容来说明问题以及您当前使用的输入代码。然后解释“问题”是什么。 Midnght是午夜,大会是午夜是第二天的开始。那究竟是什么问题? –

+1

我怀疑你必须用一个新的父类(例如'POSIX24ct')来定义它,然后写一个'format.POSIX24ct',它的逻辑是打印24:00而不是00:00。你是否也想让00:01成为24:01等等? – Spacedman

回答

0

简单的答案是,你不能真的这样做。你当然可以做一个函数来打印一个POSIXECT对象,前一天用24而不是0来打印,但是你所要求的等价于“我能让50(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))