R Language
La classe Date
Ricerca…
Osservazioni
argomenti correlati
Note confuse
-
Date
:1970-01-01
il tempo in numero di giorni dall'epoca UNIX del1970-01-01
. con valori negativi per date precedenti. - È rappresentato come un numero intero (tuttavia, non viene applicato nella rappresentazione interna)
- Vengono sempre stampati seguendo le regole dell'attuale calendario gregoriano, anche se il calendario non era in uso molto tempo fa.
- Non tiene traccia dei fusi orari, quindi non dovrebbe essere usato per troncare il tempo fuori
POSIXlt
oggettiPOSIXct
oPOSIXlt
. -
sys.Date()
restituisce un oggetto di classeDate
Altre note
- lubridate 's
ymd
,mdy
, ecc sono alternative aas.Date
che analizzano anche la classe Date; vedere le date di analisi e i periodi di tempo dalle stringhe con lubridate . - data.table sperimentale classe IDATE s' è derivato da e per lo più è intercambiabile con data, ma viene memorizzato come numero intero, invece di doppio.
Date di formattazione
Per formattare le Dates
utilizziamo la funzione format(date, format="%Y-%m-%d")
con POSIXct
(dato da as.POSIXct()
) o POSIXlt
(dato da 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"
Per ulteriori informazioni, vedere ?strptime
.
Date
Per forzare una variabile in una data, utilizzare la funzione as.Date()
.
> x <- as.Date("2016-8-23")
> x
[1] "2016-08-23"
> class(x)
[1] "Date"
La funzione as.Date()
consente di fornire un argomento di formato. L'impostazione predefinita è %Y-%m-%d
, che è Anno-mese-giorno.
> as.Date("23-8-2016", format="%d-%m-%Y") # To read in an European-style date
[1] "2016-08-23"
La stringa di formato può essere inserita all'interno di una coppia di apici singoli o doppi apici. Le date sono solitamente espresse in una varietà di forme come: "dm-yy"
o "dm-YYYY"
o "md-yy"
o "md-YYYY"
o "YYYY-md"
o "YYYY-dm"
. Questi formati possono anche essere espressi sostituendo "-"
con "/"
. Inoltre, le date sono espresse nelle forme, ad esempio "6 novembre 1986" o "6 novembre 1986" o "6 novembre 1986" o "6 novembre 1986" e così via. La funzione as.Date () accetta tutte queste stringhe di caratteri e quando menzioniamo il formato appropriato della stringa, emette sempre la data nel formato "YYYY-md"
.
Supponiamo di avere una stringa di data "9-6-1962"
nel 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
>
Specificando il formato corretto della stringa di input, possiamo ottenere i risultati desiderati. Utilizziamo i seguenti codici per specificare i formati alla funzione as.Date () .
Codice di formato | Senso |
---|---|
%d | giorno |
%m | mese |
%y | anno a 2 cifre |
%Y | anno a 4 cifre |
%b | mese abbreviato in 3 caratteri |
%B | nome completo del mese |
Considera il seguente esempio che specifica il parametro di formato :
> as.Date("9-6-1962",format="%d-%m-%Y")
[1] "1962-06-09"
>
Il formato del nome del parametro può essere omesso.
> as.Date("9-6-1962", "%d-%m-%Y")
[1] "1962-06-09"
>
Alcune volte, i nomi dei mesi abbreviati con i primi tre caratteri sono usati nella scrittura delle date. Nel qual caso usiamo lo specificatore di formato %b
.
> as.Date("6Nov1962","%d%b%Y")
[1] "1962-11-06"
>
Nota che non ci sono spazi '-'
o '/'
o spazi bianchi tra i membri nella stringa della data. La stringa di formato dovrebbe corrispondere esattamente alla stringa di input. Considera il seguente esempio:
> as.Date("6 Nov, 1962","%d %b, %Y")
[1] "1962-11-06"
>
Nota che c'è una virgola nella stringa della data e quindi anche una virgola nella specifica del formato. Se la virgola è omessa nella stringa di formato, ne risulta una NA
. Un esempio di utilizzo dello specificatore di formato %B
è il seguente:
> 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
è specifico per il sistema e, quindi, deve essere usato con cautela. Altri parametri utilizzati con questa funzione sono origine e tz (fuso orario).
Analisi delle stringhe negli oggetti di data
R contiene una classe Date, che viene creata con as.Date()
, che accetta una stringa o un vettore di stringhe e se la data non è nel formato data ISO 8601 YYYY-MM-DD
, una stringa di formattazione di token strptime
- 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"