2017-03-29 2 views
0

J'ai une entrée de données qui se présente sous la forme d/m/y heure, par exemple: "3/27/2017 1:20:15 AM" et Je veux juste avoir d/m/y pour afficher 27/03/2017.Conversion du format de la date du format d/m/y à d/m/y

J'ai vu différentes techniques sur la façon d'y parvenir et j'ai essayé 3 types différents, mais je reçois NA comme nouvelle sortie et pour plus tard, je reçois le "Error in charToDate (x): chaîne de caractères n'est pas dans un format univoque standard " erreur.

Voici un exemple de code mon:

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") 

Répondre

0

On dirait que vous voulez format = %m/%d/%Y au lieu de %d/%m/%Y.

Si des formats de date spécialisés continuent à vous poser des problèmes, vous pouvez d'abord utiliser strsplit() pour diviser la chaîne de caractères sur les espaces, puis saisir le premier élément pour obtenir uniquement la date.

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

Vous devez fournir une chaîne de formatage complète afin de l'identifier comme une date-heure. Dans votre cas, ce serait quelque chose comme ceci:

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