Recherche…


Remarques

Rubriques connexes

Notes brouillées

  • Date : stocke l'heure en nombre de jours depuis l'époque UNIX le 1970-01-01 . avec des valeurs négatives pour les dates antérieures.
  • Il est représenté par un entier (toutefois, il n'est pas appliqué dans la représentation interne)
  • Ils sont toujours imprimés selon les règles du calendrier grégorien actuel, même si le calendrier n'a pas été utilisé depuis longtemps.
  • Il ne suit pas les fuseaux horaires, il ne doit donc pas être utilisé pour tronquer le temps passé sur les objets POSIXct ou POSIXlt .
  • sys.Date() renvoie un objet de classe Date

Plus de notes

Dates de mise en forme

Pour mettre en forme les Dates nous utilisons la fonction format(date, format="%Y-%m-%d") avec soit POSIXct (donné à partir de as.POSIXct() ) ou POSIXlt (donné à partir 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"

Pour plus, voir ?strptime .

Rendez-vous

Pour contraindre une variable à une date, utilisez la fonction as.Date() .

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

La fonction as.Date() vous permet de fournir un argument de format. La valeur par défaut est %Y-%m-%d , soit Année-mois-jour.

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

La chaîne de format peut être placée entre deux guillemets simples ou entre guillemets. Les dates sont généralement exprimées sous diverses formes telles que: "dm-yy" ou "dm-YYYY" ou "md-yy" ou "md-YYYY" ou "YYYY-md" ou "YYYY-dm" . Ces formats peuvent également être exprimés en remplaçant "-" par "/" . De plus, les dates sont également exprimées sous les formes, par exemple "6 novembre 1986" ou "6 novembre 1986" ou "6 novembre 1986" ou "6 novembre 1986", etc. La fonction as.Date () accepte toutes ces chaînes de caractères et lorsque nous mentionnons le format approprié de la chaîne, elle affiche toujours la date sous la forme "YYYY-md" .

Supposons que nous ayons une chaîne de date "9-6-1962" au format "%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
> 

En spécifiant le format correct de la chaîne d'entrée, nous pouvons obtenir les résultats souhaités. Nous utilisons les codes suivants pour spécifier les formats à la fonction as.Date () .

Code de format Sens
%d journée
%m mois
%y année en 2 chiffres
%Y année en 4 chiffres
%b mois abrégé en 3 caractères
%B Nom complet du mois

Prenons l'exemple suivant en spécifiant le paramètre de format :

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

Le format du nom du paramètre peut être omis.

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

Quelques fois, les noms des mois abrégés aux trois premiers caractères sont utilisés dans l'écriture des dates. Dans ce cas, nous utilisons le spécificateur de format %b .

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

Notez que, dans la chaîne de date, il n'y a pas d'espaces '-' ou '/' ou de blancs entre les membres. La chaîne de format doit correspondre exactement à cette chaîne d'entrée. Prenons l'exemple suivant:

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

Notez que la chaîne de date contient une virgule et donc une virgule dans la spécification du format. Si la virgule est omise dans la chaîne de format, il en résulte une NA . Voici un exemple d'utilisation du spécificateur de format %B :

> 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 format %y est spécifique au système et doit donc être utilisé avec prudence. Les autres paramètres utilisés avec cette fonction sont l' origine et tz (fuseau horaire).

Analyse de chaînes en objets de date

R contient une classe Date, créée avec as.Date() , qui prend une chaîne ou un vecteur de chaînes et, si la date n'est pas au format de date ISO 8601 YYYY-MM-DD , une chaîne de strptime jetons de style 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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow