我有这种数据框
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")
,但得到了奇怪的重新排列。
如何获得所需的结果
答案 0 :(得分:2)
使用包lubridate
或anydate
的相同解决方案。
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")
答案 1 :(得分:1)
我们可以使用as.Date
和format
dat$DayMonth <- format(as.Date(dat$date, "%d/%m/%Y"), "%d-%m")
dat$DayMonth
#[1] "10-05" "10-05" "10-05"
使用strptime
转换为POSIXlt/POSIXct
类,我们可以使用format
注意:没有使用外部包