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.

Carregando / Importando seus dados no R

A função read.table()  do R serve para importar arquivos de diversos formatos. O print abaixo apresenta a descrição do que a função é capaz de fazer e algumas variações dela, como o read.csv() – muito embora a própria read.table() seja capaz de ler arquivos csv.

Não tem muito segredo para ler arquivos. Vejamos um exemplo de como ler um arquivo utilizando as principais especificações da função e vamos nomear o arquivo dados_exemplo:

dados_exemplo = read.table("C:/Users/Public/Desktop/tabela_exemplo.txt",header=TRUE,sep="\t",dec=",");

Item a item temos:

  • diretório e nome do arquivo;
  • header = TRUE indicando que meu arquivo tem cabeçalho. Se não tivesse, utilizaria header=FALSE;
  • sep=”\t” para indicar separação por tabulações. Poderia ter utilizado sep=”;” ou sep=”,”;
  • dec=”,” foi utilizado para indicar que os dados numéricos são separados por vírgula e não por ponto;

Após os dados serem importados você pode fazer pequenas manutenções (algumas poderiam ser feitas inclusive na hora de importar):

NOMEAR AS COLUNAS
colnames(dados_exemplo) = c("NomeDaColuna 1";"NomeDaColuna 2";"NomeDaColuna 3";"NomeDaColuna 4",...)
VISUALIZAR SEUS DADOS
## Para abrir a tabela de dados
View(dados_exemplo)

## Para observar as primeiras linhas
head(dados_exemplo)

## Para visualizar da primeira a décima linha, e da primeira a quinta coluna: dados_exemplo[1:10,1:5]

## Para visualizar a primeira linha da coluna 3
dados[1,"NomeDaColuna"]
ORDENAR SEUS DADOS
dados_exemplo=dados_exemplo[order(dados_exemplo[,"NomeDaColuna"],decreasing = TRUE),];

ou

dados_exemplo$NomeDaColuna = sort(dados_exemplo$NomeDaColuna ,decreasing = TRUE)
E aí, curtiu o post?

E aí? Gostou do conteúdo? Se inscreva para receber todas as novidades. Deixe seu e-mail em INSCREVA-SE na barra à direita, logo abaixo de pesquisar. E, por favor, não deixe de comentar, dar seu feedback e, principalmente, compartilhar com seus amigos. De verdade, isso faz toda a diferença. Além disso, você também pode acompanhar mais do meu trabalho seguindo a conta de Twitter @UniDosDados, no Instagram @universidadedosdados ou por alguma das redes que você encontra em Sobre o Estatsite / Contato, como meu canal de Youtube Canal Universidade dos Dados.

Aproveite e adquira sua camiseta de data science na LOJA DA UNIVERSIDADE DOS DADOS. Vai ficar estiloso e me ajudar neste projeto!

BONS ESTUDOS!