[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