Evitando “NA” nos cálculos do R

É sempre um problema trabalhar com NAs no R. Veja o código abaixo, onde foi criada uma matriz 2×2 contendo um elemento NA:

matriz_teste = array(data=c(10,NA,5,2), dim=c(2,2));
matriz_teste;

Para calcular a média das colunas, deveríamos utilizar a função colMeans() do R, mas veja que a sintaxe abaixo retorna um erro:

colMeans(matriz_teste);

O R não consegue calcular a média por causa desse NA. Porém, o R é muito inteligente, e para calcular a média quando tiver um NA no caminho, você não precisa de muito esforço, basta acrescentar o  argumento na.rm = TRUE:

colMeans(matriz_teste, na.rm = TRUE);

Veja que ele simplesmente ignora o elemento NA. É como se houvesse apenas um elemento na coluna. Se a coluna tivesse quatro elementos, sendo que dois eram NAs, a média seria calculada como a soma dos dois elementos não NAs dividida por dois.

E isso funciona também para a função que calcula a soma da coluna:

colSums(matriz_teste, na.rm = TRUE)

Simples, não?

Com relação a função chamada array(), leia o conteúdo do Wikipedia sobre arranjo.