Buscar..


Observaciones

Temas relacionados

Notas confusas

  • Date : Almacena el tiempo como número de días desde la época de UNIX en 1970-01-01 . con valores negativos para fechas anteriores.
  • Se representa como un entero (sin embargo, no se aplica en la representación interna)
  • Siempre se imprimen siguiendo las reglas del calendario gregoriano actual, aunque el calendario no se usó hace mucho tiempo.
  • No realiza un seguimiento de las zonas horarias, por lo que no debe utilizarse para truncar el tiempo de espera de los objetos POSIXct o POSIXlt .
  • sys.Date() devuelve un objeto de clase Date

Más notas

Fechas de formato

Para formatear las Dates , usamos la función format(date, format="%Y-%m-%d") con POSIXct (dado desde as.POSIXct() ) o POSIXlt (dado desde as.POSIXlt() )

d = as.Date("2016-07-21") # Current Date Time Stamp

format(d,"%a")            # Abbreviated Weekday
## [1] "Thu"

format(d,"%A")            # Full Weekday
## [1] "Thursday"

format(d,"%b")            # Abbreviated Month
## [1] "Jul"

format(d,"%B")            # Full Month
## [1] "July"

format(d,"%m")            # 00-12 Month Format
## [1] "07"

format(d,"%d")            # 00-31 Day Format
## [1] "21"

format(d,"%e")            # 0-31 Day Format
## [1] "21"

format(d,"%y")            # 00-99 Year
## [1] "16"

format(d,"%Y")            # Year with Century
## [1] "2016"

Para más, ver ?strptime .

fechas

Para forzar una variable a una fecha, use la función as.Date() .

> x <- as.Date("2016-8-23")
> x
[1] "2016-08-23"
> class(x)
[1] "Date"

La función as.Date() permite proporcionar un argumento de formato. El valor predeterminado es %Y-%m-%d , que es Year-month-day.

> as.Date("23-8-2016", format="%d-%m-%Y") # To read in an European-style date
[1] "2016-08-23"

La cadena de formato se puede colocar dentro de un par de comillas simples o dobles. Las fechas generalmente se expresan en una variedad de formas tales como: "dm-yy" o "dm-YYYY" o "md-yy" o "md-YYYY" o "YYYY-md" o "YYYY-dm" . Estos formatos también se pueden expresar reemplazando "-" por "/" . Además, las fechas también se expresan en las formas, por ejemplo, "6 de noviembre de 1986" o "6 de noviembre de 1986" o "6 de noviembre de 1986" o "6 de noviembre de 1986", etc. La función as.Date () acepta todas estas cadenas de caracteres y cuando mencionamos el formato apropiado de la cadena, siempre genera la fecha en la forma "YYYY-md" .

Supongamos que tenemos una cadena de fecha "9-6-1962" en el formato "%d-%m-%Y" .

#
# It tries to interprets the string as YYYY-m-d
#
> as.Date("9-6-1962")
[1] "0009-06-19"       #interprets as "%Y-%m-%d"
> 
as.Date("9/6/1962")
[1] "0009-06-19"       #again interprets as "%Y-%m-%d"
>
# It has no problem in understanding, if the date is in form  YYYY-m-d or YYYY/m/d
#
> as.Date("1962-6-9")
[1] "1962-06-09"        # no problem
> as.Date("1962/6/9")
[1] "1962-06-09"        # no problem
> 

Al especificar el formato correcto de la cadena de entrada, podemos obtener los resultados deseados. Usamos los siguientes códigos para especificar los formatos de la función as.Date () .

Código de formato Sentido
%d día
%m mes
%y año en 2 dígitos
%Y año en 4 dígitos
%b mes abreviado en 3 caracteres
%B nombre completo del mes

Considere el siguiente ejemplo especificando el parámetro de formato :

> as.Date("9-6-1962",format="%d-%m-%Y")
[1] "1962-06-09"
>

El formato del nombre del parámetro se puede omitir.

> as.Date("9-6-1962", "%d-%m-%Y")
[1] "1962-06-09"
>

Algunas veces, los nombres de los meses abreviados a los tres primeros caracteres se utilizan para escribir las fechas. En cuyo caso utilizamos el especificador de formato %b .

> as.Date("6Nov1962","%d%b%Y")
[1] "1962-11-06"
>

Tenga en cuenta que no hay '-' o '/' o espacios en blanco entre los miembros en la cadena de fecha. La cadena de formato debe coincidir exactamente con esa cadena de entrada. Considere el siguiente ejemplo:

> as.Date("6 Nov, 1962","%d %b, %Y")
[1] "1962-11-06"
>

Tenga en cuenta que hay una coma en la cadena de fecha y, por lo tanto, también una coma en la especificación de formato. Si se omite la coma en la cadena de formato, se produce un NA . Un ejemplo de uso del especificador de formato %B es el siguiente:

> as.Date("October 12, 2016", "%B %d, %Y")
[1] "2016-10-12"
>
> as.Date("12 October, 2016", "%d %B, %Y")
[1] "2016-10-12"
> 

%y formato %y es específico del sistema y, por lo tanto, debe utilizarse con precaución. Otros parámetros utilizados con esta función son origen y tz (zona horaria).

Análisis de cadenas en objetos de fecha

R contiene una clase de fecha, que se crea con as.Date() , que toma una cadena o un vector de cadenas, y si la fecha no tiene el formato de fecha ISO 8601 YYYY-MM-DD , una cadena de formato de strptime estilo strptime .

as.Date('2016-08-01')    # in ISO format, so does not require formatting string
## [1] "2016-08-01"

as.Date('05/23/16', format = '%m/%d/%y')
## [1] "2016-05-23"

as.Date('March 23rd, 2016', '%B %drd, %Y')    # add separators and literals to format
## [1] "2016-03-23"

as.Date('  2016-08-01  foo')    # leading whitespace and all trailing characters are ignored
## [1] "2016-08-01"

as.Date(c('2016-01-01', '2016-01-02'))
# [1] "2016-01-01" "2016-01-02"


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow