Document as.IDate() behaviour with fractional dates
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 1/5
- Geschätzter Aufwand
- Unter einer Stunde
- Anfängerfreundlichkeit
- 78/100
- Issue-Typ
- Dokumentation
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- r
- Bereich
- documentation
Rechercherichtung
Das Verhalten kommt von as.IDate() bei Date-Eingaben, die über as.integer() laufen und daher zum Epoch hin runden; die Beispiele im Bericht zeigen den Unterschied zum vorherigen Abrunden. Suche die Dokumentation von as.IDate (die Rd-Datei oder den roxygen-Block) und ergänze einen kurzen Hinweis, dass gebrochene Date-Werte gegen null abgeschnitten werden, mit dem Beispiel aus dem Issue. Fertig ist es, wenn die Hilfeseite das Runden angibt und die Beispiele weiterhin laufen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- R
- Sterne
- 3.9k
- Forks
- 1.1k
- Ø Merge
- 1 T. 8 Std.
- Gemergte PRs (30 T.)
- 14
Entwicklungsumgebung
Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus Rdatatable/data.table
-
beginner-task
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Rdatatable/data.table#7948 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
as.data.table() recurses without end on a survival::Surv object (or any data.frame carrying one)Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Rdatatable/data.table#7887 ·
Maintainer antworten meist innerhalb von 1 Tag
-
test() doesn't distinguish plain NA_real_, NaNEvtl. vergeben @MichaelChirico hat das vor 96 Tagen übernommen. Offenconsistency tests
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Rdatatable/data.table#7853 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
HAVE_LONG_DOUBLE is conditioned on but never setEvtl. vergeben @venom1204 hat das vor 540 Tagen übernommen. Offeninternals
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
Rdatatable/data.table#6938 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
encoding fread
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
Rdatatable/data.table#5179 · 8 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in Rdatatable/data.table
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
epiverse-trace/epiparameter#526 ·
-
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 68/100
eirini-zormpa/hpc-intro#30 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
REditorSupport/languageserver#833 ·
Maintainer antworten meist innerhalb von 1 Tag