我在数据框“ Job_applications”中有一个名为“ rejected_at”的表。格式为:“ M / DD / YYYY H:M:S PM / AM”。现在,我想创建一个只有“ M / DD”的新表。我该怎么做?enter image description here
答案 0 :(得分:2)
我们可以转换为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))
答案 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))