Document as.IDate() behaviour with fractional dates
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 1/5
- Temps estimé
- Moins d'une heure
- Accessibilité débutants
- 78/100
- Type d'issue
- Documentation
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- r
- Domaine
- documentation
Piste de recherche
Le comportement provient de as.IDate() pour les entrées de type Date, qui passent par as.integer() et arrondissent donc vers l'époque ; les exemples du rapport montrent la différence avec un arrondi vers le bas préalable. Trouve la documentation de as.IDate (son fichier Rd ou le bloc roxygen) et ajoute une courte note indiquant que les valeurs Date fractionnaires sont tronquées vers zéro, avec l'exemple de l'issue. C'est terminé lorsque la page d'aide mentionne l'arrondi et que les exemples s'exécutent toujours.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
as.IDate() calls as.integer() on Date input which means fractional dates are rounded towards the unix epoch. This leads to the following behaviour.
(origin <- .Date(0))
#> [1] "1970-01-01"
(dates <- c(origin - 0.2, origin + 0.2))
#> [1] "1969-12-31" "1970-01-01"
data.table::as.IDate(dates)
#> [1] "1970-01-01" "1970-01-01"
# I believe this is being done internally with the 'Date' method
as.integer(dates)
#> [1] 0 0
# Alternative is to floor first
as.integer(floor(unclass(dates)))
#> [1] -1 0
To me flooring is the more 'expected' result so (assuming it is not something you wish to change) is it worth pointing this behaviour out explicitly in the documentation. Apologies if I've missed this but couldn't see it mentioned.
- Langage dominant
- R
- Étoiles
- 3.9k
- Forks
- 1.1k
- Merge moyen
- 1 j 8 h
- PR mergées (30 j)
- 14
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de Rdatatable/data.table
-
beginner-task
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Rdatatable/data.table#7948 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
as.data.table() recurses without end on a survival::Surv object (or any data.frame carrying one)Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
Rdatatable/data.table#7887 ·
Les mainteneurs répondent en général sous 1 jour
-
test() doesn't distinguish plain NA_real_, NaNPeut-être pris @MichaelChirico l’a pris il y a 97 jours. Ouverteconsistency tests
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Rdatatable/data.table#7853 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
HAVE_LONG_DOUBLE is conditioned on but never setPeut-être pris @venom1204 l’a pris il y a 541 jours. Ouverteinternals
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
Rdatatable/data.table#6938 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
encoding fread
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
Rdatatable/data.table#5179 · 8 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de Rdatatable/data.table
Issues similaires
-
RPCA vs. rarefaction referenceOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
microbiome/OMA#911 ·
-
SbivarOuverteAI review
Difficulté 1/5 Moins d'une heure Accessibilité débutants 78/100
LiNk-NY/BiocReviews#76 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
-
Simulated outbreak data contains partial information for time after `cap_max_day`Peut-être pris @joshwlambert l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 77/100
epiforecasts/ringbp#258 ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 83/100