« How to Choose an R-Trainer? | Main | Agent Based Models and RNetLogo »

July 23, 2014

Comments

Feed You can follow this conversation by subscribing to the comment feed for this post.

R isn't a functional programming language. It may have functions but that doesn't make it a functional language, in the technical sense of that term.

This is an interesting package. For me (self styled intermediate R user without substantial knowledge of other programming languages), however, there would seem to be a large investment necessary to wrap my head around the fact that the order of functions is reversed. In the original code the code is written as Filter10, Summarize, Group, FilterNA; in the %>% version we have FilterNA, Group, Summarize, Filter10.

@Hefferman, well R is not pure functional, but mixed-paradigm. It certainly has functional elements; in particular functions are first-class objects in R.

@Nate I'd say the "regular" code is reversed, as the pipe (%>%) aligns code with the order of execution.

hourly_delay <- filter(summarise(group_by(filter(flights,
						 !is.na(dep_delay)),
                                          date,
                                          hour),
                                 delay = mean(dep_delay),
                                 n = n()),
                       n > 10)

This has the same power as extension methods in C#, allowing a fluent syntax. This style of programming really works in practice. Respect to the authors of this package!

The comments to this entry are closed.


R for the Enterprise

Got comments or suggestions for the blog editor?
Email David Smith.
Follow revodavid on Twitter Follow David on Twitter: @revodavid

Search Revolutions Blog