Сортировка вектора по названию месяца в r - PullRequest
2 голосов
/ 05 мая 2020

У меня есть вектор

monthData <- c("April", "June", "May", "August","July","September","December","November","October")

Можно ли отсортировать вектор в хронологическом порядке по названию месяца?

Заранее спасибо

Ответы [ 3 ]

5 голосов
/ 05 мая 2020

Можно просто использовать встроенный month.name.

monthData[order(match(monthData, month.name))]
#> [1] "April"     "May"       "June"      "July"      "August"    "September"
#> [7] "October"   "November"  "December"
4 голосов
/ 05 мая 2020

Вы можете преобразовать вектор в факторизованный вектор:

fact_monthData<-factor(monthData, levels=month.name)

Затем вы можете отсортировать вектор по:

sort(fact_monthData)
1 голос
/ 05 мая 2020

Вы можете попробовать выполнить сортировку по другому вектору, состоящему из полных дат в том же году, с различными компонентами месяца:

dates <- as.Date(paste0("2020-", monthData, "-01"), format="%Y-%b-%d")
monthData[order(dates)]

[1] "April"     "May"       "June"      "July"      "August"    "September"
[7] "October"   "November"  "December" 

Данные:

monthData <- c("April", "June", "May", "August", "July", "September", "December",
               "November","October")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...