2015-07-09 3 views
0

У меня есть переменная с именем x, которое так:Почему я не могу lubridate конвертировать даты в tbl_df?

x <- structure(list(Time = c("2002-05-07 21:00", "2002-05-08 21:00", 
          "2002-05-09 21:00", "2002-05-10 21:00", 
          "2002-05-11 21:00", "2002-05-13 21:00", 
          "2002-05-14 21:00", "2002-05-15 21:00", 
          "2002-05-16 21:00", "2002-05-17 21:00")), 
       .Names = "Time", class = c("tbl_df", "data.frame"), 
       row.names = c(NA, -10L)) 

Теперь я хотел бы преобразовать строки в x в даты и так x[1,1] %>% lubridate::ymd_hm() дает мне ожидаемый результат для одного элемента, я думал, следующий будет делать трюк:

x %>% lubridate::ymd_hm() 

Но это не работает (результат NA), и я получаю следующее предупреждение:

Warning message: 
    All formats failed to parse. No formats found. 

Почему нет x %>% lubridate::ymd_hm() работать так, как я ожидал, и что я могу сделать, чтобы получить результат, который я хочу?

+2

Ваши данные были усечены. –

+0

@NickK Спасибо, что заметили его. Я исправлю это. – mauna

+1

'ymd_hm (x $ Time)' работает звездно. Почему вы думаете, что 'x%>% lubridate :: ymd_hm()' знал бы, чтобы получить столбец 'Time'? – hrbrmstr

ответ

3

Функция mutate работает.

x %>% mutate(Time = ymd_hm(Time)) 
3

Это преуспевает (с предупреждением, что я не понимаю, но я подозреваю, что rownames этого объекта может иметь что-то делать с этим.):

x %>% lubridate::ymd_hm(.$Time) 
[1] NA      "2002-05-07 21:00:00 UTC" "2002-05-08 21:00:00 UTC" 
[4] "2002-05-09 21:00:00 UTC" "2002-05-10 21:00:00 UTC" "2002-05-11 21:00:00 UTC" 
[7] "2002-05-13 21:00:00 UTC" "2002-05-14 21:00:00 UTC" "2002-05-15 21:00:00 UTC" 
[10] "2002-05-16 21:00:00 UTC" "2002-05-17 21:00:00 UTC" 

x[1,1] %>% lubridate::ymd_hm() 
#[1] "2002-05-07 21:00:00 UTC" 

 Смежные вопросы

  • Нет связанных вопросов^_^