[R] Basic Question about local

Saptarshi Guha saptarshi.guha at gmail.com
Sun Nov 15 23:38:07 CET 2009


I have some beginner's questions regarding local, in the docs, it says that
"local evaluates an expression in a local environment".

Q1: why is B different from A? In B, is a<-a+1 getting evaluated
before eval proceeds?

#A
a=0
eval(quote(a<-a+1),new.env())
a # 0

#B
a=0
eval(a<-a+1,new.env())
a # 1

Q2: Why does mlocal behave differently?

#C
local
#function (expr, envir = new.env())
#eval.parent(substitute(eval(quote(expr), envir)))
#<environment: namespace:base>

a=0
local(a<-a+1)
a #0



mlocal <- function (expr, envir = new.env())
  eval(quote(expr), envir)

a=0
mlocal(a<-a+1)
a #1


Thank you
S




More information about the R-help mailing list