[R-br] Substituir NA pela média de x[i-1] e x[i+1]

Rafael Garcia Cunha rafareds em gmail.com
Sexta Abril 15 06:50:45 BRT 2016


Você pode ter alguns problemas com esse método:

1) se o x[1] for NA?
2) se o x[n] for NA?
3) se você tiver dois NA's seguidos?

Em 14 de abril de 2016 16:40, Felipe <felipe.e.barletta em gmail.com> escreveu:

> Prezados,
>
> Estou precisando calcular a média entre dois valore quando NA, ou seja,,
> quando tenho, por exemplo, um NA na posição 10 de um vetor, quero substituir
> o NA pela média dos valores das posições 9 e 10, mean(c(x[i-1],x[i+1]).
>
> Tentei usar ifelse(), mas não funcionou:
>
> ####
> set.seed(9999)
> x <- rnorm(500,10,5)
> y  <- sample(1:500,50,replace=FALSE)
> x[y] <- NA
>
> media <- function(x)
> {
> for (i in 2:length(x))
>    {
>        x[i] <- ifelse(is.na(x[i]),mean(c(x[i-1],x[i+1])),x[i])
>
>     }
> }
> sapply(x, media)
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea cdigo
> mnimo reproduzvel.




-- 
Rafael Garcia Cunha

YNWA
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160415/4b432d86/attachment.html>


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