Upcoming versions of base R eliminate the need for DT() functionality - consider eliminating?
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 20/100
Research direction
Start by reading the issue discussion, the linked R-devel/News entry, and related issues #5559, #5430, and #5129. The work is complete when maintainers decide whether DT() should be removed from the roadmap and that decision is recorded; the payload does not identify implementation files or tests.
Written by the indexing model from the issue text.
Description
As an experimental feature the placeholder
_can now also be used in the ‘rhs’ of a forward pipe|>expression as the first argument in an extraction call, such as_$coef. More generally, it can be used as the head of a chain of extractions, such as_$coef[[2]].
In upcoming versions of R, syntax such as the following will be supported:
as.data.table(mtcars) |>
_[am == 1] |>
_[, .(maxhp = max(hp)), by = .(cyl)]
# cyl maxhp
# 1: 6 175
# 2: 4 113
# 3: 8 335
With this in mind, I think it's worth reconsidering whether DT() should remain on the release roadmap.
Some arguments in favor of scrapping DT() are as follows:
- Base R functionality
dt |> _[...]will address all use cases forDT() - Introducing an alternate syntax for calling
[.data.tablewill be confusing for new users. Advertising this functionality also eliminates an opportunity to educate users about existingdt[...][...]chaining capabilities baked in by default - Exporting
DT()will lead to namespace collision issues with theDT::DT()exported by the widely used DT package DT()acceptance of nondata.tableobjects is likely to cause user confusion- #5559
- #5430
- #5129
- Supporting
DT()going forward will be a drain on valuable maintainer's time -DT()Labeled Issues DT()has not yet been exported in a CRAN release so no there will no impacts to reverse dependencies and limited impact to users who have adopted this form
That being said, this is just my two cents as a satisfied user of data.table interested in the long term success of the package. Happy to hear counter arguments, and open to the idea that the broader community may see enough value to finish the push to support DT().
- Dominant language
- R
- Stars
- 3.9k
- Forks
- 1.1k
- Avg merge
- 14h 4m
- Merged PRs (30d)
- 4
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Rdatatable/data.table
-
as.data.table() recurses without end on a survival::Surv object (or any data.frame carrying one) Open
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Rdatatable/data.table#7887 ·
-
consistency tests
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Rdatatable/data.table#7853 · 3 comments ·
-
internals
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Rdatatable/data.table#6938 · 1 comment ·
-
encoding fread
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Rdatatable/data.table#5179 · 8 comments ·
-
documentation programming
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Rdatatable/data.table#3199 · 3 comments ·
All issues in Rdatatable/data.table
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
r-lib/pkgdepends#485 · 3 comments ·
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
-
beginners blocker
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enviPathR OpenBuild Error Build OK Build Warning policies-accepted pre-review precheck-passed
Difficulty 1/5 Under an hour Newbie friendliness 84/100
Bioconductor/BiocContributions#207 · 6 comments ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
datacarpentry/semester-biology#1255 ·