It is certainly possible to create x2, x4, etc. using something like assign( sprintf("x%d",i), ...value... ).
But are you sure you need separate *variables* x2, x4, etc.? Why not create a list of vectors addressible as x[2] etc.? You can do that with x <- list() (to define the data type of x as allowing generic objects) then x[2] <- ... value ... etc. -s On Tue, Apr 14, 2009 at 1:32 PM, Zachary Patterson <zak.patter...@gmail.com> wrote: > I am new to R. I would like to automate the creation of a number of > vectors but can't seem to get the string formatting to work. > > Here's what I would like to be able to do: > > Suppose we have a vector: > x <- c(2,4,5) > > I would like to be able to create a set of vectors whose names are > associated with the values in x - e.g. > > x2 <- 0 > x4 <- 0 > x5 <- 0 > > I have tried with a for loop and eval and sprintf, paste, etc. but end > up with the following error: > > Error in sprintf("%s%i", "x", 1) <- 0 : > target of assignment expands to non-language object > > How can I assign a string formatted name to a vector? > > Any help appreciated, > Zak > > ______________________________________________ > R-help@r-project.org mailing list > 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 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.