data.table::setDTthreads(1) # for CRAN.
## Example 0: with no param.list, same as quote inside named list.
atime::atime_grid(m=mean(data), s=sum(data))
list(m=quote(mean(data)), s=quote(sum(data)))
## Example 1: polynomial vs exponential time regex.
(expr.list <- atime::atime_grid(
list(PERL=c(TRUE, FALSE)),
expr.param.sep="\n",
regexpr=regexpr(pattern, subject, perl=PERL)))
atime.list <- atime::atime(
seconds.limit=0.001,
N=unique(as.integer(10^seq(0,2,l=30))),
setup={
subject <- paste(rep("a", N), collapse="")
pattern <- paste(rep(c("a?", "a"), each=N), collapse="")
},
expr.list=expr.list)
plot(atime.list)
## Example 2: symbol.params arg.
sub.param.list <- list(FUN=c("sub","gsub"), PERL=c(TRUE,FALSE))
## with base R we can use as.symbol and substitute:
sapply(sub.param.list$FUN,function(name)substitute(fun("a","",subject), list(fun=as.symbol(name))))
## with atime_grid the analog is to use symbol.params argument:
(sub.expr.list <- atime::atime_grid(
sub.param.list,
replace=FUN("a","",subject,perl=PERL),
symbol.params="FUN"))
sub.atime.list <- atime::atime(
seconds.limit=0.001,
setup={
subject <- paste(rep("a",N),collapse="")
},
expr.list=sub.expr.list)
plot(sub.atime.list)
## Customize ggplot, which shows expr.name column as direct labels.
sub.atime.edited <- sub.atime.list
library(data.table)
sub.atime.edited$measurements <- data.table(sub.atime.list$measurements)[
, expr.name := paste0("PERL=",PERL)]
if(require(ggplot2)){
plot(sub.atime.edited)+
facet_grid(unit ~ FUN, labeller=label_both)
}
Run the code above in your browser using DataLab