NA

Excluindo linhas missing no R

Essa é bem curtinha. Já expliquei como tirar os missings de seus cálculos no post Evitando “NA” nos cálculos do R, mas às vezes a gente quer construir uma base sem esses valores. Para fazer isso no R é simples, basta usar a função na.omit():

matriz_teste
      [,1] [,2]
 [1,]  10    5
 [2,]  NA    2
matriz_teste_sem_na = na.omit(matriz_teste)
matriz_teste_sem_na
      [,1] [,2]
 [1,]  10    5
Anúncios

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.