2017-07-18 6 views
1

Versucht, einen Faktor bis heute zu machen.R Lubridat. Was läuft schief?

X:

Jul-15 
Jul-15 
Jul-15 
Jul-15 
Aug-16 

Ich möchte, dass sie auf ein Datum konvertieren.

X <- as.Date(Xx, format="%b-%y") 

Ergebnisse in NA.

Diese meine Quelle für den Code war: https://www.r-bloggers.com/date-formats-in-r/

+0

Did u dies versucht: x <- as.Date (as.character (Xx, format = "% b-% y")) – AntonCH

+0

Können Sie Ihre Frage editieren und Ergebnisse von 'dput (head (Xx))' '? – Masoud

Antwort

2

as.Date ist die Basis R-Funktion, as_date ist die lubridate Funktion, aber das ist nicht Ihr Problem

Ohne Tag, du bist nicht das Datum vollständig vollständig angeben. Im Gegensatz zu Jahr, wobei R mit dem laufenden Jahr füllen wird, scheint dies nicht für einen fehlenden Tag

Als Abhilfe kann passieren, laufen:

X <- as.Date(paste0(Xx,'-01'), format="%b-%y-%d") 

Welche Termine festgelegt wird als erster von der Monat

0

Die yearmon Funktion aus dem zoo Paket wird Ihnen hier helfen. Da Sie lubridate als ein Tag auf der Frage haben, können wir as_date aus dem lubridate Paket verwenden, um es in ein Datumsobjekt umzuwandeln. Die Basisfunktion as.Date funktioniert ebenfalls.

library(zoo) 
library(lubridate) 

as_date(as.yearmon(Xx, "%b-%y")) 

[1] "2015-07-01" "2015-07-01" "2015-07-01" "2015-07-01" "2016-08-01" 

Wenn Sie sie als yearmon Klasse verlassen wollen, können Sie einfach laufen:

as.yearmon(Xx, "%b-%y") 

[1] "Jul 2015" "Jul 2015" "Jul 2015" "Jul 2015" "Aug 2016" 
0

Sie benötigen ein vollständiges Datum mit Tag:

library(lubridate) 
X <- "Jul-15" 
X <- paste("01", X, sep="-") 
dmy(X)