2016-11-21 2 views
0

Ich würde gerne eine Frage zur Konvertierung von numerischen Daten in Datumsformat stellen.Konvertieren numerische Daten wie "715" in Datum "Juli-2015" in R

Ich mag die numerischen Daten konvertieren, wie:

time1<-c(715, 1212, 0416) 

zu

July-2015, Dec-2012, Apr-2016 

Ich habe diesen Code versucht, aber es funktioniert nicht.

time2<-as.Date(as.character(time1), format="%m%y") 

Hat jemand einige Ideen, um dieses Problem zu lösen?

+1

Welche Sprache? C#? Java? Prolog? – user2023861

+0

meinst du TimeStamp –

+0

Es ist 'R' Sprache. Tut mir leid, ich vergesse zu klären. – Joanna

Antwort

2

Teil des Problems ist, dass "Juli 2015", "Dezember 2012" und "April 2016" sind nicht Termine, da der spezifische Tag fehlt. Ein anderer Ansatz ist die Konvertierung in zoo::yearmon. Hier muss die numerische Eingabe mit führenden Nullen in einen String umgewandelt werden, so dass der Monat von 01 zu 12 ist:

library(zoo) 
ym <- as.yearmon(sprintf("%04d",time1),format="%m%y") 
ym 
##[1] "Jul 2015" "Dec 2012" "Apr 2016" 

Das Ergebnis ist die Klasse yearmon, die dann zu Date dazu gezwungen werden können:

class(ym) 
##[1] "yearmon" 
d <- as.Date(ym) 
d 
##[1] "2015-07-01" "2012-12-01" "2016-04-01" 
class(d) 
##[1] "Date" 
2

Versuchen lubridate::parse_date_time():

library(lubridate) 
time2 <- parse_date_time(time1, orders = "my") 
format.Date(time2, "%b-%Y") 
[1] "juil.-2015" "déc.-2012" "avril-2016" # my locale lang is French 
+0

Vielen Dank @scoa. Das Interessante ist, dass dieser Code "715" in "Jun-2015" konvertiert. Ich nehme an, der Monat ist von 0 bis 11? Ich denke, dass diese Lösung nah ist, aber gibt es irgendeine Möglichkeit, den Monat von 1 bis 12 zu konvertieren? – Joanna

+1

Sieht so aus, als würde der Code "715" wie erwartet in "Jul-2015" umwandeln. – BLT

Verwandte Themen