R In Physics
“reflecting on a decade of using R for data & science”
I’ve been using R
for about 12 years for data analysis, numerical simulations, reporting, documentation, scripting, graphics, and random hobbies. Before that I dabbled in Matlab
, Octave
, etc.. I am increasingly looking at julia
for my computational projects, but R
is likely to remain my go-to language for the foreseeable future.
This post is basically a chaotic summary of my learning curve, contributions, frustrations, and thoughts. I’ll keep editing it as new thoughts/memories come to me. Below is a partial list of my interactions with the R
ecosystem, which I’ve found instructive to reflect upon recently.
r packages
proof-of-concept and private projects
caption
-
Extract legend items and weave them with the text of a figure caption.
ggflags
-
Implements a custom geom to map a country identifier to a raster flag image. Later generalised as
egg::geom_custom
. flickr
-
Query flick api and generate static html pages for my photography website.
rip
-
[work in abandon] “R in physics” — book draft, expanding this post into different chapters.
tolstoy
-
[work in abandon] “toy tutorials on light scattering” — book draft, about electromagnetic scattering.
community
My interaction with the R community has always been virtual — I have tried going to / or even organising R meet-ups, but it’s always fallen through lamentably. And R is generally considered too weird in my physics circles.
misc uses
I’ve used R in various personal projects: to generate my websites, to automate Gandalf’s CV, or a recent poster creation, to produce interactive maps, lecture slides, assignments, etc.
Shiny apps
I’ve recently taken to producing interactive explorables with Shiny, to provide online calculators for various projects. Examples: SPR, Mie, port, etc.
talks and presentations
I have given several presentations about graphics, in which I occasionally included a few concepts from the Grammar of Graphics, illustrated with a bit of R code (or pseudo R code). The core message, however, was not about using the language.
review
I’ve reviewed a couple of articles about R graphics for the R Journal, mostly about grid if memory serves. I’ve also provided feedback on a couple of ggplot-related books.
misc. initiatives
I was briefly moderator and contributor to the short-lived ggplot2 blog.
I contributed a substantial portion of the content on the ggplot2 wiki, as well as unofficial documentation for gtable.
mailing lists & forums
- R-help, R-devel (2009—2012)
-
Nabble lists 537 items under my name (Qs and As), which sounds about right. I left those lists years ago but they provided very useful information before SO and other platforms existed.
- ggplot2 google group (2009—2014)
-
I left the group in 2014 but remain in the top 4 posters, with 383 contributions according to the site.
- StackOverflow (2009—2017)
-
55,473 rep, mostly in R tag
- 923 answers
- 65 questions
- I grew tired of some frustrating and unproductive interactions last year and am currently taking an indefinite break.
- github (2008—)
-
89 repositories
- 4500 contributions since I joined
- (870 + 1340 + 1212 + 684 + 76 + 200 + 182 + 14 + 2 + 1)
notable ideas, bug reports, and suggestions
R
core-
- (cannot remember anything noteworthy)
grid
& graphics-
- bug report: duplicate labels
- bug report: unit.list
absolute.size
,absolute.units
- subassignment methods for unit objects
Rcpp
-
- Xptr question
- modules use
- unit test, use of complex numbers
RcppArmadillo
-
- recurring discussion re support of complex numbers on various platforms
ggplot2
-
- many bug reports and suggestions through various channels
- first extension package in 2009 (ggExtra)
- grid.arrange
- dotplot grob
- top-aligned legend (I’ve lost my actual answer)
- defaults in themes
- guides as plots
- rasterise layers
- custom grobs in themes
- annotation_custom
- clipping
- align panels
- ggplotGrob
gtable
-
- docs
- tableGrob
- children grob
- bugs, issues
knitr
-
- chunk headers, more like R’s lazy formals?: triggered a new approach to handle chunk options
- first use as GH wiki
- reverse sync idea
- knit as a pandoc filter
thoughts for the future
- julia: more dots
- MKL
- complex numbers
- community
- pandoc
- d3, vega, gadfly