[R] rle

Richard.Cotton at hsl.gov.uk Richard.Cotton at hsl.gov.uk
Tue Jul 7 13:30:37 CEST 2009


> I have an other problem, I have this vector signData with an alternation 
of
> 1 and -1 that corrispond to the duration of two different percepts. I
> extracted the durations like this:
> 
> signData<- scan("dataTR10.txt")
> dur<-rle(signData)$length

I think that last line should be 
dur<-rle(signData)$lengths

> Now I would like to extract only the positive duration, e.g. 
> 
> signData <- c(1,1,1,1,-1,-1,-1,1,1,-1,-1)
> posduration <- c(4,2)

If you know that the first element of signData will always be 1, then you 
can simply extract the first, third, fifth etc values from signdata, like 
so:

posduration <- dur[c(TRUE, FALSE)]

Otherwise you need to test to see if you are extracting odd or even 
elements.

if(signData[1]==1)
{
   index <- c(TRUE, FALSE)
} else
{
   index <- c(FALSE, TRUE)
}
posduration <- dur[index]

Regards,
Richie.

Mathematical Sciences Unit
HSL


------------------------------------------------------------------------
ATTENTION:

This message contains privileged and confidential inform...{{dropped:20}}




More information about the R-help mailing list