[R-es] Optimizar código
Luciano Selzer
luciano.selzer en gmail.com
Lun Nov 2 13:53:58 CET 2009
Hola lista, tengo una base de datos muy grande de un datalogger.
Consiste en un vector con 0's y 1's, y tengo que ver cuando hay 600 o
más unos seguidos. Se me ocurrió hacerlo con un loop for. Pero tarda
demasiado. También intente usar which para que seleccione solo los 1
para empezar a sumar pero no hay gran diferencia. A alguien se le
ocurre alguna solución para hacerlo más rápido?
Acá está el código con los datos de prueba:
test<-rep(c(rep(0,5),rep(1,601),rep(0,100),rep(1,100),rep(0,3),rep(1,200),rep(0,300),rep(1,1000)),100)
loop<-numeric()
for (i in 1:length(test)) {
loop[i]<-sum(test[i:(i+600)])
}
loop2<-numeric()
for (i in which(test==1)) {
loop2[i]<-sum(test[i:(i+600)])
}
Muchas gracias a todos los que contesten.
Luciano
Más información sobre la lista de distribución R-help-es