Nothing
knitr::opts_chunk$set( collapse = TRUE, comment = " # ", fig.width = 7 ) options(width =100)
An example of using let
to wrap dplyr
expressions as functions.
Note: let
has been moved to the wrapr
package.
library("dplyr") library("replyr")
The desired task: write a function that takes a data frame with a specified numerical column and an optional grouping column, and returns a data frame with one row per group containing:
The dplyr
expression for such a table is easy when the column names
are known, but complicated when they are not. We use wrapr::let
to write such a
function without the use of lazyeval
or rlang
/tidyeval
.
sumstat_intervals = function(dframe, colname, groupcolname = NULL) { mapping = list(COLNAME = colname, GROUPCOLNAME = groupcolname) let(alias = mapping, { if(!is.null(groupcolname)) { dframe <- group_by(dframe, GROUPCOLNAME) } summarize(dframe, sdlower = mean(COLNAME)-sd(COLNAME), mean = mean(COLNAME), sdupper = mean(COLNAME) + sd(COLNAME), iqrlower = median(COLNAME)-0.5*IQR(COLNAME), median = median(COLNAME), iqrupper = median(COLNAME)+0.5*IQR(COLNAME)) }) }
We can test sumstat_intervals
on iris
:
sumstat_intervals(iris, "Sepal.Length")
sumstat_intervals(iris, "Sepal.Length", "Species")
sumstat_intervals(iris, "Petal.Length", "Species")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.