Christopher Ryan sent this example
c(1:10) %>% sqrt() %>% mean() %>% plot()
I could code this as

A <- c(1:10)
B <- sqrt(A)
C<- mean(B)
plot(C)

I can then clean up by removing variables that I have no further use for.
rm(A, B, C)

The %>% operator is from the magriter package. It can be installed directly, or 
it is also installed if you use the tidyverse package (and possibly many 
others). The |> is base R, but it was added in R version 4.1.0.

I do not know if it increases processing speed.
It can save memory usage, especially if one is a messy programmer and does not 
tidy up after each task.
If you wanted to test execution times for bits of code there is the 
microbenchmark package.

Tim

-----Original Message-----
From: Sorkin, John <jsor...@som.umaryland.edu> 
Sent: Tuesday, January 3, 2023 12:13 PM
To: Ebert,Timothy Aaron <teb...@ufl.edu>; 'R-help Mailing List' 
<r-help@r-project.org>
Subject: Re: Pipe operator

[External Email]

Tim,

Thank you for your reply. I did not know about the |> operator. Do both %>% and 
|> work in base R?

You suggested that the pipe operator can produce code with fewer variables. May 
I ask you to send a short example in which the pipe operator saves variables. 
Does said saving of variables speed up processing or result in less memory 
usage?

Thank you,
John

________________________________________
From: Ebert,Timothy Aaron <teb...@ufl.edu>
Sent: Tuesday, January 3, 2023 12:07 PM
To: Sorkin, John; 'R-help Mailing List'
Subject: RE: Pipe operator

The pipe shortens code and results in fewer variables because you do not have 
to save intermediate steps. Once you get used to the idea it is useful. Note 
that there is also the |> pipe that is part of base R. As far as I know it does 
the same thing as %>%, or at my level of programing I have not encountered a 
difference.

Tim

-----Original Message-----
From: R-help <r-help-boun...@r-project.org> On Behalf Of Sorkin, John
Sent: Tuesday, January 3, 2023 11:49 AM
To: 'R-help Mailing List' <r-help@r-project.org>
Subject: [R] Pipe operator

[External Email]

I am trying to understand the reason for existence of the pipe operator, %>%, 
and when one should use it. It is my understanding that the operator sends the 
file to the left of the operator to the function immediately to the right of 
the operator:

c(1:10) %>% mean results in a value of 5.5 which is exactly the same as the 
result one obtains using the mean function directly, viz. mean(c(1:10)). What 
is the reason for having two syntactically different but semantically identical 
ways to call a function? Is one more efficient than the other? Does one use 
less memory than the other?

P.S. Please forgive what might seem to be a question with an obvious answer. I 
am a programmer dinosaur. I have been programming for more than 50 years. When 
I started programming in the 1960s the only pipe one spoke about was a bong.

John

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-help&data=05%7C01%7Ctebert%40ufl.edu%7Cfa39e74a28354e3b3f6c08daedadd2ab%7C0d4da0f84a314d76ace60a62331e1b84%7C0%7C0%7C638083628073049849%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=qCK4H%2BtClknwzT9sQpQAUeei9I6dFz7vP904X0n39cw%3D&reserved=0
PLEASE do read the posting guide 
https://nam10.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.r-project.org%2Fposting-guide.html&data=05%7C01%7Ctebert%40ufl.edu%7Cfa39e74a28354e3b3f6c08daedadd2ab%7C0d4da0f84a314d76ace60a62331e1b84%7C0%7C0%7C638083628073049849%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=%2F75VhIpUPDD1VjEHWJ5HBKcQO6cYciTJSMPJ9nETmMQ%3D&reserved=0
and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to