Skip to content

Instantly share code, notes, and snippets.

@gmbecker
gmbecker / needlehaystack.R
Created April 4, 2018 15:22
Finding vector in larger vector #rstats
findneedle = function(need, hay) {
inds = which(hay == need[1L])
i = 2L
while(i <= length(need) && length(inds) > 0L) {
nval = need[i]
## adding the scalars together first reduces the allocs
## by 1 saves time if inds is really long
inds = inds[hay[(i - 1L) + inds] == nval]
@gmbecker
gmbecker / argify.R
Created April 4, 2018 18:21
Add argument specification to a function call
argify = function(expr, recursive = FALSE) {
if(is.character(expr))
expr = parse(text = expr)
else if(!is.call(expr))
expr = substitute(expr)
stopifnot(is.call(expr))
if(recursive && length(expr) > 1) {
for(i in 2:length(expr)) {
if(is.call(expr[[i]]))
expr[[i]] = argify(expr[[i]], TRUE)
@gmbecker
gmbecker / manifest.rman963c2e2474f2
Created January 31, 2022 19:22
An R seeding manifest
# R manifest
# Manifest type: session
# Dependency repositories: 6
# repo: https://cloud.r-project.org
# repo: https://bioconductor.org/packages/3.14/bioc
# repo: https://bioconductor.org/packages/3.14/data/annotation
# repo: https://bioconductor.org/packages/3.14/data/experiment
# repo: https://bioconductor.org/packages/3.14/workflows
# repo: https://bioconductor.org/packages/3.14/books
"name","url","type","branch","subdir","extra","version"