转换日期栏月份和月份的一天,新的一列
问题描述:
我有这样的数据帧的转换日期栏月份和月份的一天,新的一列
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
我尝试了一些类似dat$DayMonth<-strptime(dat$date, "%d/%m")
这样的strptime函数的版本,但得到了奇怪的结果。 我怎样才能获得期望的结果
答
我们可以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
注意:没有使用外部包装
+1
谢谢@akrun – mql4beginner
答
相同解决方案使用包装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")
我想知道,为什么downvote?这是正确的输入和输出的合理问题。 – mql4beginner