2016-10-14 5 views
-2

Es ist mein erster Beitrag hier, aber ich habe schon viel von euch allen profitiert. Dieses Problem konnte ich jedoch nicht selbst beheben:R - Datumsumrechnung von Faktor

Ich verwende read.csv, um eine ziemlich große Menge von Beobachtungen einschließlich ihrer Daten zu importieren. Die jeweilige Datumsspalte (‚data $ date‘) in meinem Datenrahmen eine ganze Zahl Vektor und sieht wie folgt aus:

head(data$date) 
[1] "26 Oct 15" "03 Nov 15" "10 Nov 15" "17 Nov 15" "19 Nov 15" "19 Nov 15" 
class(data$date) 
[1] "factor" 

Wenn es in ein ‚Datum‘ Objekt zu konvertieren versuchen, habe ich das ‚, wie. Date()‘Funktion:

tmp <- as.Date(data$date, format="%d %h %Y") 
head(tmp) 
[1] "0015-10-26" "0015-11-03" "0015-11-10" "0015-11-17" "0015-11-19" "0015-11-19" 

wie man sehen kann, tut es das Datum Kind von rechts bekommen, aber es gibt zwei Probleme:
1) Warum wird das Jahr als‚0015‘dargestellt statt„2015 "?
2) Ich nehme an, die Funktion gibt das Datum im Standardformat zurück. Allerdings mag ich in einem anderen Format Daten verwenden (das heißt das Ausgangsformat) und I bezeichnen die Funktion

format() 

Allerdings gibt diese Funktion ein Zeichen Objekt, das ich nicht für meine Analysen verwenden kann. Gibt es also eine andere Möglichkeit, das Datumsformat zu ändern, ohne die Klasse des Objekts zu ändern?

Vielen Dank für Ihre Unterstützung!
Jakob

+1

Verwenden '% y' statt'% Y 'und das Jahr zu beheben scheint versuchen, gelöst werden. – aichao

+1

'tmp + 2000'? :) Nur ein Scherz ... Ich denke, es ist, weil Sie% Y anstatt% y angegeben haben. –

Antwort

1

Möglicherweise können Sie die folgende

vec <- c("26 Oct 15", "03 Nov 15", "10 Nov 15", "17 Nov 15", "19 Nov 15", "19 Nov 15") 

tmp <- as.Date(vec, format="%d %h %y") 

Es sollte es

Dank

+0

Danke, das hat den Job gemacht. Kann ich jedoch das Format ändern, ohne die d –

+0

Danke, das hat den Job. Kann ich jedoch das Format ändern, ohne das Datum in ein Zeichenobjekt umzuwandeln? –

+0

Scheint so 'fac_vec <- as.factor (vec) tmp <- as.Date (fac_vec, format ="% d% h% y ")' es sieht nicht aus wie es einen Unterschied macht –