Da Sie keine Daten geliefert haben, ich bin Erzeugen eine data.frame
mit einer Spalte, die viele verschiedenen Tage zwischen 2007 und 2017
a <- data.frame(time = seq(as.POSIXct("2007-01-01"), as.POSIXct("2017-01-01"), by = 60 * 60))
I seq()
verwende enthält eine Reihe von Daten zu erzeugen, von 2007-01-01
bis 2017-01-01
, mit einem Unterschied zwischen jedem Datum von 60 * 60 Sekunden (dh 1 Stunde)
Blick auf den Kopf des data.frame, hier haben wir Daten und Zeiten, getrennt durch 1 Stunde (wie erwartet).
head(a)
# time
# 1 2007-01-01 00:00:00
# 2 2007-01-01 01:00:00
# 3 2007-01-01 02:00:00
# 4 2007-01-01 03:00:00
# 5 2007-01-01 04:00:00
# 6 2007-01-01 05:00:00
Sie sind zu wissen, interessiert, wie oft jedes Jahr in der data.frame erscheint. Deshalb können wir das Datumsformat von nur das Jahr ("%Y"
)
Zum Beispiel
head(format(a$time, format = "%Y")) ## gives the 'head' of the data, formatted in years.
## [1] "2007" "2007" "2007" "2007" "2007" "2007"
aus der Hilfedatei ?table
Tabelle verwendet die Quer Klassifizieren Faktoren eine Kontingenz zu bauen Tabelle der Zählungen bei jeder Kombination von Faktorstufen.
d.h. es zählt die Anzahl der Vorkommen jedes Wertes. So können wir table()
verwenden, um die Häufigkeit zu zählen, mit der jedes Jahr auftritt.
dies in Etappen Breaking down:
t <- format(a$time, format = "%Y")
head(t)
[1] "2007" "2007" "2007" "2007" "2007" "2007"
So die Anzahl der in den Daten jedes Jahr stattfindet zu erhalten, können wir table(t)
verwenden.
table(t)
# 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017
# 8760 8784 8760 8760 8760 8784 8760 8760 8760 8784 1
Und wenn Sie dies als data.frame gespeichert wollten, würden Sie
df_t <- as.data.frame(table(t))
# t Freq
# 1 2007 8760
# 2 2008 8784
# 3 2009 8760
# 4 2010 8760
# 5 2011 8760
# 6 2012 8784
Um die Datenmenge zu finden für ein bestimmtes Jahr gesammelt verwenden, Teilmenge Sie ihn nur data.frame für das Jahr.
df_t[df_t$t == 2008,]
# t Freq
# 2 2008 8784
So haben wir 8784 Beobachtungen für 2008
Ich bin neu in R, es tut mir leid, dass ich es nicht verstehe. Die Daten bestehen aus vielen verschiedenen Tagen aus verschiedenen Jahren, und ich möchte nur wissen, wie viele Daten in diesem Jahr gesammelt wurden. Würdest du es mir bitte erklären? Danke – RMghost
@RMghost - Ich habe mehr Details hinzugefügt. Hilft das? – SymbolixAU