¿Cómo convierto una cadena en fecha y día en R?
Frecuentes
Visto 5,151 veces
1
Tengo un conjunto de datos con 10 columnas, una de las cuales es la fecha en el siguiente formato
10-MAR-12 00.00.00.000000000
Me gustaría convertir esto en un formato de datos que se lea como una fecha y no como una cadena en el siguiente formato
10/03/12
También me gustaría que hubiera una columna adicional que diga qué día de la semana es
Luego me gustaría filtrar ciertos días o fechas y crear un subconjunto de mis datos.
Soy un principiante en R, por lo que se agradece cualquier ayuda.
1 Respuestas
2
Echa un vistazo a ?strptime
para opciones de formato y as.Date
or as.POSIXct
para que la función convierta. Además, no se sorprenda si su pregunta es rechazada o cerrada, ya que esta es una pregunta común y las respuestas se pueden encontrar en SO o en una búsqueda rápida en Google.
Específicamente:
format(as.Date(tolower('10-MAR-12 00.00.00.000000000'), format='%d-%b-%y'), format='%d/%m/%y')
debería darle el formato que está buscando. Si desea un tipo de fecha, debe quitarse el exterior format
.
contestado el 22 de mayo de 12 a las 15:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas r date filter or haz tu propia pregunta.
Gracias, estaba tratando de usar strptime, sin embargo, estoy más atascado en agregar esto nuevamente a mi conjunto de datos y agregar columnas adicionales. Tenga en cuenta que soy un principiante COMPLETO en R (comencé a usarlo ayer) - user1407670
Hay muchas excelentes recursos allí afuera. Comenzaría allí y trabajaría con algunos ejemplos. Asumiendo que sus datos son un
data.frame
, que sondat
(Comprueba constr
) puede agregar columnas como:dat$newcol <- 'foo'
. Pero busque en Google la introducción a R y lea un montón. ¡Te ahorrarás horas de dolores de cabeza! - Justin¡Intenté lo siguiente e imprimí un montón de fechas en el mismo formato que antes con muchos 0 todavía! :( format(depdateold,as.Date(tolower('10-MAR-12 00.00.00.000000000'),format='%d-%b-%y'), format='%d/%m/%y' ) - user1407670
su vector de fecha se llama depdateold? ponlo en el lugar de la fecha larga que escribí.
depdatenew <- as.Date(tolower(depdateold), format='%d-%b-%y')
. Entonces revisastr(depdatenew)
para ver el formato de su nuevo vector. - Justin¿Filtrar? tendras que ser mas especifico. Y probablemente deberías hacer otra pregunta por separado. Pero sugeriría leer y tal vez comenzar con un problema más simple de resolver. - Justin