2017-03-29 3 views
0

Ich habe Dateneingabe in Form von d/m/y Zeit zB: "27.03.2017 1:20:15 AM" und Ich möchte nur d/m/y haben, um 27.03.2017 anzuzeigen.Konvertieren von Datumsformat von d/m/y Zeit zu d/m/y

Ich habe verschiedene Techniken gesehen, wie dies zu erreichen ist und habe 3 verschiedene Typen ausprobiert, aber ich empfange NA als die neue Ausgabe und für den späteren bekomme ich die "Error in charToDate (x): Zeichenkette ist nicht in a standardmäßiges eindeutiges Format " Fehler.

Hier ist ein Beispiel mein Code:

df <- data.frame(Date = "3/27/2017 1:20:15 AM") 

df$Date <- as.POSIXct(as.character(df$Date), format = "%d/%m/%Y") 

df$Date <- as.Date(df$Date, "%d/%m/%Y") 

df$Date <- format(as.Date(df$Date), "%d/%m/%Y") 

Antwort

0

Sieht aus wie Sie Format wollen = %m/%d/%Y statt %d/%m/%Y.

Wenn spezielle Datumsformate immer noch Probleme mit der Zeit danach verursachen, können Sie zunächst strsplit() verwenden, um die Zeichenfolge in Leerzeichen aufzuteilen, und dann das erste Element abrufen, um nur das Datum zu erhalten.

date <- "3/27/2017 1:20:15 AM" 
date <- strsplit(date," ") 
date <- unlist(date)[1] 
date <- as.POSIXct(date,format="%m/%d/%Y") 
0

Sie müssen die vollständige Formatzeichenfolge angeben, um sie als Datum/Uhrzeit zu identifizieren. In Ihrem Fall würde es in etwa so aussehen:

as.Date("3/27/2017 1:20:15 AM", format = "%m/%d/%Y %I:%M:%S %p") 
Verwandte Themen