J'ai essayé un certain nombre de méthodes en vain. J'ai des données en termes de date (AAAA-MM-JJ) et j'essaie d'obtenir uniquement le mois et l'année, tels que: MM-AAAA ou AAAA-MM.
En fin de compte, j'aimerais que cela ressemble à ceci:
ID Date Month_Yr
1 2004-02-06 2004-02
2 2006-03-14 2006-03
3 2007-07-16 2007-07
... ... ...
Je le fais dans l’espoir de gagner de l’argent gagné en moyenne au cours d’un mois, à partir d’un certain nombre de commandes, sur une période donnée. Toute aide, ou une poussée dans la bonne direction serait grandement appréciée.
Ceci ajoutera une nouvelle colonne à votre data.frame
avec le format spécifié.
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") )
un exemple simple:
dates <- "2004-02-06"
format(as.Date(dates), "%Y-%m")
> "2004-02"
note latérale: l'approche data.table
peut être assez rapide si vous travaillez avec un grand ensemble de données.
library(data.table)
setDT(df)[, Month_Yr := format(as.Date(Date), "%Y-%m") ]
Utiliser une sous-chaîne?
d = "2004-02-06"
substr(d,0,7)
>"2004-02"