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