
Assumindo q seus dados estarão sempre ordenados por parcela, faça primeiro um split() por parcela e, dentro do subgrupo use diff(). Essa hipotese é valida? On Friday, 21 October 2011, Samuel Carvalho <samukajm@yahoo.com.br> wrote:
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] =============================================
-- Successful people ask better questions, and as a result, they get better answers. (Tony Robbins)