2013-10-18 7 views
10

Ich habe einen Vektor von Zeiten in R, all_symbols $ Zeit und ich versuche herauszufinden, wie man einfach die Zeiten (oder konvertieren Sie die Zeiten in Strings ohne zu verlieren Information). Ich benutzeWillst du nur den Zeitteil eines Datum-Zeit-Objekts in R

strptime(all_symbol$Time[j], format="%H:%M:%S") 

aus irgendeinem Grunde, die das Datum heute davon ausgegangen wird, und gibt

[1] "2013.10.18 09.34.16"

Datum und Uhrzeit Formatierung in R ist ziemlich nervig. Ich versuche, die Zeit nur zu bekommen, ohne zu viele Pakete hinzuzufügen (wirklich irgendwelche - ich bin auf einem Schulcomputer, wo ich Bibliotheken nicht installieren kann).

+0

Was 'class' ist' all_symbols $ Time'? Ich vermute, du willst stattdessen 'strftime' verwenden. – James

+0

@James Ich bin mir nicht sicher; Wie kann ich überprüfen? Wenn ich 'A = strftime (all_symbol $ Zeit [j], format = "% H:% M:% S")' in bekomme ich 'Fehler in as.POSIXlt.character (as.character (x), ...): Zeichenkette ist nicht in einem einheitlichen Standardformat ' – Erroldactyl

+1

'Klasse (all_symbols $ Zeit)' wird Ihnen die Klasse geben. – James

Antwort

11

Sobald Sie strptime verwenden, erhalten Sie ein Datum-Zeit-Objekt und das Standardverhalten für kein Datum in der Formatzeichenfolge ist, das heutige Datum anzunehmen. Wenn Ihnen das nicht gefällt, müssen Sie einen String vorgeben, der das Datum Ihrer Wahl ist.

@James' Vorschlag ist, entspricht dem, was ich vorschlagen würde:

format(all_symbol$Time[j], format="%H:%M:%S") 

Das einzige Paket, das ich kenne, dass Zeitklassen hat (dh Tageszeit ohne Wert zugeordnet Datum) ist Paket: chron . Ich finde jedoch, dass die Verwendung von Format als eine Möglichkeit zur Ausgabe von Zeichenwerten aus POSIXt-Objekten sich gut für Funktionen eignet, die eine Faktoreingabe erfordern.

+0

+1 - Und sogar ** chron **, IIRC, stellt Zeiten als Bruchteile von Tagen dar, "unter all dem". –

+1

@BondedDust, das funktioniert nicht für Plotzwecke! –

+0

Ihr Kommentar hat keinen Kontext! Wenn Sie 'axis' verwenden, benötigen Sie ein passendes at-Argument, das numerisch ist, und ein" label "-Argument, das ein Zeichen ist. Wenn Sie eine andere Grafikfunktion verwenden, müssen Sie das x-Argument der Plotfunktion mit dem at-Argument für diese Achsenfunktion zuordnen, unabhängig davon, welche Argumente benannt werden können. –

Verwandte Themen