[R-br] substitui loop por funcoes do R

Samuel Carvalho samukajm em yahoo.com.br
Sexta Outubro 21 09:48:02 BRST 2011


Caros membros do grupo,
Alguém poderia por gentileza me auxiliar com o código a seguir?
No caso a idéia é substituir o loop que calcula a diferença entre as observações dentro de uma mesma parcela sendo que a primeira observação de cada parcela deve ter valor zerado. Para aqueles mais familiarizados estou calculando a taxa de incremento para sucessivas medições. Segue o código
###RCMR
dados<-data.frame(parcela=rep(1:5,each=3), y=runif(15))
dados
dados$taxa<-0
for(i in 1:(nrow(dados)-1))
{
  if(dados$parcela[i] == dados$parcela[i+1])
  {
    dados$taxa[i+1] <- dados$y[i+1]-dados$y[i]
  }
}
dados
#A seguir tento reproduzir o código acima, porém feito incorretamente
dados$taxa<-0
dados$taxa[which(diff(dados$parcela)==0)] <- diff(dados$y) #feito de maneira incorreta
dados

Abraços
Samuel

====================================
Samuel P. C. Carvalho
Mestre em Ciências Florestais [UFLA]
Doutorando em Recursos Florestais [ESALQ/USP]
=============================================
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20111021/fcde3ad7/attachment.html>


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