стандартизировать часовой пояс в большом наборе данных - PullRequest
0 голосов
/ 28 мая 2018

У меня большой набор данных, соответствующий различным сайтам и часовым поясам.Я хотел бы стандартизировать все сайты для "UCT".Я изо всех сил пытаюсь преобразовать даты (которые являются фактором), чтобы получить правильный формат даты.

Один небольшой образец моей даты выглядит так:

       head(data_tz)
       site       DatetimeEnd         tzone
       FR01001   2014-10-28 00:00:00  UTC
       FR01001   2014-11-02 00:00:00  UTC
       FR01001   2014-01-20 00:00:00  UTC
       FR01001   2014-11-01 00:00:00  UTC
       FR01001   2014-01-13 00:00:00  UTC
       FR01001   2014-09-17 00:00:00  UTC
       ..........

Это большойнабор данных с 4 разными tzone:

        unique(data_tz$tzone)
        "UTC"  "UTC-04" "UTC+04" "UTC-03"

И DatetimeEnd - это фактор, который мне нужно преобразовать в POSIXct, а затем каждый сайт в «UTC».Я пробовал разные подходы, но ни один из них не сработал.Я использую:

newdata$DatetimeEnd <- as.POSIXct(data_tz$DatetimeEnd, format="%Y-%m-%d %H:%M:%S",tz=data_tz$tzone)

Но я получил:

Error in strptime(x, format, tz = tz) : invalid 'tz' value

И то же самое при использовании:

newdata$DatetimeEnd <- as.POSIXct(strptime(data_tz$DatetimeEnd, 
                    format="%Y-%m-%d %H:%M:%S",tz=data_tz$tzone))

Если я использую:

newdata$DatetimeEnd <- as.POSIXct(data_tz$DatetimeEnd, format="%Y-%m-%d %H:%M:%S",tz="UTC +01")

Это работает, но это не то, что я хочу, так как есть некоторые столбцы (сайты) с "UCT +02" .. (разные tzone)

Как я могу использовать здесь tz какаргумент, чтобы получить правильный часовой пояс?Любая идея / предложение было бы очень полезно.

Спасибо

1 Ответ

0 голосов
/ 28 мая 2018

Вы можете использовать purrr :: map2 для перебора строк столбцов DatetimeEnd и tzone, создавая новый вектор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...