[R] Automating object creation

Stavros Macrakis macrakis at alum.mit.edu
Tue Apr 14 19:58:33 CEST 2009


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.patterson at 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 at 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.
>




More information about the R-help mailing list