If, in teaching folks about the magrittr pipe operator, %>%
, you’re looking for an in-the-wild example of deeply nested functions, our miner package (for connecting R to Minecraft, developed at the ROpenSci 2017 Unconference) has a good one:
setNames(data.frame(
do.call(rbind,
sapply(
X = sub(",", "|", strsplit(string, '|', fixed = TRUE)[[1]], fixed=TRUE),
FUN = strsplit,
split = '|', fixed=TRUE,
USE.NAMES = FALSE)),
stringsAsFactors=FALSE),
colnames)
This turns a character string like "121,hello everyone|4734,R mc_plot()"
into a data frame like
## player message
## 1 121 hello everyone
## 2 4734 R mc_plot()
That’s six functions deep: strsplit %>% sub %>% sapply %>% do.call %>% data.frame %>% setNames
.