Fernando Saldanha [EMAIL PROTECTED] wrote: > I am trying to find a way to assign values to elements of a vector > that will be defined by a user. > > a <- c(1,2,3) > > get('a')[1] <- 0 > Error: Target of assignment expands to non-language object
Try this function: g.assign <- function(i, pos=1, ..., value) { x <- if (pos > 0) get(i, pos) else get(i, , parent.frame()) x[...] <- value if (pos > 0) assign(i, x, pos) else assign(i, x, , parent.frame()) } Your example becomes: R> a <- c(1,2,3) R> g.assign("a", pos=1, 1, value=0) Note you use a positive <pos> (usually pos=1) for "global" variables, and pos=0 for "local" variables inside a function. The <...> construction allows this function to work for arrays too, but the downside is that you must type "value=" explicitly. -- David Brahm ([EMAIL PROTECTED]) ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html