Analisar as variáveis da sua base é tarefa fundamental para qualquer analista de dados, cientista de dados, estatístico, etc. No R, é possível fazer isso usando o pacote Hmisc. Outra forma fácil de se fazer isso, com uma saída levemente diferente da explicada anteriormente, é utilizar a função table(). Vamos fazer algumas análises utilizando os dados de mtcars, base que já vem dentro do R. Primeiro, vamos verificar quantos carros temos para cada quantidade de cilindros:
table(mtcars$cyl)
Simples, certo? Não tem nenhum segredo. Para obter a frequência de uma variável, você pode simplesmente aplicar a função nela. Agora, e se você quiser saber uma frequência cruzada? Por exemplo, quantos carros de 4 cilindros são automáticos e quantos são manuais? Bom, a resposta, creio eu que seja intuitiva para todos. Basta incluir mais uma variável na função:
table(mtcars$cyl, mtcars$am)
Como você pode ver, dos 11 carros com 4 cilindros, temos 8 manuais e 3 automáticos.
Ok, e se eu quiser saber quantos carros com 4 cilindros e manuais possuem motor V-shaped? Posso incluir mais uma variável na função? Com certeza!
table(mtcars$cyl, mtcars$am, mtcars$vs)
Um exemplo mais elaborado, que eu adaptei do R-Bloggers (site fenomenal!), pode ser visto abaixo. Nele, primeiro construímos um conjunto de dados de 100 pacientes num determinado teste médico:
dados_medicos = data.frame(paciente = 1:100, Idade = rnorm(100, mean = 60, sd = 6), Tratamento = gl(2, 50,labels = c("Tratamento", "Controle")), Centro = sample(paste("Centro", LETTERS[1:5]), 100, replace = TRUE))
Em seguida, vamos verificar quantos pacientes estão em cada centro médico:
table(dados_medicos$Centro)
Como você pode ver, temos 23 pacientes no Centro A, 17 no B, 15 no C, 19 no D e 26 no E. Se quiséssemos ver quantos pacientes no grupo Tratamento ou Controle temos em cada centro, bastaria incluir esta variável na função table():
table(dados_medicos$Centro, dados_medicos$Tratamento)
Podemos ver, por exemplo, que no Centro A temos 9 pacientes no grupo Tratamento e 14 no grupo de Controle.
Outra coisa que pode ser feita, é verificar quantos missing temos para alguma das variáveis. Vamos, propositalmente, imputar alguns missing para a variável Tratamento:
is.na(dados_medicos$Tratamento) = c(10,15,20,35)
Agora, vamos verificar a frequência de missing no campo Tratamento:
table(is.na(dados_medicos$Tratamento))
Note que nossa lógica está pergundando quantos Tratamento “is na”, ou seja, quantos são NA (=missing). Na resposta temos 96 FALSE, ou seja, 96 não são missing, e outros 4 TRUE, ou seja, são missing. Mas e se eu quiser verificar quantos missing temos em cada centro? Aí você deve combinar o código anterior com a frequência dos centros:
table(is.na(dados_medicos$Tratamento), dados_medicos$Centro)
Temos então 2 missing no Centro A, 1 no centro D e 1 no centro E.
Por fim, e se eu quiser saber a frequência de pacientes idosos nós temos?
Neste caso, utilizamos table com a variável que queremos analisar e a condição desejada. Se considerarmos que idoso é acima de 60 anos, queremos idade e maior que 60:
table(dados_medicos$Idade > 60)
Novamente, a resposta veio com TRUE e FALSE. Como a nossa lógica pedia maiores que 60, entendemos que 48 possuem menos de 60 e 52 possuem mais.
Lembre-se ainda, que se fossem variáveis contínuas, você poderia fazer um gráfico legal, vendo a relação de cilindros com câmbio automático/manual, utilizando cores diferentes para cada tipo de motor no gráfico. Porém, como são variáveis que representam categorias, o gráfico não vai ficar legal. Se você estiver querendo fazer gráficos desse tipo, dê uma passada no post Gráfico no R, colorindo pontos por categoria.