У меня есть фрейм данных со столбцом строк даты и времени:
library(tidyverse)
library(lubridate)
testdf = data_frame(
mytz = c('Australia/Sydney', 'Australia/Adelaide', 'Australia/Perth'),
mydt = c('2018-01-17T09:15:00', '2018-01-17T09:16:00', '2018-01-17T09:18:00'))
testdf
# A tibble: 3 x 2
# mytz mydt
# <chr> <chr>
# 1 Australia/Sydney 2018-01-17T09:15:00
# 2 Australia/Adelaide 2018-01-17T09:16:00
# 3 Australia/Perth 2018-01-17T09:18:00
Я хочу преобразовать эти строки даты и времени в объекты даты и времени POSIX с соответствующими часовыми поясами:
testdf %>% mutate(mydt_new = ymd_hms(mydt, tz = mytz))
Ошибка в mutate_impl (.data, точки): ошибка оценки: аргумент
tz
должен быть односимвольной строкой. Дополнительно: Предупреждение: в if (tz! = "UTC") {: длина условия> 1, и будет использоваться только первый элемент.
Я получаю тот же результат, если использую ymd_hms
без часового пояса и перенаправляю его в force_tz
. Справедливо ли заключить, что lubridate не поддерживает какую-либо векторизацию, когда дело касается операций с часовыми поясами?
testdf %>% rowwise %>% mutate(mydt_new = ymd_hms(mydt, tz = mytz))
? - person jazzurro   schedule 17.01.2018rowwise
... - person jimjamslam   schedule 17.01.2018Australia/Perth
, хотя я нахожусь вAustralia/Sydney
. Интересно, произвольно ли это отображение? - person jimjamslam   schedule 17.01.2018