如何更改分类为期间的日期时间格式

时间:2012-05-03 13:54:39

标签: r datetime

我需要你的帮助来解决我在R中的日期时间问题。

我在因子类中有一个日期时间,例如:

"02/02/2010 12:00" "02/02/2010 12:05" "02/02/2010 12:10"

然后我只想选择时间,例如:"12:00" "12:05" "12:10"

在我将其更改为日期类之前,我尝试先将因子转换为字符。我的目标是将时间范围分类为周期(晚上,中午,下午,晚上)

getPeriode <- function(RAYON) {
    Midi <- as.character.POSIXt("12:00", format ='%H:%M:%S') # Winter Solstice

    d <- as.character.POSIXt(HEURE, format='%H:%M:%S')

    ifelse (rayon < 10, "night",
            ifelse (d = Midi, "noon",
                ifelse (d >= Midi, "afternoon", "evening")))

}

但是,似乎没有用...... :(

我想关键是我们想要在

中输入数据
d <- as.character.POSIXt(HEURE, format='%H:%M:%S')

我真的很感谢你的帮助..谢谢之前..

1 个答案:

答案 0 :(得分:2)

我经常发现日期和时间类的操作相当混乱,在这种情况下,我认为将变量作为字符串和整数更容易。我不确定我是否了解您的所有代码,但这可能会激发您自己的解决方案。

datetime <- c("02/02/2010 07:00", "02/02/2010 08:05", "02/02/2010 11:00",
              "02/02/2010 12:10", "02/02/2010 16:10", "02/02/2010 23:10")
heure <- as.integer(substr(datetime, 12, 13))
conversion <- data.frame(datetime=datetime, heure=heure,
     period=cut(heure, c(-Inf, 7, 10, 12, 17, Inf),
                labels=c("night", "morning", "noon", "afternoon", "evening")))

给你

> conversion
          datetime heure    period
1 02/02/2010 07:00     7     night
2 02/02/2010 08:05     8   morning
3 02/02/2010 11:00    11      noon
4 02/02/2010 12:10    12      noon
5 02/02/2010 16:10    16 afternoon
6 02/02/2010 23:10    23   evening