## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----setup, echo=FALSE-------------------------------------------------------- library(shiny) library(dipsaus) data(ToothGrowth) ## ----eval=FALSE--------------------------------------------------------------- # if( exists('aa') && !is.null(aa) ){ # aa <- 1 # } ## ----eval=TRUE---------------------------------------------------------------- aa %?<-% 1 print(aa) ## ----------------------------------------------------------------------------- l %?<-% list() l$aa %?<-% 1 print(l) ## ----------------------------------------------------------------------------- # e already exists e <- list(aa = 1) # %?<-% will not evaluate rhs, nor assign values system.time({ e %?<-% { Sys.sleep(10); list(aa = 2) } print(e) }) ## ----------------------------------------------------------------------------- li <- c('A', 'T', 'G', 'C') li |> iapply(alist(el, ii) %=>% { sprintf('The index for %s is %s', el, ii) }) ## ----------------------------------------------------------------------------- alist(a, b=a^2, ...) %=>% { print(c(a , b,...)) } ## ----------------------------------------------------------------------------- match.call(textInput, call = quote(textInput('inputId', 'label', 'aaa'))) ## ----------------------------------------------------------------------------- match.call(tagList, call = quote(tagList( div( tags$ul( tags$li(textInput('inputId', 'label', 'aaa')) ) ) ))) ## ----------------------------------------------------------------------------- match_calls(call = tagList( div( tags$ul( tags$li(textInput('inputId', 'label', 'aaa')) ) ) ), recursive = TRUE) ## ----------------------------------------------------------------------------- match_calls(call = tagList( div( tags$ul( tags$li(textInput('inputId', 'label', 'aaa')) ) ) ), recursive = TRUE, replace_args = list( 'inputId' = function(v, ...){ as.call(list(quote(ns), v)) } )) ## ----eval=FALSE--------------------------------------------------------------- # x_tmp <- x |> # do_something(...) # # plot(x_tmp) # # final_results <- x_tmp |> # do_others(...) ## ----eval=FALSE--------------------------------------------------------------- # final_results <- x |> # do_something(...) |> # no_op(plot, ylim = c(0,100)) |> # do_others(...) ## ----fig.width=7,fig.height=5------------------------------------------------- par(mfrow = c(1,2)) result <- (1:10) |> iapply(alist(el, ii) %=>% { rnorm(20, el, ii) }, simplify = FALSE) |> unlist() |> # Begin no-ops, result will not change no_op({ # Use expression and "." to refer the data print(summary(.)) }) |> no_op( # Use function and pass ... to function plot, x = seq(0,1,length.out = 200), type = 'p', ylim = c(-20,20), pch = 16, xlab = 'Time', ylab = 'Value', las = 1 ) |> no_op(hist, xlab = 'Values', main = 'Histogram') str(result) ## ----------------------------------------------------------------------------- ToothGrowth |> do_aggregate(len ~ ., mean)