-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ajout d'une nouvelle fiche sur les données temporelles (issue #491) #497
Ajout d'une nouvelle fiche sur les données temporelles (issue #491) #497
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Génial ! Superbe fiche, ça manquait, merci beaucoup !
Quelques micro suggestions de ma part
| Format américain | AAAA-MM-JJ | 2023-12-25 | | ||
|
||
Une date peut aussi désigner un horaire ou un moment précis. On peut | ||
alors spécifier les heures, les minutes, les secondes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Et les fuseaux horaires ? Pour mémoire, la France est le pays qui a le plus grand nombre de fuseaux horaires au monde (13 en tout)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, je propose de modifier la remarque en précisant :
Une date peut aussi désigner un horaire ou un moment précis à un fuseau horaire. On peut alors spécifier les heures, les minutes, les secondes et le fuseau de l'évènement.
Par exemple :
- la date
2023-05-24T04:03:00Z
désigne le 24 mai 2023 à 4h03 au fuseau UTC.- la date
2023-02-11T12:37:00-04:00
désigne le 11 février 2023 à 12h37 dans une zone de fuseau horaire -4h (par exemple les antilles ou la bolivie).
Aussi j'en parle dans cette partie :
### Les différents fuseaux horaires |
Je ne sais pas si il y a besoin de préciser plus.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ça me semble très bien comme proposition
|
||
Pour créer une date en R, il suffit de faire appel à la fonction | ||
`as.Date()`{.r} du package `base`. Par défaut, l'argument format | ||
correspond au format américain : |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
non, ce n'est pas le format américain, c'est la norme ISO 8601, celle que nous devrions tous utiliser, même en France. Le problème ici est nos usages en France, pas les USA
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok ! Je n'avais pas très bien compris cette remarque d'ISO et de format de date.
Je propose de changer le tableau en :
Type | Exemple (Noël 2023) |
---|---|
JJ/MM/AAAA | 25/12/2023 |
AAAA-MM-JJ | 2023-12-25 |
et simplement de renvoyer à l'encadré sur les normes :
utilitR/03_Fiches_thematiques/Fiche_donnees_temporelles.qmd
Lines 200 to 228 in 57e1eac
### Les normes ISO8601 et RFC3339 | |
Les normes ISO8601 et RFC3339 sont des conventions de représentation des | |
dates. Selon ces 2 normes, certains formats de dates sont acceptés ou | |
non. | |
Par exemple, voici quelques format représentant la date du 24 mai 2023 à | |
8h43 (UTC) : | |
- `"2023-05-24T08:43:00Z"`{.r} est un format accepté par ces 2 normes. | |
- `"2023-05-24t08:43:00z"`{.r} est un format accepté uniquement par la | |
norme RFC3339. | |
- `"2023-05-24T08:43Z"`{.r} est un format accepté uniquement par la | |
norme ISO8601. | |
Pour savoir quels formats sont acceptés par ces normes, une infographie | |
est disponible [ici](https://ijmacd.github.io/rfc3339-iso8601/) : | |
https://ijmacd.github.io/rfc3339-iso8601/. | |
On peut aussi utiliser le package `parsedate` qui permet de lire une | |
date au format ISO8601 | |
```{r, warning = FALSE} | |
library("parsedate") | |
parse_iso_8601("2023-05-24T08:43:00Z") # Accepté par ISO8601 | |
parse_iso_8601("2023-05-24t08:43:00z") # Refusé par ISO8601 | |
parse_iso_8601("2023-05-24T08:43Z") # Accepté par ISO8601 | |
``` |
?
library("zoo") | ||
|
||
zoo::as.Date(time(serie_mensuelle)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
c'est bizarre de faire un appel à library()
suivi de zoo::
, non ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oui...
library()
c'est pour montrer qu'on appelle bien ce package- et
zoo::as.Date()
pour expliquer que lorsqu'on utilise cette fonction il faut bien spécifier le package d'origine pour pas se mélanger avec la fonctionbase::as.Date()
(qui a un comportement différent)
J'explique un peu ici :
utilitR/03_Fiches_thematiques/Fiche_donnees_temporelles.qmd
Lines 38 to 41 in 57e1eac
- La fonction `as.Date()`{.r} existe dans les packages `base` et | |
`zoo`, mais n'a pas la même fonctionnalité. A chaque fois qu'elle | |
sera utilisée, on précisera son package d'origine au moyen de `::` | |
(`base::as.Date()`{.r} ou `zoo::as.Date()`{.r}). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
La fiche est très claire et j'ai appris des trucs !
Seulement quelques coquilles à corriger.
Co-authored-by: Romain Lesur <[email protected]>
```{r} | ||
# En minutes | ||
units(age) <- "mins" | ||
print(age) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Il me semble qu'on peut faire aussi en une ligne :
print(age, units = "mins")
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Chez moi cela ne marche pas...
print(age, units = "mins")
Time difference of 29599 days
Selon la version de R (je suis en version 4.3.0) ?
Co-authored-by: Romain Lesur <[email protected]>
Co-authored-by: Romain Lesur <[email protected]>
Co-authored-by: Romain Lesur <[email protected]>
Co-authored-by: Romain Lesur <[email protected]>
…y/utilitR into fiche-temporelle
Proposition d'une nouvelle fiche sur les séries temporelles en R.