Объединение сокращенных месяцев и года в одну переменную в R - PullRequest
0 голосов
/ 07 мая 2020

У меня есть данные временного ряда со столбцом за месяц и столбцом за год. Месяцы: ЯНВАРЬ, ФЕВРАЛЬ и др. c.

Я пытаюсь объединить их в переменную одного месяца и года, чтобы провести на ней анализ временных рядов. Я новичок в R и могу использовать любые рекомендации.

Ответы [ 3 ]

1 голос
/ 07 мая 2020

Может, что-то вроде этого?

library(dplyr)

c("JAN", "FEB", "MAR", "APR",
  "MAY", "JUN", "JUL", "AUG",
  "SEP", "OCT", "NOV", "DEC") %>%
  rep(., times = 3) %>%
  as.factor() -> months

c("2018", "2019", "2020") %>%
  rep(., each = 12) %>%
  as.factor() -> years

df1 <- cbind.data.frame(months, years)

paste(df1$months, df1$years, sep = ".") %>%
  as.factor() -> merged.years.months
0 голосов
/ 07 мая 2020

Раствор Base R:

events <- within(events,{
                    month_no <- as.integer(as.factor(sort(month)))
                    date <- as.Date(paste(year, ifelse(nchar(month_no) < 2, paste0("0", month_no),
                                                       month_no), "01", sep = "-"), "%Y-%m-%d")
                    rm(month_no, month, year)
                    }
                )
0 голосов
/ 07 мая 2020

Начните с вашего месяца / года df.

library(tidyverse)
library(lubridate)
events <- tibble(month = c("JAN", "MAR", "FEB", "NOV", "AUG"),
       year = c(2018, 2019, 2018, 2020, 2019))

Предположим, что каждый из ваших периодов времени начинается первого числа месяца.

series <- events %>% 
  mutate(mo1 = dmy(paste(1, month, year)))

Это то, что вы хотите

R > series
# A tibble: 5 x 3
  month  year mo1       
  <chr> <dbl> <date>    
1 JAN    2018 2018-01-01
2 MAR    2019 2019-03-01
3 FEB    2018 2018-02-01
4 NOV    2020 2020-11-01
5 AUG    2019 2019-08-01

Теперь это даты; вы можете использовать их в других анализах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...