R - básico

Autor

Marcel Ferreira

Sobre esse documento

1. Introdução à Linguagem R

O que é R?

R é uma linguagem de programação e um ambiente de software livre para computação estatística e gráficos. Foi criado por Ross Ihaka e Robert Gentleman na Universidade de Auckland, Nova Zelândia, e é amplamente utilizado por estatísticos e cientistas de dados para análise de dados.

Por que usar R?

  • Gratuito e de código aberto: R é uma linguagem gratuita e de código aberto, o que significa que qualquer pessoa pode usá-la e contribuir para o seu desenvolvimento.

  • Comunidade ativa: A comunidade R é grande e ativa, proporcionando suporte através de fóruns, grupos de discussão e pacotes adicionais.

  • Grande variedade de pacotes: Existem milhares de pacotes disponíveis que estendem as funcionalidades do R, facilitando análises complexas e visualizações avançadas.

  • Visualização de dados: R é conhecido por suas poderosas capacidades de visualização de dados, especialmente com o pacote ggplot2.

2. Instalação do R e RStudio

Instalando o R

  1. Acesse o site do CRAN (Comprehensive R Archive Network).

    https://cran.r-project.org/

  2. Escolha o link de download apropriado para seu sistema operacional (Windows, macOS, Linux).

  3. Siga as instruções de instalação fornecidas pelo CRAN.

Instalando o RStudio

RStudio é um IDE (Integrated Development Environment) que facilita a utilização do R.

  1. Acesse o site do RStudio.

  2. Baixe a versão gratuita do RStudio Desktop.

  3. Siga as instruções de instalação.

3. Conceitos Básicos do R

Interface do RStudio

  • Console: Onde você pode digitar e executar comandos R. Respostas imediatas são exibidas diretamente no console.

  • Script Editor: Permite escrever e salvar scripts R, que são conjuntos de comandos que podem ser executados em sequência.

  • Environment/History:

    • Environment: Exibe os objetos (variáveis, dados, funções) criados durante a sessão.

    • History: Mostra o histórico dos comandos que você digitou no console.

  • Plots/Files/Packages/Help:

    • Plots: Onde gráficos gerados são exibidos.

    • Files: Permite navegar pelos arquivos do seu sistema.

    • Packages: Gerencia pacotes instalados.

    • Help: Acessa a documentação e ajuda sobre funções e pacotes R.

Sintaxe Básica

  • Variáveis: Armazenam dados e são criadas usando o operador <-.

    x <- 5 # Atribui o valor 5 à variável x
    
    y <- "Hello, R!" # Atribui a string "Hello, R!" à variável y 
  • Funções: Realizam operações em dados. Funções são chamadas pelo nome seguido de parênteses.

    sum(1, 2, 3) # Retorna a soma dos números: 6 
    [1] 6
  • Vetores: Sequências de elementos do mesmo tipo. Criados com a função c().

    numbers <- c(1, 2, 3, 4, 5) # Vetor de números 
  • Tipos de Dados:

    • Numéricos: Números, incluindo inteiros e decimais.

      a <- 10
      b <- 3.14 
    • Caracteres: Sequências de texto.

      name <- "R Language" 
    • Lógicos: Valores verdadeiros (TRUE) ou falsos (FALSE).

      flag <- TRUE 
    • Fatores: Categorizam dados e armazenam como números inteiros com rótulos.

      fruits <- factor(c("apple", "banana", "apple", "orange")) 

Estruturas de Dados

  • Vetores: Conjuntos de elementos do mesmo tipo.

    vec <- c(1, 2, 3, 4, 5) 
  • Matrizes: Tabelas bidimensionais onde todos os elementos são do mesmo tipo.

    matrix_data <- matrix(1:9, nrow = 3, ncol = 3) 
  • Data Frames: Tabelas bidimensionais onde as colunas podem conter diferentes tipos de dados.

    df <- data.frame(   Name = c("Alice", "Bob", "Charlie"), Age = c(25, 30, 35),   Score = c(90, 85, 88) ) 
  • Listas: Coleções de elementos que podem ser de diferentes tipos.

    lst <- list(   name = "John",   age = 25,   scores = c(85, 90, 95) ) 

Operações com Dados

  • Acessar Elementos: Usar colchetes [] para acessar elementos de vetores, matrizes e data frames.

    vec[1]       # Primeiro elemento do vetor
    [1] 1
    matrix_data[2, 3]  # Elemento na segunda linha, terceira coluna
    [1] 8
    df$Name      # Coluna "Name" do data frame 
    [1] "Alice"   "Bob"     "Charlie"
  • Filtragem de Dados: Selecionar subconjuntos de dados com base em condições.

    subset(df, Age > 25) # Linhas onde a idade é maior que 25 
         Name Age Score
    2     Bob  30    85
    3 Charlie  35    88
  • Operações Aritméticas: Operações matemáticas básicas com vetores.

    vec + 2     # Adiciona 2 a cada elemento do vetor vec * 3     # Multiplica cada elemento do vetor por 3 
    [1] 3 4 5 6 7

Exemplos Práticos

  • Criar um vetor e calcular a média:

    scores <- c(85, 90, 88, 92, 87)
    mean(scores) # Calcula a média dos scores 
    [1] 88.4
  • Criar um data frame e visualizar os dados:

    students <- data.frame(Name = c("Alice", "Bob", "Charlie"),Age = c(25, 30, 35),   Score = c(90, 85, 88)) 
    
    head(students) # Mostra as primeiras linhas do data frame
         Name Age Score
    1   Alice  25    90
    2     Bob  30    85
    3 Charlie  35    88

4. Pacotes e Ajuda no R

O que são Pacotes?

Pacotes em R são coleções de funções, dados e documentação que estendem as capacidades básicas da linguagem. Eles são desenvolvidos pela comunidade e podem ser facilmente instalados e utilizados para uma variedade de tarefas, como manipulação de dados, modelagem estatística e visualização.

Instalando Pacotes

Para instalar pacotes, você pode usar a função install.packages(). Por exemplo, para instalar o pacote ggplot2, você usaria o seguinte comando:

install.packages("ggplot2")

Esse comando baixa o pacote do CRAN (Comprehensive R Archive Network) e o instala em seu sistema.

Carregando Pacotes

Depois de instalar um pacote, você precisa carregá-lo em sua sessão de trabalho para usá-lo. Isso é feito com a função library(). Por exemplo, para carregar o ggplot2, você usaria:

library(ggplot2)

Agora você pode usar todas as funções e dados fornecidos pelo ggplot2.

Atualizando Pacotes

Para manter os pacotes atualizados, você pode usar a função update.packages(). Isso garante que você esteja usando a versão mais recente dos pacotes instalados:

update.packages()

Pacotes Populares

Aqui estão alguns pacotes populares e amplamente utilizados em R:

  • ggplot2: Para visualização de dados.

  • dplyr: Para manipulação de dados.

  • tidyr: Para arranjar e limpar dados.

  • readr: Para importação de dados.

  • shiny: Para construir aplicativos web interativos.

  • caret: Para aprendizado de máquina.

Obtendo Ajuda

R fornece várias maneiras de acessar ajuda e documentação:

  • Função help(): Para obter ajuda sobre uma função específica.
help(mean) # Exibe a documentação da função mean
starting httpd help server ... done
  • Interrogação (?): Um atalho para a função help().
?mean # Exibe a documentação da função mean
  • Help de Pacotes: Para visualizar a documentação de um pacote inteiro.
help(package = "ggplot2") # Exibe a documentação do pacote ggplot2
  • Função example(): Para ver exemplos de como usar uma função.
example(mean) # Exibe exemplos de uso da função mean

mean> x <- c(0:10, 50)

mean> xm <- mean(x)

mean> c(xm, mean(x, trim = 0.10))
[1] 8.75 5.50
  • Função apropos(): Para procurar funções com base em palavras-chave.
apropos("plot") # Lista todas as funções que contêm "plot" no nome
 [1] "assocplot"           "autoplot"            "barplot"            
 [4] "barplot.default"     "benchplot"           "biplot"             
 [7] "boxplot"             "boxplot.default"     "boxplot.matrix"     
[10] "boxplot.stats"       "cdplot"              "coplot"             
[13] "draw_key_boxplot"    "draw_key_dotplot"    "fourfoldplot"       
[16] "geom_boxplot"        "geom_dotplot"        "GeomBoxplot"        
[19] "GeomDotplot"         "ggplot"              "ggplot_add"         
[22] "ggplot_build"        "ggplot_gtable"       "ggplotGrob"         
[25] "interaction.plot"    "is.ggplot"           "lag.plot"           
[28] "last_plot"           "matplot"             "monthplot"          
[31] "mosaicplot"          "plot"                "plot"               
[34] "plot.default"        "plot.design"         "plot.ecdf"          
[37] "plot.function"       "plot.new"            "plot.spec.coherency"
[40] "plot.spec.phase"     "plot.stepfun"        "plot.ts"            
[43] "plot.window"         "plot.xy"             "preplot"            
[46] "qplot"               "qqplot"              "quickplot"          
[49] "recordPlot"          "replayPlot"          "savePlot"           
[52] "screeplot"           "set_last_plot"       "spineplot"          
[55] "stat_boxplot"        "StatBoxplot"         "sunflowerplot"      
[58] "termplot"            "ts.plot"            
  • Vignette: Alguns pacotes incluem tutoriais e exemplos mais detalhados chamados vignettes.
vignette("ggplot2-specs") # Abre a vignette sobre especificações do ggplot2
vignette(package = "ggplot2") # Lista todas as vignettes disponíveis no pacote ggplot2

Infelizmente nem todos os pacotes possuem vignettes 😢.

Recursos Online

  • R Documentation: https://www.rdocumentation.org/

  • Stack Overflow: Um fórum popular onde você pode fazer perguntas e encontrar respostas sobre R.

  • Comunidade R: Muitos blogs, fóruns e grupos de discussão são dedicados a R e podem ser úteis para resolver dúvidas e aprender novas técnicas.

  • IAs generativa: Vocês pode (e deve) utilizar sistemas como ChatGTP ou Gemini para verificar e aprimorar seu código. Lembre-se apenas de estudar as soluções propostas;

5. Operações com Dados

Vetores são uma das estruturas de dados mais comuns em R. Aqui estão algumas operações numéricas comuns que você pode realizar com vetores:

  • Soma, Subtração, Multiplicação e Divisão
vec1 <- c(1, 2, 3)
vec2 <- c(4, 5, 6)

sum_result <- vec1 + vec2      # Soma: (1+4, 2+5, 3+6) = (5, 7, 9)
sub_result <- vec1 - vec2      # Subtração: (1-4, 2-5, 3-6) = (-3, -3, -3)
mult_result <- vec1 * vec2     # Multiplicação: (1*4, 2*5, 3*6) = (4, 10, 18)
div_result <- vec1 / vec2      # Divisão: (1/4, 2/5, 3/6) = (0.25, 0.4, 0.5)
  • Soma de Elementos:
sum(vec1) # Soma de todos os elementos: 1 + 2 + 3 = 6
[1] 6
  • Média, Mediana e Desvio Padrão:
mean(vec1)  # Média: (1 + 2 + 3) / 3 = 2
[1] 2
median(vec1) # Mediana: 2
[1] 2
sd(vec1)     # Desvio padrão
[1] 1
  • Valores Máximos e Mínimos:
max(vec1) # Valor máximo: 3
[1] 3
min(vec1) # Valor mínimo: 1
[1] 1
  • Ordenação
sorted_vec <- sort(vec1) # Ordena em ordem crescente: (1, 2, 3)

Operações Numéricas com Matrizes

Matrizes são tabelas bidimensionais de dados numéricos. Aqui estão algumas operações comuns com matrizes:

  • Criando uma Matriz:
mat <- matrix(1:9, nrow = 3, ncol = 3) # Cria uma matriz 3x3

mat
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9
  • Acesso a Elementos:
element <- mat[2, 3] # Acessa o elemento na segunda linha, terceira coluna

element
[1] 8
  • Soma de Matrizes:
mat1 <- matrix(1:4, nrow = 2)
mat2 <- matrix(5:8, nrow = 2)

mat_sum <- mat1 + mat2 # Soma elemento a elemento

mat_sum
     [,1] [,2]
[1,]    6   10
[2,]    8   12
  • Multiplicação de Matrizes:
mat_mult <- mat1 %*% mat2 # Multiplicação de matrizes (produto matricial)

mat_mult
     [,1] [,2]
[1,]   23   31
[2,]   34   46
  • Transposição de Matrizes:
mat_transpose <- t(mat) # Transpõe a matriz

mat_transpose
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9

Operações com Caracteres

R também permite manipular dados de texto. Aqui estão algumas operações comuns:

  • Concatenação de Strings:
str1 <- "Hello"
str2 <- "World"

concat_str <- paste(str1, str2) # Concatena strings com espaço: "Hello World"

concat_str
[1] "Hello World"
  • Alterando a Capitalização:
upper_str <- toupper(str1) # Converte para maiúsculas: "HELLO"
lower_str <- tolower(str2) # Converte para minúsculas: "world"

upper_str
[1] "HELLO"
lower_str
[1] "world"
  • Substituição de Padrões:
text <- "Hello, World!"
new_text <- sub("World", "R", text) # Substitui "World" por "R": "Hello, R!"

new_text
[1] "Hello, R!"
  • Dividindo Strings:
split_str <- strsplit(text, ", ") # Divide a string pelo delimitador ", "

split_str
[[1]]
[1] "Hello"  "World!"

Operações com Fatores

Fatores são usados para representar dados categóricos. Aqui estão algumas operações comuns:

  • Criando Fatores:
fruits <- factor(c("apple", "banana", "apple", "orange"))

fruits
[1] apple  banana apple  orange
Levels: apple banana orange
  • Níveis de Fatores:
levels(fruits) # Exibe os níveis: "apple", "banana", "orange"
[1] "apple"  "banana" "orange"
  • Reordenando Níveis:
fruits <- factor(fruits, levels = c("banana", "apple", "orange"))

fruits
[1] apple  banana apple  orange
Levels: banana apple orange
  • Convertendo Fatores em Números ou Strings:
numeric_factors <- as.numeric(fruits) # Converte fatores para números
character_factors <- as.character(fruits) # Converte fatores para strings

numeric_factors
[1] 2 1 2 3
character_factors
[1] "apple"  "banana" "apple"  "orange"

Essas operações básicas com vetores, matrizes, caracteres e fatores são fundamentais para a manipulação de dados em R.