Ich habe einige sehr einfache Daten in R, deren Datumsformat geändert werden muss:
%Vor% Anstatt %d/%m/%Y
möchte ich es im Standard-R-Format von %Y-%m-%d
Wie kann ich diese Änderung vornehmen? Ich habe es versucht:
%Vor%Aber das schnitt einfach das Jahr ab und fügte dem Tag Nullen hinzu:
%Vor%Danke!
Hier gibt es zwei Schritte:
%Vor%
Jetzt sollte die Spalte newdate
vom Typ Date
sein.
format()
oder strftime()
: %Vor%
Ein vollständigeres Beispiel:
%Vor% Der Unterschied zwischen den Spalten drei und vier ist der Typ: newdate
ist der Klasse Date
, während txtdate
ein Zeichen ist.
In dem obigen Codeabschnitt gibt es zwei Fehler. Vor allem, wenn Sie nzd$date
in as.Date
lesen, erwähnen Sie nicht in welchem Format Sie es füttern date
. Also, es versucht sein Standardformat, es zu lesen. Wenn Sie help
doc, ?as.Date
sehen, sehen Sie
Format
Eine Zeichenfolge. Wenn nicht angegeben, versucht es "% Y-% m-% d" dann "% Y /% m /% d" auf dem ersten Nicht-NA-Element, und geben Sie einen Fehler wenn keiner funktioniert. Ansonsten erfolgt die Verarbeitung über strptime
Der zweite Fehler ist: Obwohl du es in %Y-%m-%d
format lesen möchtest, hast du in format
"%Y/%m/%d"
geschrieben.
Nun, die richtige Vorgehensweise ist:
%Vor% Sie könnten auch die Funktion parse_date_time
aus dem lubridate
-Paket verwenden:
parse_date_time
gibt ein POSIXct-Objekt zurück, also verwenden wir as.Date
, um ein Datumsobjekt zu erhalten. Das erste Argument von parse_date_time
gibt einen Datumsvektor an, das zweite Argument gibt die Reihenfolge an, in der das Format auftritt. Das Argument orders
macht parse_date_time
sehr flexibel.
Tags und Links r format date-conversion strptime