Извлечь месяц и год с даты в R

Я пробовал несколько методов безрезультатно. У меня есть данные с точки зрения даты (ГГГГ-ММ-ДД), и я пытаюсь получить только по месяцам и годам, например: ММ-ГГГГ или ГГГГ-ММ.

В конечном счете, я хотел бы, чтобы это выглядело так:

ID    Date         Month_Yr
1     2004-02-06   2004-02
2     2006-03-14   2006-03
3     2007-07-16   2007-07
...   ...          ...

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

Ответ 1

Это добавит новый столбец в ваш data.frame с указанным форматом.

df$Month_Yr <- format(as.Date(df$Date), "%Y-%m")

df
#>   ID       Date Month_Yr
#> 1  1 2004-02-06  2004-02
#> 2  2 2006-03-14  2006-03
#> 3  3 2007-07-16  2007-07

# your data sample
  df <- data.frame( ID=1:3,Date = c("2004-02-06" , "2006-03-14" , "2007-07-16") )

простой пример:

dates <- "2004-02-06"

format(as.Date(dates), "%Y-%m")
> "2004-02"

сторона примечания: подход data.table может быть довольно быстрым, если вы работаете с большим набором данных.

library(data.table)
setDT(df)[, Month_Yr := format(as.Date(Date), "%Y-%m") ]

Ответ 2

Использовать подстроку?

d = "2004-02-06"
substr(d,0,7)
>"2004-02"