R Language
La clase de fecha
Buscar..
Observaciones
Temas relacionados
Notas confusas
-
Date
: Almacena el tiempo como número de días desde la época de UNIX en1970-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
oPOSIXlt
. -
sys.Date()
devuelve un objeto de claseDate
Más notas
- Lubridate 's
ymd
,mdy
, etc. son alternativas aas.Date
que también se analizan a la clase Date; Consulte las fechas y fechas de análisis de las cadenas con lubricante . - data.table experimental clase idate 's se deriva de y es sobre todo intercambiable con la fecha, pero se almacena como número entero en lugar de doble.
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"