IƱaki Ucar
2021-Jan-12 19:38 UTC
[Rd] [External] brief update on the pipe operator in R-devel
On Tue, 12 Jan 2021 at 20:23, <luke-tierney at uiowa.edu> wrote:> > After some discussions we've settled on a syntax of the form > > mtcars |> subset(cyl == 4) |> d => lm(mpg ~ disp, data = d) > > to handle cases where the pipe lhs needs to be passed to an argument > other than the first of the function called on the rhs. This seems a > to be a reasonable balance between making these non-standard cases > easy to see but still easy to write. This is now committed to R-devel.Interesting. Is the use of "d =>" restricted to pipelines? In other words, I think that it shouldn't be equivalent to "function(d)", i.e., that this: x <- d => lm(mpg ~ disp, data = d) shouldn't work. -- I?aki ?car
Dirk Eddelbuettel
2021-Jan-12 20:00 UTC
[Rd] [External] brief update on the pipe operator in R-devel
On 12 January 2021 at 20:38, I?aki Ucar wrote:
| On Tue, 12 Jan 2021 at 20:23, <luke-tierney at uiowa.edu> wrote:
| >
| > After some discussions we've settled on a syntax of the form
| >
| > mtcars |> subset(cyl == 4) |> d => lm(mpg ~ disp, data = d)
| >
| > to handle cases where the pipe lhs needs to be passed to an argument
| > other than the first of the function called on the rhs. This seems a
| > to be a reasonable balance between making these non-standard cases
| > easy to see but still easy to write. This is now committed to R-devel.
|
| Interesting. Is the use of "d =>" restricted to pipelines? In
other
| words, I think that it shouldn't be equivalent to "function(d)",
i.e.,
| that this:
|
| x <- d => lm(mpg ~ disp, data = d)
|
| shouldn't work.
Looks like your wish was already granted:
> mtcars |> subset(cyl == 4) |> d => lm(mpg ~ disp, data = d)
Call:
lm(formula = mpg ~ disp, data = subset(mtcars, cyl == 4))
Coefficients:
(Intercept) disp
40.872 -0.135
> d => lm(mpg ~ disp, data = d)
Error in `=>`(d, lm(mpg ~ disp, data = d)) : could not find function
"=>"
> x <- d => lm(mpg ~ disp, data = d)
Error in `=>`(d, lm(mpg ~ disp, data = d)) : could not find function
"=>"
>
Dirk
--
https://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org