Franklin,
Seu post original enseja vários comentários:
- O R usa uma linguagem orientada a vetores e matrizes, e, em geral, quando você se vê em uma situação em que está iterando valores um a um, provavelmente está fazendo algo de maneira ineficiente ou mesmo incorreta!
- Se para iterar o que você quer está ficando "cabeludo" então é provável que você esteja fazendo de maneira inadequada, além das obs. acima!
- No seu caso se o objetivo era apenas fazer a soma, veja (use ?sum no console do R para ver a doc. dessa função) que apenas fazendo sum(vetor, na.rm=TRUE) daria o resultado desejado por você.
> sum(vetor, na.rm=TRUE)
[1] 27411
Agora, considerando que seu caso o foco fosse realmente a questão com lógica booleana no R e seu uso no sum() foi mais um exemplo, então:
Pela obs. nº 2 acima, veja:
> ifelse(
is.na(vetor), 0, vetor)
[1] 575 618 558 549 499 487 450 412 382 342 365 254 311 362 312 335 339 267 300
[20] 350 527 555 561 545 597 580 548 576 624 664 632 0 539 567 574 611 660 763
[39] 658 599 577 543 514 409 364 374 361 354 454 555 620 617 559 559 0 0 544
[58] 560
HTH
--
Cesar Rabak