On Tue, Apr 14, 2009 at 6: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?
Ooh, you're so close. Read the help page for "assign" perhaps? help("assign") and hence enlightenment. Also note it's not normally a good thing to do. Better to stick these things in a list, because your next question is going to be 'how do I **get** the value of x1, x2, x3 etc in a loop if i is 1,2 or 3?'. The answer to that one is 'Read the help page for "get"'. But if you stick your stuff in a list object the answer is simply x[[i]]. See also FAQ 7.21: http://cran.r-project.org/doc/FAQ/R-FAQ.html#How-can-I-turn-a-string-into-a-variable_003f But really, use a list :) Barry ______________________________________________ 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.