Hallo

Thanks to all who responded (Patrick Burns, Roger Bivand and 
especially Peter Dalgaard). Do not know why I used lapply when 
apply made the task as well. My actuall data are in data frame 
(size as in example 2) and with apply rle() is about an order of 
magnitude quicker.

Thanks again

Petr


On 14 Nov 2003 at 13:35, Petr Pikal wrote:

> Dear all
> 
> I need to find a length of true sequences in logical vector (see
> example 1). I found a possible solution which is good but if I use it
> on a larger data set I experience a substantial decrease in
> performance (example 2).
> 
> Example 1
> set.seed(111)
> x <- sample(c(T,F),50, replace=T)
> system.time(cetnost <-
> as.numeric(table(which(x)-cumsum(x[which(x)])))) [1] 0.00 0.00 0.03  
> NA   NA cetnost [1] 1 3 2 5 1 4 1 1 1 3 1 1 2
> 
> Example 2
> x<-sample(c(T,F),40321*51, replace=T)
> dd<-matrix(x,40321,51)
> system.time(cetnost <- lapply(dd,function(x)
> as.numeric(table(which(x)- cumsum(x[which(x)]))))) Timing stopped at:
> 750.63 1 775.6 NA NA 
> 
> Please give me any hint how to improve performance or advice a
> different (but more effective) solution.
> 
> R 1.8.0, W2000,  512M memory, Pentium4
> 
> Thank you in advance.
> 
> 
> 
> Petr Pikal
> [EMAIL PROTECTED]
> 
> ______________________________________________
> [EMAIL PROTECTED] mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-help

Petr Pikal
[EMAIL PROTECTED]

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help

Reply via email to