[R] replacing values in a vector

Karen Kotschy karen at sevenc.co.za
Wed Aug 18 00:37:15 CEST 2010


Thanks so much to all those who suggested solutions! You guys are 
wonderful!

I went with Dimitris' suggestion in the end.

Regards
Karen

On Tue 17Aug10, Dimitris Rizopoulos wrote:
> try this:
> 
> vec <- c(3,2,6,4,7)
> 
> n <- length(vec)
> for(i in seq_along(vec)){
>     r <- numeric(n)
>     r[i] <- vec[i]
>     assign(paste("vec.", letters[i], sep = ""), r)
> }
> 
> 
> I hope it helps.
> 
> Best,
> Dimitris
> 
> 
> On 8/17/2010 12:57 PM, Karen Kotschy wrote:
> >Dear helpRs
> >
> >Does anyone have an elegant way of doing the following:
> >
> >For a given numeric vector, e.g. vec<- c(3,2,6,4,7)
> >
> >Create a series of vectors where all but 1 of the values are replaced by
> >0's,  e.g.
> >
> >vec.a<- c(3,0,0,0,0)
> >vec.b<- c(0,2,0,0,0)
> >vec.c<- c(0,0,6,0,0)
> >vec.d<- c(0,0,0,4,0)
> >vec.e<- c(0,0,0,0,7)
> >
> >I have looked at `replace', but can't think of a way of making it produce
> >the 5 lines above without a for loop.
> >
> >I would also like to assign the names automatically. I can create them
> >easily using paste, but how does one get R to treat the resulting
> >character strings as object names to which values can be assigned?
> >
> >Thanks!
> >Karen
> >
> >---
> >Karen Kotschy
> >Centre for Water in the Environment
> >University of the Witwatersrand, Johannesburg, South Africa
> >
> >
> 
> -- 
> Dimitris Rizopoulos
> Assistant Professor
> Department of Biostatistics
> Erasmus University Medical Center
> 
> Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands
> Tel: +31/(0)10/7043478
> Fax: +31/(0)10/7043014
> 
> -- 
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
> 

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.



More information about the R-help mailing list