O objetivo deste laboratório é introduzi-lo ao R e ao RStudio, os quais você irá utilizar ao longo do curso tanto para aprender os conceitos estatísticos discutidos em sala quanto para analisar dados reais e chegar às conclusões informadas. Imediantamente, queremos distinguir entre um e outro: R é o nome da linguagem de programação e RStudio é uma interface gráfica conveniente para utilizar o R.

À medida que os laboratórios avançarem, você será encorajado a explorar além do que os laboratórios propõem; a vontade de experimentar o fará um programador muito melhor. Antes de chegarmos a este estágio, contudo, você precisa desenvolver alguma fluência básica em R. Hoje nós começaremos com os blocos fundamentais do R e do RStudio: a interface, importação de dados, e comandos básicos.

rinterface

rinterface

O painel, na parte superior direita, contém seu espaço de trabalho assim como um histórico dos comandos que você utilizou anteriormente. Quaisquer gráficos que você gerar aparecerão no canto inferior direito do painel.

O painel à esquerda é onde a ação acontece. Ele é chamado de console. Toda vez que você iniciar o RStudio, ele terá o mesmo texto no topo do console dizendo qual versão do R você está rodando. Abaixo desta informação está o comando de linha. Como o nome sugere, ele interpreta qualquer entrada como um comando a ser executado. Inicialmente, a interação com o R é feita principalmente pela digitação de comandos e a interpretação dos resultados. Esses comandos e sua sintaxe evoluíram ao longo de décadas (literalmente) e agora proporcionam o que muitos usuários acreditam ser um forma bastante natural de acessar dados e organizar, descrever e invocar computações estatísticas.

Durante o laboratório, os arquivos necessários para a análise e interpretação aparecem no canto inferior direito do painel. Para facilitar nosso trabalho, o endereço dos arquivos já estarão indicados automaticamente, mas caso você queira reproduzir o laboratório em casa basta salvar os arquivos no seu computador e indicar ao RStudio a pasta onde os arquivos estão salvos. Isto pode ser feito seguindo a seguinte sequência de escolhas no menu: Session > Set Working Directory > Choose Directory.

Criando um relatório do laboratório

Nós iremos utilizar o R Markdown para elaborar um relatório do laboratório. Isso nos permite completar todo o laboratório no RStudio assim como assegurar a reprodutibilidade das suas análises e resultados. Para ajudá-lo, nós fornecemos um modelo para você; basta clicar no arquivo lab1.Rmd para carregar este modelo. Nós iremos nos referir a este tipo de modelo como “arquivo R markdown” ou “seu relatório”. Tudo o que você precisa para completar seu laboratório é escrever seu relatório de respostas e incluir, quando necessário, os comandos do R nos espaços fornecidos no documento.

Os espaços são fornecidos com o objetivo de que vocês preencham os campos com comandos do R, entretanto novos campos podem ser acrescidos clicando em Insert Chunk que é uma das opções que aparecem automaticamente ao clicar no ícone verde Chunks que aparece no campo superior direito do documento markdown.

Antes de continuar escreva o seu nome (ou nome do grupo caso seja pertinente); o nome do membro do grupo que realizar a atividade no dia deve ser preenchido no campo “Aluno”, e os outros membros no campo “Participantes”. Então clique em Knit HTML para gerar um documento referente ao seu relatório em um nova janela pop-up. Arquivos em PDF ou Word também podem ser gerados com os comandos Knit PDF e Knit Word respectivamente.

Os Dados: Registro de Batismos do Dr. Arbuthnot

Para iniciar, execute o seguinte comando (i.e. logo depois do \(>\) no comando de linha) do seu arquivo markdown.

source("arbuthnot.R")

Para tal, basta clicar na caixa correspondente ao endereço utilizado como “working directory” para indicar os arquivos disponíveis, posicionar seu cursor na linha de interesse e apertar o botão Run no canto superior direito do painel.

Este comando instrui o R a acessar o arquivo e colher alguns dados: a contagem de batismos de meninos e meninas coletados por Arbuthnot . Você deve ver que a área do espaço de trabalho no canto superior direito da janela do RStudio agora lista um conjunto de dados chamado arbuthnot que tem 82 observações de três variáveis. À medida que você interage com o R, você criará uma série de objetos. Às vezes você os carregará como nós fizemos aqui, e às vezes você os criará por conta própria como o produto de uma computação ou alguma análise que você realizou.

O conjunto de dados Arbuthnot se refere ao Dr. John Arbuthnot, um médico, escritor e matemático do século 18. Ele se interessou pela razão de meninos e meninas recém-nascidos, e para isso ele coletou os registros de batismo de crianças nascidas em Londres no período compreendido entre 1629 e 1710. Nós podemos dar uma olhada nos dados digitando seu nome no comando de linha.

arbuthnot

Você deve ver quatro colunas de números, onde cada linha representa um ano diferente: a primeira entrada em cada linha é simplesmente o número da linha (um índice que podemos usar para acessar os dados de anos individuais, se quisermos), a segunda é o ano, e a terceira e a quarta são os números de meninos e meninas batizados naquele ano, respectivamente. Use a barra de rolagem à direita da janela do console para examinar o conjunto de dados completo.

Note que os números das linhas na primeira coluna não fazem parte dos dados de Arbuthnot. O R os adiciona como parte das impressões em tela para ajudá-lo a fazer comparações visuais. Pense neles como um índice que costuma ficar ao lado esquerdo de uma planilha. Em geral, a visualização como uma planilha é útil. O R armazenou os dados de Arbuthnot em um tipo de planilha ou tabela chamada de data frame ou, em português, banco de dados.

Você pode ver as dimensões deste banco de dados digitando:

dim(arbuthnot)
## [1] 82  3

A saída deste comando deve ser [1] 82 3, indicando que há 82 linhas e 3 colunas (nós já voltaremos ao significado de [1]), da mesma forma como está especificado ao lado do objeto em seu espaço de trabalho. Você pode ver os nomes das colunas (ou variáveis) digitando:

names(arbuthnot)
## [1] "ano"     "meninos" "meninas"

Você deve ver que o banco de dados contém as colunas ano, meninos, e meninas. A essa altura, você deve ter notado que muitos dos comandos no R se parecem muito com funções matemáticas; ou seja, invocar comandos do R significa alimentar uma função com um certo número de argumentos. Os comandos dim e names, por exemplo, precisaram de um único argumento cada um: o nome do banco de dados.

Uma vantagem do RStudio é que ele vem com um visualizador de dados embutido. Clique no nome arbuthnot no canto superior direito da janela (painel Environment) que lista os objetos em seu espaço de trabalho. Isso fará com que uma visualização alternativa, uma nova aba, das contagens de Arbuthnot apareça na janela superior esquerda (Data Viewer). Você pode fechar o visualizador de dados clicando em x no canto superior esquerdo.

Explorando os dados

Vamos começar a examinar os dados um pouco mais de perto. Nós podemos acessar separadamente os dados de uma única coluna da base de dados usando um comando como

arbuthnot$meninos

Este comando apresentará apenas o número de meninos batizados em cada ano.

  1. Qual comando você utilizaria para extrair somente a contagem de meninas batizadas? Experimente! (Insira sua resposta no seu documento R markdown e execute o relatório completo apertando Knit HTML. Voila! Seu texto de saída para o R já está em seu relatório.)

Observe que a maneira como o R imprimiu esses dados é diferente. Quando nós visualizamos o banco de dados completo, vimos 82 linhas, uma em cada linha do console. Esses dados não estão mais estruturados em uma tabela com outras variáveis, então eles são dispostos um ao lado do outro. Objetos que são impressos na tela desta maneira são chamados de vetores; eles representam um conjunto de números. O R adicionou números em [colchetes] no lado esquerdo dos resultados para indicar as localizações dentro do vetor. Por exemplo, 5218 segue [1], indicando que 5218 é a primeira entrada do vetor. [43] inicia uma linha, então isso significa que o primeiro número naquela linha representa a 43\(^{\text{a}}\) entrada do vetor.

O R tem algumas funções poderosas para criar gráficos. Podemos criar uma gráfico simples do número de meninas batizadas por ano com o comando

qplot(x = ano, y = meninas, data = arbuthnot)

A função qplot() (significando “quick plot”) cria uma gráfico de dispersão onde cada par (x,y) é indicado por um círculo aberto. Ele deve aparecer na aba Plots no canto inferior direito do RStudio. Repare que o comando acima também se parece com uma função, desta vez com três argumentos separados por vírgula. Os primeiros dois argumentos na função qplot() especificam as variáveis referentes aos eixos x e y, enquanto o terceiro fornece o nome dos dados onde elas podem ser encontradas. Se nós quiséssemos conectar os pontos dos dados com linhas, nós poderíamos adicionar um quarto argumento para especificar a geometria que queremos.

qplot(x = ano, y = meninas, data = arbuthnot, geom = "line")

Você pode se perguntar como você poderia saber que seria possível adicionar aquele quarto argumento. Felizmente, o R tem documentações extensivas de todas as suas funções. Para ler o que a função faz e aprender os argumentos disponíveis, basta digitar um ponto de interrogação seguido pelo nome da função na qual vocês está interessado. Tente o seguinte.

?qplot

Veja que o arquivo de ajuda substitui o gráfico no painel no canto inferior direito. Você pode alternar entre gráficos e arquivos de ajuda usando as abas no topo daquele painel.

  1. Há alguma tendência aparente no número de meninas batizadas ao longo dos anos? Como você a descreveria?

Agora, vamos supor que queiramos fazer um gráfico com o número total de batismos. Para calcular isso, nós podemos nos aproveitar do fato de que o R é, na verdade, uma grande calculadora. Nós podemos digitar expressões matemáticas como

5218 + 4683

para ver o número total de batismos em 1629. Nós podemos repetir isso para cada ano, mas há um modo mais rápido. Se somarmos o vetor de batismo para meninos e o vetor de batismo para meninas, o R irá computar todas as somas simultaneamente.

arbuthnot$meninos + arbuthnot$meninas

Você visualizará 82 números (naquela exibição compacta, porque não estamos analisando um banco de dados), cada um representando a soma que nós queremos. Dê uma olhada em alguns deles e verifique que eles estão corretos.

Nós ainda iremos utilizar este vetor para gerar alguns gráficos, então iremos salvá-lo como uma coluna permanente do nosso banco de dados.

arbuthnot <- mutate(arbuthnot, total = meninos + meninas)

Como você pode ver, uma nova coluna chamada “total” foi incluída no banco de dados. O símbolo especial <- realiza uma tarefa, tomando a saída de uma linha de código e a salvando em um objeto no seu campo de trabalho (workplace). No nosso caso, já possuímos um objeto chamado arbuthnot, então o comando atualiza o banco de dados acrescentando a nova coluna.

Podemos criar um gráfico do número total de batismos por ano com o comando

qplot(x = ano, y = total, data = arbuthnot, geom = "line")

De modo semelhante ao qual calculamos o número total de batismos, podemos calcular a proporção do número de meninos batizados em relação ao número de meninas batizadas em 1629 por meio do comando

5218 / 4683

ou podemos agir em toda a coluna (todos os anos) por meio da expressão

arbuthnot$meninos / arbuthnot$meninas

Podemos, também, calcular a proporção de meninos batizados em relação ao total de crianças em 1629

5218 / (5218 + 4683)

ou isto pode ser calculado em todos os anos simultaneamente

arbuthnot$meninos / (arbuthnot$meninos + arbuthnot$meninas)

Note que usando o R como sua calculadora, você precisa estar conciente da ordem das operações. Aqui, nós queremos dividir o número de meninos pelo total de recém-nascidos, portanto precisamos usar parênteses. Sem eles, o R efetuará primeiro a divisão, depois a adição, dando como resultado algo que não é uma proporção.

  1. Agora, mutate o banco de dados mais uma vez de modo a incluir uma nova coluna para a proporção de crianças batizadas que são meninos, em seguida construa um um gráfico das proporções dos meninos batizados em relação ao tempo. O que você percebe? Dica: se você usar as teclas de flecha para cima e para baixo, você pode retornar comandos já utilizados, chamados de histórico de comandos. Você também pode acessá-los clicando na aba History no canto superior direito do painel. Isto irá lhe economizar várias digitações no futuro!

Finalmente, além de operadores matemáticos simples como subtração e divisão, você pode pedir para o R fazer comparações como mair que, >, menor que, <, e igualdade, ==. Por exemplo, podemos perguntar se o número de meninos é maior que de meninas em cada ano com a expressão

arbuthnot$meninos > arbuthnot$meninas

Este comando retorna 82 valores do tipo TRUE (verdadeiro) se aquele ano teve mais meninos batizados do que meninas, ou FALSE (falso) se naquele ano aconteceu o oposto (a resposta pode surpreendê-lo). Esse resultado mostra um tipo diferente de variável daquelas que vimos até agora. No banco de dados arbuthnot nossos dados são numéricos (o ano, o número de meninos e meninas). Aqui, nós pedimos para o R criar dados lógicos, dados cujos valores são TRUE ou FALSE. De modo geral, a análise de dados envolverá vários tipos diferentes de dados, e uma razão para usar o R é que ele consegue representar e realizar computações com vários tipos distintos.

Já é o bastante para seu primeiro laboratório, então vamos parar por aqui. Para sair do RStudio você pode clicar em x no canto superior direto da janela do aplicativo. Você será questionado se quer salvar seu espaço de trabalho. Se você clicar em save (salvar), o RStudio salvará seu histórico e todos os objetos de seu espaço de trabalho para que na próxima vez que você inicializar o RStudio você tenha acesso ao objeto arbuthnot e aos comandos que você digitou nas suas sessões prévias. Por enquanto, clique em save, e depois reinicialize o RStudio. Você encontrará sua sessão do R exatamente como a deixou.


Por sua conta

Nas páginas anteriores, você recriou algumas das exposições e análises preliminares dos dados de batismo de Arbuthnot. Sua tarefa consiste em repetir essas etapas, agora para os registros atuais de nascimento dos Estados Unidos. Carregue os dados atuais com o seguinte comando.

source("present.R")

Os dados serão armazenados num banco de dados chamado present.

  • Quais anos estão incluídos neste conjunto de dados? Quais são as dimensões da base de dados e quais são os nomes das colunas ou variáveis?

  • Como estes valores se comparam aos dados de Arbuthnot? Eles estão numa escala similar?

  • Crie um gráfico que mostre a proporção de meninos em relação às meninas para cada ano do conjunto de dados. O que você vê? A observação de Arbuthnot de que os meninos nascem numa proporção maior do que as meninas se mantém nos EUA? Inclua o gráfico em sua resposta.

  • Em qual ano se verifica o maior número de nascimentos nos EUA?

Esses dados são provenientes de uma pesquisa realizada pelo Centro de Controle de Doenças (Center For Disease Control) http://www.cdc.gov/nchs/data/nvsr/nvsr53/nvsr53_20.pdf. Confira-o se você desejar ler mais sobre a análise da razão entre os sexos nos nascimentos nos Estados Unidos.

Esta foi uma curta introdução ao R e ao RStudio, mas nós forneceremos mais funções e um sentido mais completo da linguagem ao longo do curso. Sinta-se livre para procurar na internet pelo R http://www.r-project.org e pelo RStudio http://rstudio.org se você estiver interessado em aprender mais, ou encontre mais laboratórios para praticar em http://openintro.org.

Este é um produto da OpenIntro que é liberado sob uma Creative Commons Attribution-ShareAlike 3.0 Unported. Este laboratório foi adaptado para a OpenIntro por Andrew Bray e Mine Çetinkaya-Rundel da Duke University de um laboratório escrito por Mark Hansen da UCLA Statistics e readaptado por Jhames Sampaio ao curso de Probabilidade e Estatística da Universidade de Brasília a partir de uma primeira tradução de Erikson Kaszubowski da Universidade Federal de Santa Catarina.