On 17/11/2020 12:43 p.m., C W wrote:
Dear R list,

I am an old-school R user. I use apply(), with(), and which() in base
package instead of filter(), select(), separate() in Tidyverse. The idea of
pipeline (i.e. %>%) my code was foreign to me for a while. It makes the
code shorter, but sometimes less readable?

Think of the pipe as pure syntactic sugar. It doesn't really do anything, it just lets you write "f(g(x))" as "x %>% g() %>% f()" (where the parens "()" are optional). Read it as "Take x and pass it to g(); take the result and pass it to f()", which is exactly how you'd read "f(g(x))". The pipe presents it in the same order as in English, which sometimes makes it a bit easier to read than the mathematical notation.

There's a lot more to tidyverse ideas besides the pipe. The overview is in the "Tidyverse Manifesto" (a vignette in the tidyverse package), and details are in Grolemund and Wickham's book "R for Data Science".


With ggplot2, I just don't understand how it is organized. Take this code:

ggplot2 is much harder to understand, but Wickham's book "ggplot2: Elegant Graphics for Data Analysis" gives a really readable yet thorough description.


ggplot(diamonds, aes(x=carat, y=price)) + geom_point(aes(color=cut)) +
geom_smooth()

There are three plus signs. How do you know when to "add" and what to
"add"? I've seen more plus signs.

To me, aes() stands for aesthetic, meaning looks. So, anything related to
looks like points and smooth should be in aes(). Apparently, it's not the
case.

Yes "aesthetic" was a really bad choice of word.

So, how does ggplot2 work? Could someone explain this for an old-school R
user?

Not in one email, but hopefully the references (which are both available online for free, or in a bookstore at some cost) can help.

Duncan Murdoch

______________________________________________
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