Удаление метки времени, чтобы включить только месяц и день

#r

#r

Вопрос:

У меня есть таблица с именем «rejected_at» во фрейме данных «Job_applications». Формат такой: «М / ДД/ГГГГ Ч: М: С вечера / УТРА». Теперь я хочу создать новую таблицу, в которой есть только «M / DD». Как бы мне это сделать?введите описание изображения здесь

Ответ №1:

Мы можем преобразовать в DateTime класс, а затем извлечь month и day

 v1 <- as.POSIXct(df1$rejected_at, "%m/%d/%Y %H:%M:%S")
format(v1, "%d")
format(v1, "%m")
  

Или, если нам нужен формат %m/%d

 format(v1, "%m/%d")
  

Или использование tidyverse

 library(dplyr)
library(lubridate)
df1 %>%
    mutate(rejected_at = mdy_hms(rejected_at),
           day = day(rejected_at),
           month = month(rejected_at))
  

Ответ №2:

Предполагая, что rejected_at столбец — это просто текст, вы могли бы попробовать использовать sub здесь:

 x <- "12/30/2018 4:05:44 PM"
sub("/[^/] $", "", x)

[1] "12/30"
  

Или, в вашем случае:

 Job_applications$new_col <- sub("/[^/] $", "", Job_applications$rejected_at)
  

Редактировать:

Если вы также хотели сохранить год, тогда мы можем попробовать использовать sub с группой захвата, нацеленной на полную дату:

 sub("(\d /\d /\d ).*", "\1", x)

[1] "12/30/2018"
  

Ответ №3:

Вы можете сделать это с помощью lubridate

 library(lubridate)

new_date <- mdy_hms("08/14/2017 09:59:06 PM")

new1 <- paste0(month(new_date),"/",day(new_date))
  

Комментарии:

1. Чем это отличается от ответа @akrun?

2. я использовал только lubridate, и когда я его публиковал, я не знаю, что akrun опубликовал в то время.