lambda <- function(..., envir = parent.frame()) { if(!require(stringr)) stop("Please install.packages('stringr')") if(!require(lazyeval)) stop("Please install.packages('lazyeval')") args <- lazyeval::lazy_dots(...) args_len <- length(args) args <- Map(function(x) x$expr, args) vars <- unlist(Map(function(x) deparse(x), args[-length(args)])) expr <- as.character(args[length(args)]) if(args_len == 0