2016-04-05 15 views
0

Ich importiere ein csv, und es speichert Daten als Monat-Jahr (April-02 für April 2002). In der CSV-Datei ist ein Tag im Wert enthalten. So würde April-02 tatsächlich einen Wert in der Datei als etwas wie 4/10/2002 haben. Wenn ich die Datei in R importiere, behält sie das Format von Apr-02 und speichert es als Faktor. Ich habe versucht,R import csv verlieren Datum (Tag) Wert

ds$val <- as.Date(ds$val, format = "%b-%y") 

zu verwenden, um es als ein Datum zu erhalten, aber es ergibt alle NAs. Ich kann

ds$val <- strptime(paste("1", as.character(ds$val)), format="%d %b-%y") 

aber ich verliere den Tag. Gibt es eine Möglichkeit, das vollständige Datum beim Importieren des CSV zu erhalten (abgesehen von der Änderung des Formats in der CSV-Datei)?

Danke!

EDIT: first 5 rows in original format

angehängtes Bild der CSV-Daten in dem ersten ist das ursprüngliche Format.

Wenn ich die Daten in dem Normalformat zu ändern, Werte sind: 2002.04.10, 1997.08.24, 1999.01.06, 10.10.2008, 8/16/1985

+1

Wenn es als "Apr-02" 'in Text in einem csv gespeichert ist, verstehe ich nicht, wie es einen Tag hat. Ist dies ein Excel-Formatierungsproblem? – thelatemail

+0

Ein Datum muss einen Tag, einen Monat und ein Jahr enthalten. Wenn alle Werte in Ihrer Datei denselben Tag haben, nur unterschiedliche Monate/Jahre, müssen Sie diesen Tag hinzufügen, bevor Sie versuchen, ihn in ein Datum zu konvertieren. – joran

+0

Vereinbaren Sie mit @thelatemail. Excel speichert eine Reihe von Dingen beim Speichern einer Datei als CSV. Öffnen Sie die CSV in Notepad ++ und Sie werden überrascht sein, aber es ist nicht, dass Excel warnte Sie nicht, bevor Sie es als CSV speichern ... – chinsoon12

Antwort

1

Wenn Sie stringsAsFactors = FALSE mit dem Aufruf von read.csv verwenden, erhalten Sie keine Faktoren, sondern Zeichenwerte. Aber das ist nicht das eigentliche Problem, da as.Date Faktoren akzeptiert. Sie können as.Date nur verwenden, wenn Sie einen Wert für den Tag des Monats einfügen oder die yearmon-Klasse des Zoo-Pkg verwenden.