
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@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.