Konvertiert unix timestamp-Spalte nach Tag der Woche in R
Arbeite ich mit einem Daten-frame in R mit der Bezeichnung "mydata". Die erste Spalte, labled "ts" enthält die unix-timestamp-Felder. Ich würde gerne konvertieren Sie diese Felder, um die Tage der Woche.
Ich habe versucht, mit strptime und POSIXct Funktionen, aber ich bin nicht sicher, wie Sie richtig auszuführen:
> strptime(ts, "%w")
--Dieser Fehler zurückgegeben:
"Error in wie.Zeichen(x) : nicht zwingen Art 'Verschluss' zu Vektor vom Typ 'character'"
Ich auch gerade probiert, nur konvertieren Sie bis zu menschlich-lesbaren format POSIXct:
as.Date(as.POSIXct(ts, origin="1970-01-01"))
--Dieser Fehler zurückgegeben:
"Error in wie.POSIXct.Standard(ts, origin = "1970-01-01") :
weiß nicht, wie zu konvertieren 'ts' der Klasse "POSIXct""
Update: Hier ist, was schließlich für mich arbeiten:
> mydata$ts <- as.Date(mydata$ts)
dann
> mydata$ts <- strftime( mydata$ts , "%w" )
- Beispiel-Daten mit
dput
. ts
ist die Funktion, die die Zeit schafft-Serie-Objekte. Vielleicht haben Sie gedacht, zu schreibenstrptime(mydata$ts, "%w")
- Habe versucht, und es Ausgang 10k Zeilen, die wie folgt Aussehen: [9997] "2013-06-09" "2013-06-09" "2013-06-09" aber es erscheint nicht wie der eigentliche Inhalt der Daten-frame geändert.
- Ich denke, dass Sie verwenden möchten
strftime
- ordnen Sie die Ausgabe in ein Objekt, in diesem Fall
mydata$ts <- strftime( mydata$ts , ... )
- Nach dem Versuch, Ihren Vorschlag @SimonO101, bekomme ich diese "Fehler: '...' in einen falschen Kontext" --Ausgeführt, der Letzte Befehl, James vorgeschlagen, fror mein computer, weil es so eine große Datei (27 MB)
- die
...
war ein Platzhalter für die anderen Argumente, die Sie brauchen, zu geben in sich selbst! Versuchenmydata$ts <- strftime( mydata$ts , "%w" )
und darf ich Ihnen empfehlen, machen Sie sich mit einige der tutorials unter info Seite derr
tag. - sorry! Ich das falsch verstanden-dachte, es hatte einige Verbindung zu den ' ... ' - argument. Könnte ich weisen Sie den Ausgang zurück in die ts-Spalte? Ich bin wirklich nicht vertraut mit R -- versucht zu schauen in wie ordnen Sie die Ausgabe auf Objekte jetzt...
- Danke @SimonO101-ich werde check it out. Auch wenn ich versuche, ich bekomme Fehler in as.POSIXlt.numeric(x, tz = tz) : 'origin' angegeben werden muss-ich werde weiter suchen und danke für die Hilfe
- das ist genau das, was die
mydata$ts <-
tut.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Keine Notwendigkeit, den ganzen Weg zu gehen, um
strftime
wennPOSIXlt
gibt Sie diese direkt undstrftime
Anrufeas.POSIXlt
.Gibt es auch die
weekdays
Funktion, wenn Sie wollen Zeichen anstelle der numerischen Ausgabe: