Как отделить дату и время от формата даты и времени, используя R - PullRequest
0 голосов
/ 24 ноября 2018

У меня есть набор данных с именем «Билеты», в котором есть столбец «Дата создания».Я хочу разделить дату и время и сформировать новый столбец с названием «Дата и время» (это означает, что я хочу изменить).

enter image description here.

Я пытался использовать lubridate, но он дает мне значения NA.

Также я использовал:

Hours <- format(as.POSIXct(strptime(tickets$`Date Created`,"%m/%d/%Y %H:%M",tz="")) ,format = "%H:%M")
Hours

Однако, если я пытаюсь просмотреть набор данных, он не показывает ни одного столбца с именем Часы. Может кто-нибудь сказать мне, в чем проблема.

Большое спасибо.

Редактировать: Я былнаконец, смог разделить их, используя приведенные ниже коды билетов%>% mutate_at (vars (Date Created), mdy_hms)%>% mutate_at (vars (Date Created), funs ("date" = date (.), "time" =as.hms (.)))%>% select (- Date Created) Однако он показывает неправильную дату и время enter image description here

Что может быть не так с этим кодом?

Ответы [ 2 ]

0 голосов
/ 24 ноября 2018

Попробуйте это.Я использую только три даты в качестве примера.Сначала мы меняем класс вашего персонажа на дату, затем извлекаем даты, и, наконец, извлекаем время.Я предполагаю, что вы хотите, чтобы дата в качестве даты класса, а время в качестве времени класса.Если нет, то другое решение будет проще.Также обратите внимание, что я добавляю секунды ко времени для удобства использования.

library(tidyverse)
library(lubridate)

df <- data_frame(date_time = c("8/1/2018 4:55", "8/1/2018 7:53", "8/1/2018 10:10"))
df %>%
  mutate(date_time = paste0(date_time, ":00"),
         date_time = parse_date_time(date_time, orders = "mdy HMS"),
         date = date(date_time), 
         time = chron::times(strftime(date_time,"%H:%M:%S", tz = "UTC")))
#> # A tibble: 3 x 3
#>   date_time           date       time       
#>   <dttm>              <date>     <S3: times>
#> 1 2018-08-01 04:55:00 2018-08-01 04:55:00   
#> 2 2018-08-01 07:53:00 2018-08-01 07:53:00   
#> 3 2018-08-01 10:10:00 2018-08-01 10:10:00
0 голосов
/ 24 ноября 2018

Из того, что я могу сказать по вашему вопросу:

library(tidyverse)
head(df)
testTime
1 2018-11-24 02:44:07
new_df <- separate(data = df, col = testTime, into  = c('Date', 'Time'), sep = ' ')
head(new_df)
  Date     Time
1 2018-11-24 02:44:07

Должен вас туда доставить.

Подумайте о переписывании последней части вашего вопроса, я не мог понять, о чем вы спрашиваете.Кроме того, используйте typeof () в своем столбце, даты могут быть сохранены в виде строк или целых чисел и выглядят одинаково.

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