Сортировка даты в формате м / у в кадре данных в R

Я пытаюсь отсортировать столбец даты в формате M/Y. Я пытался использовать несколько способов, указанных в других сообщениях, но ни один не помог. Пожалуйста, предложите. В 2012 году он отображается правильно со всеми месяцами, указанными в 2012 году, но затем он меняет структуру. Спасибо.

Вот как это выглядит сейчас

3 ответа

Это должно работать:

#let's add a column to your data.frame with a proper date
df$date_of_first_day <- as.Date(paste0("1/",monyear),format = "%d/%m/%y")
# then sort the data.frame
df <- df[order(df$date_of_first_day,decreasing = FALSE),]
# then get rid of this column
df$date_of_first_day <- NULL

С помощью lubridate а также dplyr:

library(dplyr)
library(lubridate)
df <- data.frame( monyear = c( "1/12", "10/13", "1/13", "2/10" ), 
                  amount = 1:4, 
                  prices = 1:4 )

Исходные данные:

  monyear amount prices
1    1/12      1      1
2   10/13      2      2
3    1/13      3      3
4    2/10      4      4

Сортировать по дате:

df <- df %>%
      arrange( parse_date_time(monyear,"my") )

Функция parse_date_time будет читать формат как "мой" или "месяц года"

Выход:

  monyear amount prices
1    2/10      4      4
2    1/12      1      1
3    1/13      3      3
4   10/13      2      2

1) Это преобразует DF (см. Примечание) в временной ряд зоопарка, первый столбец которого относится к классу yearmon и который сортируется по нему.

library(zoo)

z <- read.zoo(DF, FUN = as.yearmon, format = "%m/%y")

Вы можете сохранить его как объект зоопарка, как указано выше, или преобразовать его обратно во фрейм данных:

fortify.zoo(z)

2) Это альтернатива read.zoo. Он также использует класс yearmon.

library(zoo)

DF2 <- transform(DF, monyear. = as.yearmon(monyear., "%m/%y"))
DF2[order(DF2$monyear.), ]

Примечание: вышеупомянутое использование DF определяется как:

library(tesseract)
u <- "https://stackru.com/images/f51b03b31e03eb97e8db9a2cdd9afced7983cac0.png"
DF <- read.table(text = ocr(u), header = TRUE, as.is = TRUE)
Другие вопросы по тегам