[R-br] Dúvida com lógica booleana

Franklin Januario da Silva Franklin.Silva em cerradinho.com.br
Quarta Julho 29 14:31:05 BRT 2015


Boa tarde Srs.

Estou iniciando com a linguagem R e me deparei com uma situação da qual não tenho tido êxito em solucionar, preciso iterar sobre um vetor e onde houver valores NA substituí-los por 0, isso porque ao executar a função getValues da biblioteca raster sobre uma linha que contenha em algumas das células o valor NA, e tentar obter o somatório destas, o R me retorna NA, vou tentar ser mais claro:

Tenho o seguinte vetor:

> vetor
   [1]   575   618   558   549   499   487   450   412   382   342   365   254   311   362   312   335   339   267   300   350   527   555   561   545
  [25]   597   580   548   576   624   664   632   NA   539   567   574   611   660   763   658   599   577   543   514   409   364   374   361   354
  [49]   454   555   620   617   559   559   NA   NA   544   560

Se eu fizer sum(vetor) obtenho isso:

> sum(vetor)
[1] NA

Então tentei iterar sobre o vetor substituindo os valores NA por 0:

> for (i in 1:length(vetor)){
+ if (vetor[i]==NA){
+ vetor[i]<-0}}
Error in if (vetor[i] == NA) { : valor ausente onde TRUE/FALSE necessário
>

Pensei que talvez fosse necessário criar um objeto com o valor NA para realizar a comparação, criei o "vazio", mas obtenho o mesmo erro:

> vazio
[1] NA
> for (i in 1:length(vetor)){
+ if (vetor[i]==vazio[1]){
+ vetor[i]<-0}}
Error in if (vetor[i] == vazio[1]) { :
  valor ausente onde TRUE/FALSE necessário
>

Algum sugestão?

Grato.

[http://www.cerradinho.com/CBio.png]

        Franklin Januario da Silva
          Agricola

          64 3634-2806
          64 9979-0608
          cerradinho.com.br<http://www.cerradinho.com.br>

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20150729/742f535a/attachment.html>


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