-
Notifications
You must be signed in to change notification settings - Fork 1k
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 335With 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- 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().