[R-sig-eco] change values of a vector selectively

Christian Parker cparker at pdx.edu
Tue Jan 11 16:34:47 CET 2011





On Jan 11, 2011, at 6:58 AM, "B.-Markus Schuller" <b.markus.schuller at googlemail.com> wrote:

> Hey,
> 
> I have a vector containing mostly zeroes. At varying positions are markers that mark different channels ("B", 1, 2).
> 
> > head(exp$Marker, 100)
>  [1] "B" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0"
> [19] "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0"
> [37] "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0"
> [55] "0" "0" "0" "0" "0" "1" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0"
> [73] "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0" "0"
> [91] "0" "0" "0" "0" "0" "0" "0" "0" "0" "0"
> 
> I would like to change all zeroes between two markers to the marker that came before.
> E.g. everything after "B" shall be "B" until the 1. Then everything shall be 1 until the next "B" and so on. I hope you can imagine what I intend.
> 
> I tried it in a loop:
> 
> for(i in 1:length(exp$Marker)){
>  if(! exp$Marker[i] %in% c("B", 1, 2))
>    exp$Marker[i] <- exp$Marker[i-1]
> }
> 
> but that takes forever. Can anyone point me to another solution?
> E.g. identify all so far not marked elements, like this
> 
> exp$Marker[which(! exp$Marker %in% c("B", 1, 2))]
> 
> and change them to the desired values. But i cannot figure out how to change them selectively...
> 
> Thanks for your help!
> 
> Cheers,
> Mango
> -- 
> -----------------------------------------
> B.-Markus Schuller aka Mango
> 
> Sensory Ecology Group
> Max-Planck-Institute for Ornithology
> 82319 Seewiesen, Germany
> 
> phone: +49 (0)8157 932 -378
> fax:   +49 (0)8157 932 -344
> email: schuller at orn.mpg.de
> http://www.orn.mpg.de/nwg/abtsiemers.html
> -----------------------------------------
> Never run for the bus.
> Never skip tea.
> 
> 
> 
> -----
> No virus found in this message.
> Checked by AVG - www.avg.com
> 
> _______________________________________________
> R-sig-ecology mailing list
> R-sig-ecology at r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-ecology
> 



More information about the R-sig-ecology mailing list