Fehler bei Umwandlung eines Datums

Wie erweitere ich R um eigene Funktionen oder Pakete? Welches Paket ist passend für meine Fragestellung?

Moderatoren: EDi, jogo

Antworten
Kartim92
Beiträge: 5
Registriert: Do Mai 17, 2018 11:08 pm

Fehler bei Umwandlung eines Datums

Beitrag von Kartim92 » Do Mai 17, 2018 11:27 pm

Guten Abend zusammen,

in meinem vorliegenden Datensatz ist unter anderem eine Spalte in der ein Datum in folgendem Format vorliegt:

"31jan2013" "28feb2013" "31mar2013" "30apr2013" "31may2013" "30jun2013" "31jul2013" "31aug2013" "30sep2013" "31oct2013" "30nov2013" "31dec2013"

Das Format des Vektors ist "factor". Diesen Vektor möchte ich in ein bearbeitbares Datum umwandeln. Zunächst habe ich über folgende Funktion den Vektor in das Format character umgewandelt:

BSP$date <- as.character(BSP$date)

Im nächsten Schritt habe ich mittels strptime den Vektor in ein Datum gewandelt:

BSP$date_new <-strptime(BSP$date, format = "%d%b%Y")

Das Ganze hat auch beim ersten Versuch erstaunlich gut funktioniert. Leider wird für bestimmte Monate immer der Wert "NA" ausgegeben. Die Vektoreinträge für die obenstehende Reihe sehen wie folgt aus:

"2013-01-31 CET" "2013-02-28 CET" NA "2013-04-30 CEST" NA "2013-06-30 CEST" "2013-07-31 CEST" "2013-08-31 CEST" "2013-09-30 CEST" NA "2013-11-30 CET" NA

Das Problem tritt über den gesamten Vektor in den Monaten März, Mai, Oktober und Dezember auf. Leider bin ich mit meinem Wissen am Ende :cry: und frage mich, wie ich das Problem löse. Kann mir jemand aus der Community helfen?

Vielen Dank vorab und beste Grüße

Athomas
Beiträge: 78
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Fehler bei Umwandlung eines Datums

Beitrag von Athomas » Fr Mai 18, 2018 12:03 am

Guckst Du hier:

Code: Alles auswählen

alter.Stand <- Sys.getlocale(category="LC_TIME")
alter.Stand

Datumsstring <- "11may2018"
Datum <- as.Date(Datumsstring, format = "%d%b%Y")
Datum

Sys.setlocale(category = "LC_TIME", locale = "US")
Datum <- as.Date(Datumsstring, format = "%d%b%Y")
Datum

Sys.setlocale(category = "LC_TIME", locale = alter.Stand)
Sys.getlocale(category="LC_TIME")
Glaube nicht alles, was im Internet geschrieben wird - bloss weil da ein Name und ein Zitat stehen! (Immanuel Kant)

Kartim92
Beiträge: 5
Registriert: Do Mai 17, 2018 11:08 pm

Re: Fehler bei Umwandlung eines Datums

Beitrag von Kartim92 » Fr Mai 18, 2018 10:00 am

Hallo Athomas,

funktioniert super, vielen vielen Dank :)

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast