将日期列转换为新列中的日期和月份

Converting date column to day of month and month in a new column

我有这种数据框

 dat <- read.table(text = " count     date    
                              0    10/05/2012  
                              1    10/05/2013  
                              1    10/05/2014  
                                   ",header = TRUE)

我想要一个包含以下格式的新变量:

> dat
  count       date DayMonth
1     0 10/05/2012    10-05
2     1 10/05/2013    10-05
3     1 10/05/2014    10-05

我尝试了某些版本的 strptime 函数,例如 dat$DayMonth<-strptime(dat$date, "%d/%m"),但得到了奇怪的结果。 我怎样才能得到想要的结果

我们可以用 as.Dateformat

来做到这一点
dat$DayMonth <- format(as.Date(dat$date, "%d/%m/%Y"), "%d-%m")
dat$DayMonth
#[1] "10-05" "10-05" "10-05"

Using strptime converts to POSIXlt/POSIXct class, 从中我们可以改成使用format

的格式

注意:没有使用外部包

使用包 lubridateanydate 的相同解决方案。

library(lubridate)
dat$DayMonth <- format(dmy(dat$date), "%d-%m")

# dmy stands for day,month,year, can you use ymd etc. 

library(anytime)
dat$DayMonth <- format(anydate(dat$date), "%d-%m")