[R-br] Substituir NA's

Paulo Justiniano paulojus em leg.ufpr.br
Quarta Agosto 10 17:15:42 BRT 2011


veja a seguir, troque -1 por 0.1

> ap <- cbind(c(1, NA, 2), 1:3, c(NA, 1, 2))
> ap
      [,1] [,2] [,3]
[1,]    1    1   NA
[2,]   NA    2    1
[3,]    2    3    2
> ifelse(is.na(ap), -1, ap)
      [,1] [,2] [,3]
[1,]    1    1   -1
[2,]   -1    2    1
[3,]    2    3    2




On Wed, 10 Aug 2011, Daniel Dantas wrote:

> Boa tarde pessoal,
> 
> A minha dúvida é: Como substituir os NA's de uma matriz pelo valor 0.1 e os que não forem NA manter os valores de x?
> 
> Lógica: Se x = NA, então 0.1, caso contrário x.
> 
> Tentei da forma abaixo mas não obtive exito:
> 
> > x
>          [,1]     [,2]     [,3]     [,4] [,5] [,6] [,7]
> [1,] 0.359375 2.593750 2.453125 0.531250   NA   NA   NA
> [2,] 5.095238 6.619048 3.857143 2.119048   11    0   11
> [3,]       NA 5.333333 1.000000 2.000000    1    0    1
> [4,] 0.800000 7.850000 3.850000 2.250000    4    1    2
> [5,] 5.833333 9.000000 4.833333 3.666667    2    0    0
> [6,] 2.285714 8.857143 3.428571 2.714286   NA   NA   NA
> 
> y<- ifelse(x==NA,0.1,x)
> > y
>      [,1] [,2] [,3] [,4] [,5] [,6] [,7]
> [1,]   NA   NA   NA   NA   NA   NA   NA
> [2,]   NA   NA   NA   NA   NA   NA   NA
> [3,]   NA   NA   NA   NA   NA   NA   NA
> [4,]   NA   NA   NA   NA   NA   NA   NA
> [5,]   NA   NA   NA   NA   NA   NA   NA
> [6,]   NA   NA   NA   NA   NA   NA   NA
> 
> Tentei também de outra forma mas também sem sucess:
> y<- ifelse(x=="NA",0.1,x)
> 
> Obrigado,
> Daniel
> 
> 
> 
>


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