O que é R?

É um software livre para gráficos e computação estatística. Usa command-line scripting, podendo armazenar uma série de passos de análise de dados complexos, e que possibilita reuso do seu trabalho de análise.

Instalando R e RStudio

Para instalar o R e o RStudio, basta seguir este este guia da UFPR

Tipos de dados

R é uma linguagem fracamente tipada e nela existem 5 tipos de dados: integer, numeric,character,logical e factor.

  • Integer é o tipo de dado em que se armazena números inteiros;

  • Numeric é onde se armazena valores numéricos de precisão (o famoso float);

  • Character é onde se armazena strings e caracteres;

  • Logical são para representação de valores booleanos;

  • Factor são usados para representar categorias.

Para guardar valores em uma variável no R, utilizamos < -, com a seta apontando para o nome da variável.

var1 <- "Guardians"
var2 <- 3

Para verificar a classe de uma determinada variável, é usada a função class() e para realizar comentários no código é utilizada a cerquilha.

class(3) # Retornará numeric
class("abc") # Retornará character

Importante: variáveis com números inteiros não são iniciados com o tipo integer, e sim com o tipo numeric ! Para que a variável seja inicializada já com o tipo integer, deve-se fazer:

inteiro <- 3L # Este L serve para mostrar para o R que este é um número do tipo inteiro

E para conversão de dados, utilizam-se as funções as.tipododado().

as.integer(3.0)
as.character(4)
as.integer("oi") # Não pode ser feito, retornará um erro.

Curiosidade: ao tentar realizar a operação as.logical(3) a função retornará true, assim como com outros números, porém se for feita a operação as.logical(0), a função retornará false.

Operações Básicas

Estas são algumas das operações básicas que se tem no R:

  • Soma: +

  • Subtração: -

  • Divisão: /

  • Potenciação: ^

  • Multiplicação: *

  • Raiz Quadrada: sqrt()

  • Desvio Padrão: sd()

  • Passar um data frame para uma função: %>%

Estruturas de Dados

  • Vetores: vetores são uma sequência simples de elementos do mesmo tipo. Quando definimos uma variável, é criado um vetor de um elemento.

var1 <- 3
is.vector(var1) # Retornará true

Para criarmos vetores com mais de um elemento, colocaremos os valores desejados dentro de um c()

var1 <- c(1,2,3,4)

Obs. Caso você tente misturar os tipos, o R forçará que todos os elementos sejam do mesmo tipo

var <- c(1,2,3,4,"batata")
# Se você for visualizar a variável, o R terá convertido tudo para character
#[1] "1"      "2”      "3”      "4"      "batata"
  • Matrizes: correspondem às matrizes matemáticas, com linhas e colunas. Semelhante aos vetores, só podem ser de um tipo de dado.

mat <- matrix(c(1,2,3,4,5,6),nrow=3,ncol=2,byrow=TRUE)

Com esta linha de código acima, é possível criar uma matriz de 3 linhas e duas colunas, organizadas por linha e contendo números de 1 a 6.

var1 <- c(1,2,3)
var2 <- c(4,5,6)
mat <- rbind(var1,var2)

Com esta outra linha também é possível criar uma matriz, só que diferente da implementação anterior, estamos combinando dois vetores por linhas. Obs. Não é possível combinar vetores de tamanhos diferentes e na primeira implementação, não é possível definir um números de linhas e colunas que não sejam múltiplos do tamanho do vetor passado no parâmetro. Para acessar elementos em uma matriz, deve-se utilizar colchetes,informando primeiro a linha e depois a coluna.

m[1,2]
  • Listas: são um tipo especial de vetores, no qual pode-se colocar elementos de tipos diferentes, incluindo os próprios vetores.

lista <- list(c(1,2,3,4),c(T,F),c("Guardians",">","Pet"))

Pode-se acessar um pedaço da lista indicando o índice dele

lista[1] # Irá retornar o pedaço da lista contendo o primeiro vetor

Para acessar o elemento em si, deve-se acessar utilizando colchetes duplos

lista[[1]] # Retorna o primeiro elemento da lista em si

Para acessar um elemento dentro de um vetor contido na lista, deve-se usar colchetes duplos (para sinalizar qual o vetor desejado) seguido do índice do elemento procurado,também entre colchetes.

lista[[1]][2] # Retorna o segundo elemento do primeiro vetor da lista

Por último, nas listas é possível referenciar os elementos por nomes ao invés dos índices.

lista <- list(coiso1 = c(1,2,3), coiso2 = c(T,F,T))
lista["coiso1"] # Retorna pedaço da lista que contém o vetor coiso1

Ou ainda referenciar utilizando o $

lista$coiso2 # Retornará o elemento referente ao vetor coiso2

Porém, mesmo nomeando os itens, ainda é possível acessá-los pelos índices normalmente.

  • Data Frames: é a estrutura do R utilizada para armazenar dados em forma de tabela, organizados por linha e colunas. (Agora que vai ficar legal)

Para criar um data frame, é necessário utilizar a função data.frame.

df <- data.frame(c(1,2,3),c(T,F,T))

Percebeu que os nomes das colunas ficaram estranhos? Para dar nomes às colunas do data frame pode-se usar a função names().

names(df) <- c("numeric","logical")

O R possui nativo vários data frames, que possuem como maior finalidade aprendizado e realização de testes, entre eles o há o mtcars.

data(mtcars) # Carrega o data frame
mtcars # Printa o df
names(mtcars) # Printa os nomes das colunas
str(mtcars) # Nos retorna a estrutura do df
head(mtcars) # Retorna os primeiros elementos
tail(mtcars) # Retorna os últimos elementos
mtcars$mpg # Retorna apenas os valores da coluna mpg
mean(mtcars$mpg) # Retorna a média dos valores desta coluna
summary(mtcars) # Retorna a média,mediana,máximos,mínimos e quartis

Para selecionar dados no data frame também é utilizado colchetes, informando a linha e a coluna referente ao que é procurado. Pode-se selecionar também utilizando os nomes.

mtcars[1,2]
mtcars["Lotus Europa","gear"]
mtcars["Mazda RX4",2]

Instalação de Pacotes

O R, por ser open source, possui milhares de pacotes com diferentes funções. Para instalar um pacote, basta utilizar o comando install.packages("nome do pacote").

install.packages("swirl")

Para carregar um pacote, deve-se utilizar o comando library(pacote)

library(swirl)

Importante: como R é uma linguagem de linha de comando, sempre que você for precisar de um pacote para sua implementação, deve utilizar o library() com o pacote que você deseja, do contrário, não poderá acessar as funções da biblioteca. O mesmo acontece com tudo que já foi implementado no R script. Uma boa prática de programação é declarar todos os pacotes utilizados em cada arquivo .R logo nas primeiras linhas do código.

Sugestão: execute os comandos acima, depois digite swirl() no console e veja a magia acontecer.

Bibliotecas Importantes

Em análise de dados, as bibliotecas dplyr e ggplot2 são indispensáveis. Para instalá-las, execute os seguintes comandos:

install.packages(dplyr)
install.packages(ggplot2)

O dplyr é uma biblioteca de manipulação de dados, com ela você pode realizar várias operações de manipulação, tais como: filtrar dados, sumarizar, selecionar,agrupar, entre outras coisas, já o ggplot2 é para visualização de dados, com ele pode-se montar vários tipos de gráficos com facilidade. O dplyr possui alguns comandos básicos, tais como:

select()
filter()
mutate()
group_by()
summarise()

I) Operador %>%

Este operador encadeia as funções de modo que o programador não precise ficar chamando uma função dentro da outra como em outras linguagens, tal como dados.getCarros(). Neste caso, o operador cria um fluxo sequencial de operações, tal que a chamada anterior irá gerar um resultado que será utilizado na operação seguinte.

mtcars %>% select(c("mpg","cyl")) %>% filter(cyl > 4)

Nesta linha, temos que o data frame mtcars será manipulado, e que nele serão feitas duas operações, uma seleção e uma filtragem. Na função select iremos selecionar apenas as colunas mpg e cyl e na função filter, filtramos os dados que possuam cyl > 4.

II) Select

A função select é utilizada para selecionar colunas em um data frame, por exemplo, se no data frame mtcars, quisermos apenas as colunas gear e carb, faremos:

mtcars %>% select(c("gear","carb"))

Caso o objetivo seja excluir uma coluna do data frame, por exemplo a coluna gear, basta fazer

mtcars %>% select(-gear)

III) Filter

A função filter é utilizada para filtrar as linhas que o programador deseja, por exemplo, caso o programador queira apenas os carros cujo cyl é maior do que 4, faríamos:

mtcars %>% filter(cyl > 4)

IV) Mutate

O mutate é uma função usada para criar novas colunas no data frame que você está manipulando, caso quiséssemos adicionar uma nova coluna que seja o resultado da divisão entre mpg e cyl, faríamos:

mtcars <- mtcars %>% mutate(coluna = mpg/cyl)

V) Group by e Summarise

O group_by separa seus dados nos grupos que você selecionar, o summarise faz operações de agregação de linhas limitadas a esse grupo, por exemplo, se quiséssemos agrupar os dados por mpg e agregar a soma destes mesmos mpg, faríamos:

mtcars <- mtcars %>% group_by(mpg) %>% summarise(somas = sum(mpg))

Para aprender a utilizar o ggplot2 , eu recomendo utilizar o cheat sheet do RStudio, ele possui exemplos dos mais diversos gráficos.

O cheat sheet pode ser encontrado aqui, porém o site do RStudio possui vários outros que facilitam o aprendizado,incluindo dplyr.

Também tem alguns exemplos simples no github.

Esse documento existe graças à contribuição de: