Wie Gruppiere ich meine date-variable in Monat/Jahr, in R?
Habe ich ein "date" - Vektor, enthält Daten in mm/dd/yyyy format:
head(Entered_Date,5)
[1] 1/5/1998 1/5/1998 1/5/1998 1/5/1998 1/5/1998
Ich versuche zu Plotten einer Frequenz variable gegen das Datum, aber ich möchte die Gruppe die Termine, es wird von Monat oder Jahr. So wie es jetzt ist, es ist eine Frequenz pro Tag, aber ich möchte, um den Verlauf der Frequenz nach Monat oder Jahr. Also anstatt einer Frequenz von 1 für 1/5/1998, 1 für 1/7/1998, und 3 für 1/8/1998, würde ich mag, um es anzuzeigen als 5 1/1998. Es ist ein relativ großer Datensatz, mit Daten von 1998 bis heute, und ich möchte einen automatisierten Weg, dies zu erreichen.
> dput(head(Entered_Date))
structure(c(260L, 260L, 260L, 260L, 260L, 260L), .Label = c("1/1/1998",
"1/1/1999", "1/1/2001", "1/1/2002", "1/10/2000", "1/10/2001",
"1/10/2002", "1/10/2003", "1/10/2005", "1/10/2006", "1/10/2007",
"1/10/2008", "1/10/2011", "1/10/2012", "1/10/2013", "1/11/1999",
"1/11/2000", "1/11/2001", "1/11/2002", "1/11/2005", "1/11/2006",
"1/11/2008", "1/11/2010", "1/11/2011", "1/11/2012", "1/11/2013",
"1/12/1998", "1/12/1999", "1/12/2001", "1/12/2004", "1/12/2005", ...
- Um sicher zu sein, reproduzierbare Ergebnisse, poste bitte die Ausgabe von
dput(head(Entered_Date))
- Haben Sie einen Blick auf
as.yearmon
von derzoo
Paket.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein Beispiel mit
dplyr
. Verwenden Sie einfach das entsprechende Datum in das format string für den Monat%m
oder Jahr%Y
imformat
- Anweisung.dput
abgeschnitten ist, so kann ich nicht bekommen Sie Ihre Daten zum reproduzieren dieses label problem, in meinem Beispiel die Namen.dput
dass der. Stellen Sie sicher, dass Sie den Fehler reproduzieren können auf die Teilmenge.dplyr
ist ein gutes Paket zu suchen, in zu. Es macht eine Menge Zusammenfassungen einfacher.df %>% mutate(date2 = format(date, "%Y-%m")) %>% group_by(date2) %>% summarise(total = sum(value))
Den floor_date von lubridate tut dies gut.
Dank Roman Cheplyaka
https://ro-che.info/articles/2017-02-22-group_by_month_r
Vielleicht fügen Sie einfach eine Spalte in der Daten wie diese:
Year <- format(as.Date(Entered_Date, "%d/%m/%Y"), "%Y")
?strptime
geben Ihnen einen Schlüssel zu diesen Datum formatieren-Optionen.Brauchen nicht
dplyr
. Blick auf?as.POSIXlt
Brauchen nicht zu verwenden
ggplot2
aber sein nettes, für diese Art der Sache.Wenn Sie möchten, um zu sehen die tatsächlichen zahlen
Es ist eine super einfache Möglichkeit, mithilfe der cut() Funktion:
und erhalten Sie diese:
Nur um @cdeterman Antwort, die Sie verwenden können
lubridate
zusammen mitdplyr
zu machen, an diesem Abend einfacher: