r-将字母日期转换为数字并排序



我的数据帧中有这样的日期格式(因子格式的日期(,我想对进行排序

date<-factor (c("13DEC2016", "02JAN2016", "27APR2016"))

目标是对其进行排序,以获得类似以下内容:

02JAN2016 27APR2016 13DEC2016

或类似:

02-01-2016  27-04-2016  13-12-2016

要对日期进行排序,首先需要将date的类从factor更改为date。这可以使用基本R或lubridate包来完成。

date<-factor (c("13DEC2016", "02JAN2016", "27APR2016"))
#Using base R
sorted_date <- sort(as.Date(date, '%d%b%Y'))
sorted_date
#[1] "2016-01-02" "2016-04-27" "2016-12-13"
#Using `lubridate`
sorted_date <- sort(lubridate::dmy(date))

一旦您这样做了,您就可以使用format来获得您想要的任何格式的数据。

format(sorted_date, '%d-%b-%Y')
#[1] "02-Jan-2016" "27-Apr-2016" "13-Dec-2016"
format(sorted_date, '%d-%m-%Y')
#[1] "02-01-2016" "27-04-2016" "13-12-2016"
toupper(format(sorted_date, '%d%b%Y'))
#[1] "02JAN2016" "27APR2016" "13DEC2016"

最新更新