Ändern des Datumsformats in R

7

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!

    
A.Krueger 16.09.2011, 03:56
quelle

5 Antworten

29

Hier gibt es zwei Schritte:

  • Parsen Sie die Daten. Ihr Beispiel ist nicht vollständig reproduzierbar, sind die Daten in einer Datei oder die Variable in einer Text- oder Faktorvariablen? Nehmen wir das letztere an, dann können Sie
  • tun, wenn Sie data.frame X nennen
%Vor%

Jetzt sollte die Spalte newdate vom Typ Date sein.

  • Formatieren Sie die Daten. Das ist eine Frage von 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.

    
Dirk Eddelbuettel 16.09.2011, 04:07
quelle
5
%Vor%

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%     
hmi 08.08.2016 09:48
quelle
3

Nachdem Sie Ihre Daten über textConnection eingelesen haben, scheint folgendes zu funktionieren:

%Vor%     
Chase 16.09.2011 04:11
quelle
3

Sie könnten auch die Funktion parse_date_time aus dem lubridate -Paket verwenden:

%Vor%

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.

    
Ben Rollert 07.02.2014 02:15
quelle
0

Ich glaube das

%Vor%

ist ausreichend.

    
joran 16.09.2011 04:17
quelle

Tags und Links