删除时间戳以仅包含月份和日期

时间:2019-03-14 04:22:13

标签: r

我在数据框“ Job_applications”中有一个名为“ rejected_at”的表。格式为:“ M / DD / YYYY H:M:S PM / AM”。现在,我想创建一个只有“ M / DD”的新表。我该怎么做?enter image description here

3 个答案:

答案 0 :(得分:2)

我们可以转换为DateTime类,然后提取monthday

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))

答案 1 :(得分:1)

假设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"

答案 2 :(得分:0)

您可以使用lubridate

library(lubridate)

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

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