2016-04-17 15 views
0

Ich habe einen Datenrahmen von 700000 Reihen zahlreiche Datumsformate, die wieSolving Datum Ausgabe in r

10/15/2014 (10 Monat, 15 Datum und 2014 ist Jahr)
10-12-14 (10 ist Datum, 12 ist Monat und 14 ist Jahr)
18.04.2015 (4 ist Monat 18 ist Datum und 2015 ist Jahr)
31-03-16 (31 ist Datum 03 ist Monat und 16 ist Jahr)

Es kann andere Formate geben, aber das ist ein Beispiel, das ich sehen konnte.

Kann ich eine Funktion bekommen, um einzigartige Datumsformate zu finden und ein ähnliches Datumsformat auf alle anzuwenden, um sie in einem einzigen TT-MM-JJJJ-Format zu konvertieren.

+5

wird schwierig sein, wie zweideutig Daten sein wird - 2016.01.02 ist die erste Februar oder zweiten Januar. –

+0

(um nur zu betonen, 11/12 Tage in jedem Monat sind mehrdeutig, so würden 36% Ihrer Daten Junk sein, wenn es kein einheitliches Format gibt) – MichaelChirico

+0

Woher wissen Sie, 10/12/14 ist Datum/Monat/Jahr und nicht Monat/Datum/Jahr? – MichaelChirico

Antwort

0

Geben parse_date_time einen Versuch und zwicken sie:

library(lubridate) 
x <- c("10/15/2014", "10-12-14", "4/18/2015", "31-03-16") 
parse_date_time(x, c("mdY", "dmy")) 
# [1] "2014-10-15 UTC" "2014-12-10 UTC" "2015-04-18 UTC" "2016-03-31 UTC" 
+0

Wie verwende ich gsub oder grepl, um "10-02-14" Art von Datumsformaten gleichzeitig in meinem Datenrahmen herauszufiltern. Ich denke, das kann mir mit bestimmten Daten an einem Ort helfen und ich kann sie in die gleichen Formate konvertieren – Ashish

+0

'grep (" \\ d {2} - \\ d {2} - \\ d {2} ", x, invertieren = T, value = TRUE) 'filtert out' "10-02-14" ',' "09-02-10" etc. Siehe Hilfe unter '? \' Regulärer Ausdruck \ ''. – lukeA