R语言 使用%B-%y作为日期而不是字符[重复]

ylamdve6  于 2023-02-01  发布在  其他
关注(0)|答案(2)|浏览(433)
    • 此问题在此处已有答案**:

(9个答案)
Dealing with month abbreviations when converting to a date(1个答案)
3天前关闭。
我的日期数据是这样的"Jun-22","Jul-22","Aug-22"现在,当我试图将此转换为日期时,它显示NA。然后我试图添加Day,它被转换,但是我想把数据保留为字符。2我遇到的主要问题是日期自动按字母顺序排序,但是我想按月份排序。3现在有没有办法把文本按月份排序呢?我不知道这有没有道理。

Month_Date\<-c("Jun-22","Jul-22","Aug-22","Sep-22", "Oct-22","Nov-22")

我想保持它的原样,但想用它作为"日期",并根据月份安排它。有办法做到这一点吗?我不想有"01 - 06 - 2022"。

gudnpqoy

gudnpqoy1#

您可以使用lubridate s my暂时转换为日期,然后在排序后返回字符。

library(lubridate)

dat <- "Jun-22" "Oct-22" "Nov-22" "Sep-22" "Jul-22" "Aug-22" # unsorted

format(sort(my(dat)), "%b-%y")
[1] "Jun-22" "Jul-22" "Aug-22" "Sep-22" "Oct-22" "Nov-22"
hs1rzwqc

hs1rzwqc2#

您可以使用clock的月份精度year-month-day类型。

library(clock)

# scrambled the OP's input
x <- c("Jun-22","Aug-22", "Oct-22","Jul-22","Nov-22","Sep-22")

x <- year_month_day_parse(x, format = "%b-%y", precision = "month")
x
#> <year_month_day<month>[6]>
#> [1] "2022-06" "2022-08" "2022-10" "2022-07" "2022-11" "2022-09"

sort(x)
#> <year_month_day<month>[6]>
#> [1] "2022-06" "2022-07" "2022-08" "2022-09" "2022-10" "2022-11"

创建于2023年1月28日,使用reprex v2.0.2

相关问题