[R-br] Ajuda para evitar um loop com elegância 2

Gustavo Marcatti vgp.gustavo em yahoo.com.br
Quarta Abril 18 17:59:33 BRT 2012


Olá pessoal, tenho que executar uma função parecida com essa no R. Mas ela normalmente demora longos 500 segundos para executar. Fiz uma versão que chama um código C, e essa é bem eficiente (demora cerca de 0,5 segundos),  porém gostaria de uma função totalmente em R. Caso alguém queira ajudar, desde já agradeço.
set.seed(1)
vetor1 <- rep(1:4, each = 5)
var1 <- abs(rnorm(4,3)) * vetor1 
cond1 <-abs(rnorm(4,10)) * vetor1  
var2 <- matrix(0, nrow=length(vetor1))
cond2 <- matrix(0, nrow=length(vetor1))
for(i in 1:(length(vetor1) - 1)){
   if(vetor1[i] == vetor1[i+1]){
      var2[i] = var1[i+1]
      cond2[i] = cond1[i+1]
      
   }else { 
      var2[i] = NA
      cond2[i] = NA  
   }
   
}
var2[length(vetor1)] <- NA
cond2[length(vetor1)] <- NA
dados <- na.exclude(data.frame(var2, cond2))

Gustavo Marcatti
Eng. Florestal
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120418/eca3e6ca/attachment.html>


Mais detalhes sobre a lista de discussão R-br