[R-br] substitui loop por funcoes do R

Benilton Carvalho beniltoncarvalho em gmail.com
Sexta Outubro 21 10:19:37 BRST 2011


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 em 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)
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20111021/e995e97e/attachment.html>


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