Teilen Sie die Datumsdaten (m / d / y) in 3 separate Spalten auf

7

Ich muss das Datum (m / d / y-Format) in 3 separate Spalten umwandeln, auf denen ich hoffentlich einen Algorithmus ausführen kann (ich versuche meine Daten in Julianische Tageszahlen umzuwandeln). Ich habe diesen Vorschlag für einen anderen Benutzer zur Trennung von Daten in mehrere Spalten mit Oracle gesehen. Ich benutze R und bin fest darüber, wie man das richtig codiert. Würde A1, A2 ... meine neuen Spaltenüberschriften darstellen, und was wäre der Formatunterschied mit dem Abschnitt "Update-Set"?

%Vor%

Ich bemühe mich sehr, meine Fähigkeiten in R zu verbessern, aber ich kann das nicht verstehen ... jede Hilfe wird sehr geschätzt. Vielen Dank im Voraus ...:)

    
Joey 02.11.2010, 14:11
quelle

4 Antworten

9

Gegeben eine Textvariable x, wie folgt:

%Vor%

dann:

%Vor%

konvertiert es in ein Datumsobjekt. Dann, wenn Sie es brauchen:

%Vor%

gibt Ihnen ein julianisches Datum (relativ zu 1970-01-01).

Versuche nicht die Teilstringsache ...

Siehe Hilfe (as.Date) für mehr.

    
Spacedman 02.11.2010, 14:29
quelle
18

Ich verwende die format() -Methode für Date -Objekte, um Daten in R auseinander zu ziehen. Mit Dirks datetext , hier ist, wie ich ein Datum in seine Bestandteile zerlegen würde:

%Vor%

Was gibt:

%Vor%

Beachten Sie, was mehrere andere gesagt haben; Sie können die Julianischen Daten erhalten, ohne die verschiedenen Datumskomponenten zu trennen. Ich fügte diese Antwort hinzu, um zu zeigen, wie Sie das Auseinanderbrechen machen könnten, wenn Sie es für etwas anderes brauchten.

    
Gavin Simpson 02.11.2010 16:42
quelle
6

Schnelle:

  1. Julianische Datumskonverter existieren bereits in der Basis R, siehe zB help(julian) .

  2. Eine Möglichkeit besteht darin, das Datum als POSIXlt zu analysieren und dann die Komponenten auszulesen. Andere Datum / Uhrzeit-Klassen und -Pakete funktionieren ebenfalls, aber für Base R muss etwas gesagt werden.

  3. Das Analysieren von Daten als String ist fast immer ein schlechter Ansatz.

Hier ist ein Beispiel:

%Vor%

Und natürlich

%Vor%     
Dirk Eddelbuettel 02.11.2010 14:20
quelle
1

Hallo Gavin: Ein anderer Weg [mit deiner Idee] ist:

Der Datenrahmen, den wir verwenden werden, sind Öllager, die eine Vielzahl von Variablen enthalten, die sich auf die Veränderungen der Öl- und Gasvorräte im Laufe der Zeit beziehen. Die Variablen sind:

%Vor%

Eines der ersten Dinge, die zu tun sind, ist, das Feld emdate, das ein ganzzahliger Vektor ist, in einen Datumsvektor zu ändern.

%Vor%

Als nächstes möchten wir die emdate-Spalte in drei separate Spalten aufteilen, die Monat, Tag und Jahr darstellen, wobei wir die von Ihnen bereitgestellte Idee verwenden.

%Vor%

ls() enthält die einzelnen Vektoren, Tag, Monat, Jahr und Dfdate. Fügen Sie nun Datum, Tag, Monat, Jahr in den ursprünglichen Datenrahmen [Aktien] ein.

%Vor%

Ähnliche Ergebnisse und ich habe auch Datum, Tag, Monat, Jahr als separate Vektoren außerhalb der df.

    
George Hart 15.11.2011 05:06
quelle

Tags und Links