Skip to content

Instantly share code, notes, and snippets.

### Install monad-aware magrittr
devtools::dev_mode(TRUE)
devtools::install_github("lionel-/magrittr", ref = "monads")
### Monadic Infrastructure
bind <- function(x, fun, ...) {
UseMethod("bind")
@lionel-
lionel- / by-group.R
Last active August 29, 2015 14:14
Making lowliner better understand data frames
set_groups <- function(.d, .cols = NULL) {
stopifnot(is.data.frame(.d))
if (is.null(.cols)) {
return(group_by_(.d, .dots = list()))
}
if (is.numeric(.cols)) {
.cols <- names(.d)[.cols]
}
.cols %>% map_call(dplyr::group_by_, .data = .d)
@lionel-
lionel- / remap.R
Last active August 29, 2015 14:12
Preserving version of lowliner's map()
remap <- function(.x, .f, ...) {
.f <- lowliner:::as_function(.f)
if (inherits(.f, "fseq")) {
# Handle magrittr's functional sequences
f_env <- environment(.f)
f_env$`_function_list` <- map(f_env$`_function_list`, ~ {
env <- new.env(parent = environment(.))
environment(.) <- env
.