Crear fechas y aplicarles formato

Para crear un objeto Date a partir de una simple cadena de caracteres en R, puedes utilizar la función as.Date(). La cadena de caracteres tiene que seguir un formato que puede definirse usando un conjunto de símbolos (los ejemplos corresponden al 13 de enero de 1982):

  • %Y: año de 4 cifras (1982)
  • %y: año de 2 cifras (82)
  • %m: mes de 2 cifras (01)
  • %d: día del mes de 2 cifras (13)
  • %A: día entre semana (miércoles)
  • %a: día entre semana abreviado (mié)
  • %B: mes (enero)
  • %b: mes abreviado (ene)

Los siguientes comandos de R crearán todos el mismo objeto Date para el día 13 de enero de 1982:

as.Date("1982-01-13")
as.Date("Jan-13-82", format = "%b-%d-%y")
as.Date("13 January, 1982", format = "%d %B, %Y")

Fíjate en que la primera línea aquí no necesitaba un argumento de formato, porque, de forma predeterminada, R hace coincidir tu cadena de caracteres con los formatos "%Y-%m-%d" o "%Y/%m/%d".

Además de crear fechas, también puedes convertirlas en cadenas de caracteres que utilicen una notación de fecha diferente. Para ello, debes utilizar la función format(). Prueba con las siguientes líneas de código:

today <- Sys.Date()
format(Sys.Date(), format = "%d %B, %Y")
format(Sys.Date(), format = "Today is a %A!")

Este ejercicio forma parte del curso

R intermedio

Ver curso

Instrucciones de ejercicio

  • Se han creado tres cadenas de caracteres que representan fechas. Conviértelas en fechas utilizando as.Date() y asígnalas a date1, date2 y date3, respectivamente. El código para date1 ya está incluido.
  • Extrae información útil de las fechas como cadenas de caracteres utilizando format(). En la primera fecha, selecciona el día de la semana. En la segunda fecha, selecciona el día del mes. En la tercera fecha, debes seleccionar el mes abreviado y el año de 4 cifras, separados por un espacio.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

# Definition of character strings representing dates
str1 <- "May 23, '96"
str2 <- "2012-03-15"
str3 <- "30/January/2006"

# Convert the strings to dates: date1, date2, date3
date1 <- as.Date(str1, format = "%b %d, '%y")



# Convert dates to formatted strings
format(date1, "%A")