as.POSIXct меняя время на NA - PullRequest
0 голосов
/ 10 января 2019

При преобразовании времени в r с использованием as.POSIXct преобразует все значения в NA. Это мой код для этого:

data1 %>%
mutate(time_clean = ymd_hms(timestamp,tz = 'UTC')) %>%
separate(time_clean, c('date', 'time'), sep = ' ') %>%
mutate_at(vars(date), funs(as.Date))

Образец данных

data1 <- tribble(
~"time", ~"date",
"07:41:47", "2018-11-08",
"07:41:47", "2018-11-08",
"07:41:47", "2018-11-08",
"07:41:50", "2018-11-08",
"07:41:50", "2018-11-08",
"07:41:50", "2018-11-08")

1 Ответ

0 голосов
/ 11 января 2019

Если вы открыты для tidyverse решений, это выполнит то, что вам нужно:

library("tidyverse")
# create example data
example_df <- tibble(time = c("07:41:47", "07:41:47", "07:41:50"),
                     date = as.Date(c("2018-11-08", "2018-11-08", "2018-11-08"))) 


example_df %>% 
  unite(col = "datetime",
        c("date", "time"), sep = " ") %>% 
  mutate(datetime = lubridate::ymd_hms(datetime))

Но вкратце проблема, с которой вы столкнулись, связана с тем, что as.POSIXct не может иметь только время даты без даты. Поэтому вам нужно поместить дату и время в одну строку, а затем проанализировать ее.

Если вместо этого вы специально смотрите «время дня» без даты, вы можете проверить этот другой вопрос на SO

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