assign {base} | R Documentation |
Assign a value to a name in an environment.
assign(x, value, pos = -1, envir = pos.to.env(pos), inherits = FALSE, immediate = TRUE) x <- value x <<- value value -> x value ->> x
x |
a variable name (given as a quoted string). |
value |
a value to be assigned to x . |
pos |
an index into the search list which determines which
environment the assignment is to take place in. A character string
may also be used. The environment can also be specified directly
with envir . |
envir |
the environment in which to assign. The
default is the environment where the call to assign takes
place. |
inherits |
should the enclosing frames of the environment be inspected? |
immediate |
an ignored compatibility feature. |
This function is invoked for its side effect, which is assigning
value
to the variable x
. If no envir
is
specified, then the assignment takes place in the currently active
environment.
If inherits
is TRUE
, enclosing environments of the supplied
environment are searched until the variable x
is encountered.
The value is then assigned in the environment in which the variable is
encountered. If the symbol is not encountered then assignment takes
place in the global environment.
If inherits
is FALSE
, assignment takes place in the
initial frame of envir
.
The arrow forms of assignment provide shortcut ways to carry out
assignment. The <-
and ->
forms carry out assignment
in the local environment frame, while the <<-
and ->>
forms cause a search to made through the environment for an existing
definition of the variable being assigned. If such a variable is
found then its value is redefined, otherwise assignment takes place
globally.
Note that the action of <<-
and ->>
differs from that in
the S language, but is useful in conjunction with the scoping rules of
R.
get
,
exists
,
environment
.
for(i in 1:6) { #-- Create objects 'r1', 'r2', ... 'r6' -- nam <- paste("r",i, sep=".") assign(nam, 1:i) } ls(pat="^r..$") ##-- Global assignment within a function: myf <- function(x) { innerf <- function(x) assign("Global.res", x^2, env = .GlobalEnv) innerf(x+1) } myf(3) Global.res # 16