É 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.
2 comentários em “Evitando “NA” nos cálculos do R”