Wie würde ich die Zeit aus einer Reihe von POSIXct-Objekten extrahieren, die den Datumsteil verwerfen?
Zum Beispiel habe ich:
times <- structure(c(1331086009.50098, 1331091427.42461, 1331252565.99979,
1331252675.81601, 1331262597.72474, 1331262641.11786, 1331269557.4059,
1331278779.26727, 1331448476.96126, 1331452596.13806), class = c("POSIXct",
"POSIXt"))
was diesen Daten entspricht:
"2012-03-07 03:06:49 CET" "2012-03-07 04:37:07 CET"
"2012-03-09 01:22:45 CET" "2012-03-09 01:24:35 CET"
"2012-03-09 04:09:57 CET" "2012-03-09 04:10:41 CET"
"2012-03-09 06:05:57 CET" "2012-03-09 08:39:39 CET"
"2012-03-11 07:47:56 CET" "2012-03-11 08:56:36 CET"
Jetzt habe ich einige Werte für einen zu diesen Zeiten gemessenen Parameter
val <- c(1.25343125e-05, 0.00022890575,
3.9269125e-05, 0.0002285681875,
4.26353125e-05, 5.982625e-05,
2.09575e-05, 0.0001516951251,
2.653125e-05, 0.0001021391875)
Ich möchte val gegen die Tageszeit zeichnen, unabhängig von dem spezifischen Tag, an dem val gemessen wurde.
Gibt es eine bestimmte Funktion, mit der ich das tun kann?
lubridate
, scheint ein interessantes Paket zu sein.Es wurden viele Lösungen bereitgestellt, aber ich habe diese nicht gesehen, die das Paket chron verwendet:
hours = times(strftime(times, format="%T")) plot(val~hours)
(Entschuldigung, ich bin nicht berechtigt, ein Bild zu posten. Sie müssen es selbst zeichnen.)
quelle
Der
time_t
Wert für Mitternacht GMT ist immer durch86400
(24 * 3600
) teilbar . Der Wert für Sekunden seit Mitternacht GMT ist somittime %% 86400
.Die Stunde in GMT ist
(time %% 86400) / 3600
und dies kann als x-Achse des Diagramms verwendet werden:plot((as.numeric(times) %% 86400)/3600, val)
Um eine Zeitzone anzupassen, passen Sie die Zeit vor der Aufnahme des Moduls an, indem Sie die Anzahl der Sekunden hinzufügen, die Ihre Zeitzone vor GMT liegt. Beispielsweise liegt die zentrale Sommerzeit (CDT) in den USA 5 Stunden hinter GMT. Um gegen die Zeit in CDT zu zeichnen, wird der folgende Ausdruck verwendet:
plot(((as.numeric(times) - 5*3600) %% 86400)/3600, val)
quelle