У меня большой набор данных, соответствующий различным сайтам и часовым поясам.Я хотел бы стандартизировать все сайты для "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 какаргумент, чтобы получить правильный часовой пояс?Любая идея / предложение было бы очень полезно.
Спасибо