Dear all, Provided I understood correctly, shouldn't assign() do the trick? Most similar threads seem to include this approach (among others, indeed).
Regards, Bastien On Wednesday, July 8, 2015 at 7:30:04 PM UTC+2, William Dunlap wrote: > You can use an environment instead of a list using the same [[ syntax. It > is like 'get0(..., inherit=FALSE)' on the left side of the <- and like > 'assign(...)' on the right side. E.g., > myData <- new.env() > varName <- "v1" > myData[[varName]] <- 1:10 > myData[[varName]][4] <- myData[[varName]][4] * 100 > myData[[varName]] > # [1] 1 2 3 400 5 6 7 8 9 10 > names(myData) > # [1] "v1" > (Before R-3.2.0 or so, you had to use objects(myData,all=TRUE) if > myData was an environment and names(myData) if it was a list. Now > names() works for environments.) > > It is better to use a dedicated environment (or list) for each set of > related > variables so that name collisions do not cause problems. > > > Bill Dunlap > TIBCO Software > wdunlap tibco.com > > On Wed, Jul 8, 2015 at 10:06 AM, Greg Snow <538...@gmail.com> wrote: > > > This is FAQ 7.21. > > > > The most important part of the answer in FAQ 7.21 is the last section > > where it states that it is often easier to use a list rather than > > messing around with trying to dynamically name global variables. > > > > If you tell us what you are trying to accomplish then we may have > > better advice. The route you are headed down now usually leads to > > inefficient code and hard to find bugs. > > > > On Tue, Jul 7, 2015 at 2:53 PM, Jun Shen <jun.shen...@gmail.com> wrote: > > > Dear list, > > > > > > Let's say we have a variable (id), whose name is dynamically constructed. > > > This variable represents a vector or data frame with many elements. Now I > > > want to specifically assign a value to one of the elements. I couldn't > > get > > > it right. > > > > > > test <- 'id' # "id" is dynamically constructed through paste() > > > > > > id <- 1:4 > > > > > > # I can get the element by doing > > > > > > get(test)[2] > > > > > > # Now I want to assign a value to the second element of this dynamical > > > variable. > > > > > > get(test)[2] <- 5 # doesn't work. > > > > > > Thanks a lot. > > > > > > Jun Shen > > > > > > [[alternative HTML version deleted]] > > > > > > ______________________________________________ > > > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > > > https://stat.ethz.ch/mailman/listinfo/r-help > > > PLEASE do read the posting guide > > http://www.R-project.org/posting-guide.html > > > and provide commented, minimal, self-contained, reproducible code. > > > > > > > > -- > > Gregory (Greg) L. Snow Ph.D. > > 538...@gmail.com > > > > ______________________________________________ > > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide > > http://www.R-project.org/posting-guide.html > > and provide commented, minimal, self-contained, reproducible code. > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.