O que é R?

R é uma linguagem de programação orientada a objetos (POO), isto significa que a variável que atribuimos um determinado valor pode também armazenar estruturas mais complexas e que as funções podem responder de maneira diferente à variáveis com diferentes estruruas. Objetos (variáveis) com uma mesma estrutura, são ditos de possuirem uma mesma classe, enquanto funções quem responde de maneira diferente à classe do objeto são chamadas de métodos.

A linguagem R, com o passar dos anos, passou cada vez mais sendo absorvida pela comunidade de estatísticos como ferramenta de programação e pela comunidade de programadores para a análise de dados. Dentre as razões que justificam essa seleção estão o fato do R ser livre e gratuito; possuir excelentes bibliotecas para visualização de dados (gráficos, mapas, diagramas) e ter sua filosofia direcionada para a análise dados, fato que em muito impacta a forma com que a funções retornam suas respostas e a maneira com que os dados são manipulados.

Conforme novos pacotes de função foram sendo desenvolvidos, a linguagem R passou a galgar novos horizontes. Técnicas de webscraping (extração de dados de páginas da web de forma automatizada) foram implementadas, análises de imagem e vídeo passaram a estar disponíveis, e pacotes para desenvolvimento de aplicativos web (shiny) tornaram o potencial do R disponível para o público em geral.

Instalando o R

A versão mais atual do R pode ser obtida no site do R-Project. Caso seu computador seja:

  • Windows: Clique Aqui

  • Mac: Clique Aqui

  • Linux: Eu sei que você vai dar um jeito!

Com o instalador baixado inicie a instalação, não há necessidade de alterar nenhuma modificação.

O terminal de programação do R é bem feio antiguado. E por não permitir de forma organizada a visualização do console e do script, acaba por complicar mais do que ajudar. Por isso utilizaremos o software RStudio!

RStudio

O RStudio é a IDE mais popular para uso do R, seu visual permite a acompanhar o script, o console, gráficos e objetos em uma única tela.

Para download do Rstudio clique nos itens a seguir:

Operações básicas e funções em R

Para rodar qualquer código no RStudio, tem-se como opções:

  • Escrever diretamente no console e dar um

  • Escrever o código no console, selecionar as linhas de código de interesse e então:

    • Clicar no botão run na barra superior direita da tela do script
    • Teclar Crtl + Enter

Teste as diferentes opções com a operação de atribuição descrita abaixo:

a = 2  # Atribuição com sinal de igualdade
 
b <- 2 # Atribuição com seta (adotado pelos programadores de R)

As operações matemáticas são as usuais utilizadas em outras linguagens.

x <- 2/3 - 3*(4^2) + 7

x
## [1] -40.33333

O R possui diferentes objetos/estruturas para armazenar dados, em nossas aulas, utilizaremos principalmente os Vetores e dataframes (tabelas).

Vetores são criados com a função c, de concatenar com seus elementos separados por vírgulas.

vetor_1 <- c(2,3,6)

vetor_2 <- c(FALSE, TRUE, FALSE)

vetor_3 <- c("texto1", "comentario2", "anotação3")

Dataframes são criados como uma ordenação de vetores em suas colunas:

tabela <- data.frame(vetor_1, vetor_2, vetor_3)

print(tabela)
##   vetor_1 vetor_2     vetor_3
## 1       2   FALSE      texto1
## 2       3    TRUE comentario2
## 3       6   FALSE   anotação3

Uso de pacotes em R

Todas as funções do R provêm de pacotes, os pacotes nativos são inicializados abrindo o RStudio, contudo, para utilizar outras funções se faz necessário carregar o pacote com a função library. Ao rodar o código abaixo o seguinte erro aparecerá.

arrange(cars)
## Error in arrange(cars): não foi possível encontrar a função "arrange"

Esse é o típico caso do pacote de funções não estar carregado ou não ter sido instalado. Para carregar o pacote use:

library(dplyr)

arrange(cars)
##    speed dist
## 1      4    2
## 2      4   10
## 3      7    4
## 4      7   22
## 5      8   16
## 6      9   10
## 7     10   18
## 8     10   26
## 9     10   34
## 10    11   17
## 11    11   28
## 12    12   14
## 13    12   20
## 14    12   24
## 15    12   28
## 16    13   26
## 17    13   34
## 18    13   34
## 19    13   46
## 20    14   26
## 21    14   36
## 22    14   60
## 23    14   80
## 24    15   20
## 25    15   26
## 26    15   54
## 27    16   32
## 28    16   40
## 29    17   32
## 30    17   40
## 31    17   50
## 32    18   42
## 33    18   56
## 34    18   76
## 35    18   84
## 36    19   36
## 37    19   46
## 38    19   68
## 39    20   32
## 40    20   48
## 41    20   52
## 42    20   56
## 43    20   64
## 44    22   66
## 45    23   54
## 46    24   70
## 47    24   92
## 48    24   93
## 49    24  120
## 50    25   85

Caso o pacote não esteja instalado, faça de forma genérica:

install.packages("nome_do_pacote") # Entre aspas escreva o nome do pacote
library(nome_do_pacote)

Manipulação de dados

Para a manipulação de dados usaremos o pacote dplyr e um banco de dados nativo do R chamado mtcars.

library(dplyr)

head(mtcars, 5) # Retorna as 5 primeiras linhas da tabela "mtcars"
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2

A ideia do pacote dplyr está em tornar a manipulação de dados explicita utilizando verbos que indicam a ação a ser realizada. O encadeamento dos verbos com o banco de dados é realizado com o operador %>% (pipe). Digamos que quereremos filtrar os da tabela mtcars cujo valor da variável carb seja superior a 2, fazemos isso com a função filter.

mtcars %>% filter(carb > 2)
##     mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## 1  21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## 2  21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## 3  14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## 4  19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## 5  17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## 6  16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## 7  17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## 8  15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## 9  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## 10 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## 11 14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## 12 13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## 13 15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## 14 19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## 15 15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8

Para obtermos, por exemplo, a média e o desvio-padrão da variável hp das observações agrupados pelo seu valor da variável gear.

mtcars %>% group_by(gear) %>% summarise(media = mean(hp), desvio = sd(hp))
## # A tibble: 3 × 3
##    gear    media    desvio
##   <dbl>    <dbl>     <dbl>
## 1     3 176.1333  47.68927
## 2     4  89.5000  25.89314
## 3     5 195.6000 102.83385

Na estrutura abaixo estamos gerando uma tabela apenas com as variaveis carb, wt e price (select), onde price é uma variável criada pela fórmula \(price = gear*3000 + hp*10\), com as observações que tenham o valor da variável Carb maior que 1 e wt menor que 3.

mtcars %>% filter(carb > 1, wt < 3) %>% mutate(price = gear*3000 +hp*10) %>% select(carb, wt, price)
##   carb    wt price
## 1    4 2.620 13100
## 2    4 2.875 13100
## 3    2 1.615 12520
## 4    2 2.140 15910
## 5    2 1.513 16130
## 6    6 2.770 16750
## 7    2 2.780 13090

Para conhecer mais usos do pacote dplyr acesse a documentação do desenvolvedor Aqui

Gráficos em R

A geração de gráficos mais simples em R utiliza a função plot, um gráfico simples pode ser gerado com dois vetores:

x = c(1,2,3,4,5,6)
y = c(2,4,6,8,10,12)

plot(x, y)

Os gráficos gerados por esta função são de trabalhosa modificação para que possam ter a qualidade desejado pela quantidade de argumentos necessários. Confirma Aqui alguns exemplos de gráficos em melhor qualidade.

Por isto usaremos o pacote ggplot2 unido do dplyr para a criação de nossos gráficos.

library(ggplot2)

mtcars %>% ggplot(aes(x = hp, y = mpg))

Até aqui nos mapeamos as variáveis que irão formar nosso plot. Dentro da função aes informamos (o termo técnico é “mapeamos”) as variáveis que irão compor os eixos, e com o pipe seguido do banco de dados, estamos declarando que as variáveis informadas vem do banco de dados mtcars. Para gerar o gráfico completo, informamos a geometria que ele deve ter.

library(ggplot2)

mtcars %>% ggplot(aes(x = hp, y = mpg)) + geom_point()

Um pouco mais complexo a primeira vista, mas além de garantir uma melhor formatação, também permite modificações de forma mais simples do que com a função plot.

mtcars %>% ggplot(aes(x = hp, y = mpg, size = carb)) + geom_point(col = "darkgreen") 

Exercícios para fixação

Agora é sua vez!

Utilizando o banco de dados nativo PlantGrowth, realize as seguintes análises:

  • Cálcule a média e desvio-padrão do weight para cada um dos groups.

  • Construa o gráfico de barras com a tabela gerada no item anterior (dica: utilize a função geom_bar(stat = ‘identity’))

  • Construa uma nova variável para as observações do grupo trt2 com valor do peso menor que 6, cujo valor é igual a raiz da variável weight.