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

Leonardo Ferreira Fontenelle leonardof em leonardof.med.br
Sexta Abril 22 15:55:35 BRT 2016


Além das situações que já foram levantadas, parece-me que o sapply() vai
fornecer um valor de cada vez para a função, e ela precisa de receber o
vetor inteiro. Além disso, provavelmente dá para reescrever a função sem
o for(), mas não tenho nem o R, nem um teclado de verdade ao alcance no
momento.

Leonardo Ferreira Fontenelle
http://lattes.cnpq.br/9234772336296638

Em Qui 14 abr. 2016, às 16:40, Felipe 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.


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