If you’re familiar with the faster iterations on objects such as lapply, sapply, or apply for matrices, you might get surprised that the function call saves new assignments only locally.
# to assign global variable within function use "<<-" operator
lapply(1:10, function(i) {
if (i != 1) {
global.var <<- global.var + i; return(NULL)
} else {
global.var <<- i; return(NULL)
}
})
cat(global.var)
# 55
# another neat trick is the multiple assignment to objects
global.var -> global.var.A -> global.var.B
global.var == global.var.B
# TRUE
One of my favorite lines in R comes from the fact the language environment devours the memory. To focus on particular objects (such as when you need to save it as *.rda), replace the search term within grepl function for the one that you wish to keep.
ls()
# "global.var" "global.var.A" "global.var.B"
rm(list = ls()[!grepl("global.var.A", ls())])
# refresh memory
gc()
ls()
# "global.var.A"
Cheers, mintgene.