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 に答える