У меня есть следующий фрейм данных:
time_df=data.frame(id=c(1,2,3,4,5,6,7),
time=c('2016-06-15T13:22:33.378Z','2016-06-15T08:25:49.310Z','2016-06-19T02:34:28.946Z','2016-06-13T08:13:46.815Z','2016-06-22T16:03:17.610Z','2016-06-21T03:36:45.468Z','2016-06-19T14:13:29.011Z'),
time_zone=c('Asia/Jakarta','Asia/Jakarta','Asia/Jayapura','Asia/Jayapura','Asia/Jakarta','Asia/Jakarta','Asia/Jayapura'))
id time time_zone
1 1 2016-06-15T13:22:33.378Z Asia/Jakarta
2 2 2016-06-15T08:25:49.310Z Asia/Jakarta
3 3 2016-06-19T02:34:28.946Z Asia/Jayapura
4 4 2016-06-13T08:13:46.815Z Asia/Jayapura
5 5 2016-06-22T16:03:17.610Z Asia/Jakarta
6 6 2016-06-21T03:36:45.468Z Asia/Jakarta
7 7 2016-06-19T14:13:29.011Z Asia/Jayapura
время в столбце времени находится в часовом поясе «Европа/Берлин», мне нужно изменить время в каждой строке на эквивалентный часовой пояс в столбце time_zone
я использую этот подход: сначала я конвертирую столбец времени в POSIXct:
time_df$time=as.POSIXlt(time_df$time,format = "%Y-%m-%dT%H:%M:%S",tz="Europe/Berlin")
это работает, но когда я пытаюсь изменить часовой пояс, используя следующий код:
attr(time_df$time[time_df$time_zone=='Asia/Jakarta'], "tzone") <-'Asia/Jakarta'
attr(time_df$time[time_df$time_zone=='Asia/Jayapura'], "tzone") <-'Asia/Jayapura'
это не работает, и время в столбце времени остается прежним, я думаю, что что-то не так с подстановкой строк