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

Cesar Rabak cesar.rabak em gmail.com
Terça Abril 26 18:05:56 BRT 2016


Com a restrição de que não funcionará se você tiver dois NA em sequência
direta (que com o exemplo que você coloca, acontece quatro vezes), você
pode usar a função na2mean do pacote fast.

HTH

2016-04-22 15:55 GMT-03:00 Leonardo Ferreira Fontenelle <
leonardof em leonardof.med.br>:

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


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