0

我需要你的帮助来解决我在 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')

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

4

1 回答 1

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
于 2012-05-03T14:45:48.423 回答