Aprendendo R
Mauricio Purificação
Sponsors
Grupos Locais
SQL Saturday – 2018 [Previstos]
Mês Local
Abril Joinville
Maio Belo Horizonte
Junho Caxias do Sul
Agosto Brasilia
Os sorteios vão ser realizados no final do evento.
Mauricio Purificação
Líder de BI – Cárdio Pulmonar da Bahia
Nas Horas Não Vagas (Incluindo Finais de
Semana)  
• Consultor de Business Intelligence (BI),
Data Discovery e Business Analytics
• Líder Técnico do Projeto de BI do
Hospital Cárdio Pulmonar da Bahia
• Empreendedor e Startupeiro
• Quem Sabe Um Dia Blogueiro e
Youtuber 
Nas Horas Vagas e Quando Eu Deveria
Dormir!  
• Mestrando em Engenharia de Sistemas
e Produtos – IFBA
• MBA em Administração/Gestão de
Negócios - Universidade Salvador
(UNIFACS)
• Bacharel em Ciência da Computação -
Universidade Federal da Bahia (UFBA)
mauricio.purificacao /mauricio-cesar-santos-da-purificação-17921127
Um Pouco Sobre R: O Que É?
• O R não é um "aplicativo" que lhe possibilita através de uma interface gráfica
amigável realizar algumas tarefas sem saber exatamente o que está fazendo;
• O R é um ambiente de trabalho para realização de análises estatísticas;
• Do ponto de vista da análise de dados, o R tem uma filosofia que o diferencia
radicalmente dos outros softwares estatísticos;
• ANALISAR DADOS É PROGRAMAR COM DADOS: toda a análise de dados deve
ser pensada como a construção de um programa que ao ser executado gera
a análise esperada.
Um Pouco Sobre R: História
• Desenvolvido originalmente por Ross Ihaka e Robert Gentleman
(Depto Estatística da Universidade de Auckland, Nova Zelândia);
• Inspirado em duas linguagens:
• S (John Chambers e colegas – Bell Labs): sintaxe
• Scheme (Hal Abelson and Gerald Sussman): implementação e semântica
• R está disponível como um software livre, nos termos da GNU GPL
(General Public License).
• Windows, Linux, OS X (Mac)
Um Pouco Sobre R: História
• 1980: Linguagem S: desenvolvida por R. Becker, J. Chambers e A.
Wilks (AT&T Bell Laboratories)
• 1980: Versão comercial: S-Plus (Insightful Corporation)
• 1996: Versão livre: R desenvolvido por R. Ihaka e R. Gentleman
(Universidade de Auckland)
• 1997: R Development Core Team
• Hoje: 20 desenvolvedores principais e muitos outros colaboradores
em todo o mundo
• Estatísticos, matemáticos e programadores
Um Pouco Sobre R: Características
• INTERFACE: o R é uma interface para análises de dados, criando um
ambiente de trabalho;
• INTERATIVIDADE: essa interface é interativa, isto é, você digita
comandos e obtêm os resultados;
• MODULAR: o R é composto por módulos, que são chamados de
pacotes (packages). O pacote básico traz a funcionalidade necessária
para as análises matemáticas e estatísticas mais usuais. Existem
literalmente milhares de outros pacotes para realizar análises
específicas nas mais diversas áreas do conhecimento científico.
Um Pouco Sobre R: Características
• FUNCIONAL: a linguagem S, a linguagem que se fala dentro do R, é
uma linguagem funcional, isto é, todas as análises e ações são
realizadas por funções;
• ORIENTAÇÃO PARA OBJETOS: a linguagem S é uma linguagem de
programação orientada para objetos, isto é, todas as entidades no
ambiente R (dados, análises, gráficos, funções) são efetivamente
objetos;
• COLABORATIVO: o R é um esforço mundial de programação em
código aberto.
Vantagens & Desvantagens
Vantagens Desvantagens
Rápido e gratuito Curva de aprendizagem significativa
Pesquisadores de Estatística fornecem os
seus métodos em pacotes de R
Não há suporte comercial
Nos gráficos perde apenas para o Matlab
Trabalhando com grandes conjuntos de
dados é limitada pela RAM
Comunidade de usuários ativos
Fácil cometer erros se não conhecer bem a
linguagem
Excelente para a simulação, programação,
análises intensivas de computador, etc.
Preparação e limpeza de dados pode ser
mais confusa e mais propenso erro em R que
em soluções proprietárias como SPSS ou SAS
Interfaces com software de armazenamento
de banco de dados (SQL)
Descobrir que métodos utilizar ou como usar
uma função pode ser frustrante.
Pipeline de Analytics
• Importação de arquivos (readr, readxl, haven, data.table)
• Limpeza e tratamento de dados (dplyr, data.table, tidyr, stringr)
• Gráficos (ggplot2, dygraphs, plotly)
• Interface com bancos de dados (RPostgreSQL, RMySQL, RODBC)
• Análise preditiva / Data Science (caret, forecast, rpart, e1071, knn,
• randomForest)
• Relatório analítico final (rmarkdown, knitr)
• Dashboards interativos (shiny, shinydashboard)
Noções de Programação
• parênteses "()": são utilizados para toda e qualquer função. P. ex.
função(argumento)
• atribuição "<-": são utilizados para nomear objetos. P. ex. nome do
objeto <- função(argumento)
• chaves "{}": são utilizados para construir novas funções. P. ex.
função(argumento){
comandos
resultados }
• aspas "" são utilizadas para denominar caracteres. P. ex. "Oi, meu
nome é John Snow"
Nomes de Variáveis
• O R é case sensitive – isto é, letras maiúsculas e minúsculas são
diferenciadas – portanto x1 (com x minúsculo) e X1 (com x maiúsculo)
são objetos diferentes;
• Os nomes dos objetos no R podem conter combinações arbitrárias de
números, textos, bem como ponto ( . ) e underscore ( _ ). Entretanto,
os nomes não podem começar com números ou underscore.
Pedindo Ajuda?
• help.start()
• apropos("sear")
• help("print")
• ?print, ??print
• help.search("regression")
• help.search("linear regression")
• args("sd")
• sd
Alterando Diretório de Trabalho
• getwd()
• setwd("C:UsersMauricioDocumentsWorkR")
• setwd(choose.dir())
• dir()
• list.files()
Gerenciando o Workspace
• ls()
• objects()
• object.size(objeto)
• rm(objeto)
• lista_obj <- ls()
• rm(list=lista_obj)
• rm(list = ls())
• ls(pattern="y")
• rm(list=ls(pattern="y"))
Salvando o Workspace
• # grava o seu workspace com o nome genérico: ".RData"
• save.image()
• # grava o seu workspace com o nome indicado
• save.image(file="minha_sessao_inicial_de_R.RData")
• load(file=" minha_sessao_inicial_de_R.RData ")
• save(objeto, file="objeto.RData")
• q()
Instalando e Ativando Pacotes
• install.packages("nomedopacote")
• install.packages("nomedopacote", dependencies = TRUE)
• library()
• library(nomedopacote)
• search()
• getOption("defaultPackages")
• detach(package:nomedopacote)
• remove.packages(nomedopacote)
Lendo Arquivos
• dados<-read.table(file.choose(), header=T)
• dados <- read.table("arquivo.csv", header = TRUE, sep = ";", dec = ",")
• dados2 <- read.csv2("arquivo.csv", stringsAsFactors = FALSE)
• library(gdata)
• dados.xls <- read.xls("arquivo.xls", sheet = "Plan1", header = TRUE, dec = ",")
• str(), head(), tail()
• attach(), detach()
Criando Sequências
• 1:10
• (1:10) * 10
• seq(from=0, to=100, by=10)
• seq(from=0, to=100, len=10)
• seq(from = 1, to = 10, length.out = 15)
• rep("A", times=10)
• rep(c("A", "B", "C"), times=10)
• rep(c("A", "B", "C"), each=10)
• seqABC <- rep(c("A", "B", "C"), times=c(2,3,5))
• runif(10, 1, 100)
Trabalhando com Datas
• copa.70 <- "21/06/70"
• copa.94 <- "17/07/94"
• copa.94 - copa.70
• class(copa.70); class(copa.94)
• copa.70 <- as.Date(copa.70,format="%d/%m/%y")
• copa.94 <- as.Date(copa.94,format="%d/%m/%y")
• class(copa.70); class(copa.94)
• copa.94 - copa.70
Conversão de Tipos
• class(objeto)
• typeof(objeto)
• is.integer(objeto)
• is.double(objeto)
• is.numeric(objeto)
• is.character(objeto)
• is.logical(objeto)
• as.character(objeto)
• as.numeric(objeto)
Tipos de Objetos
• vector: o mais elementar e um dos mais importantes;
• matrix e array: generalizações multi-dimensionais de vetores;
• factor: forma compacta para manipulação de dados categóricos;
• list: forma geral de vetores, nos quais os elementos não precisam ser do mesmo tipo
básico. Útil p.ex. para retorno de funções, quando diversos objetos necessitam ser
devolvidas;
• data frames: são estruturas na forma de matrizes, em que as colunas podem ser de
diferentes tipos básicos;
• funções: maneira simples e conveniente de estender as funcionalidades do R.
Criação de Objetos
• a = 1:5
• b = factor(rep(c("a","b","c"), each=3))
• c = data.frame(sec=c("XIX", "XX", "XXI"), inicio=c(1801,1901,2001))
• d = matrix(round(runif(40,0,100)), ncol=8)
• e = array(1:12, c(3,2,2))
• minha.lista = list(um.vetor = a, um.fator = b, um.data.frame = c, uma.matriz = d)
• str(minha.lista); str(minha.lista$um.data.frame); str(d)
• length(b); length(minha.lista); dim(minha.lista$um.data.frame); nrow(e); ncol(e)
Indexando e Acessando Itens
• O operador [ ] sempre retorna um objeto da mesma classe que o original. Pode ser
usado para selecionar múltiplos elementos de um objeto
• O operador [[ ]] é usado para extrair elementos de uma lista ou data frame. Pode ser
usado para extrair um único elemento, e a classe do objeto retornado não precisa
necessariamente ser uma lista ou data frame.
• O operador $ é usado para extrair elementos nomeados de uma lista ou data frame. É
similar ao operador [[ ]].
Indexando e Acessando Itens (Vetores)
• cont <- c(8, 4, NA, 9, 6, 1, 7, 9)
• cont[4]
• cont[c(1, 4, 8)], cont[-c(1, 4, 8)]
• cont[1:5]
• cont[seq(1, 8, by = 2)]
• cont[is.na(cont)], cont[!is.na(cont)]
• cont[is.na(cont)] <- 0, is.na(cont) <- 3
• names(cont) <- letters[1:length(cont)]
• cont["d"]
• cont[c("f", "a")]
Indexando e Acessando Itens (Matrizes)
• mat <- matrix(1:9, nrow = 3)
• mat[2,3]
• mat[, 1], mat[1, ]
• mat[3, 2, drop = FALSE]
• mat[1, , drop = FALSE]
• mat[c(1, 3), c(2, 3)]
• colnames(mat) <- LETTERS[1:3]
• mat[, "B"], mat[1, "C"]
• rownames(mat) <- LETTERS[24:26]
• mat["X", ], mat["Y", "A"]
Indexando e Acessando Itens (Listas)
• lis <- list(c(3, 8, 7, 4), mat, 5:0)
• lis[[2]]
• lis[[1]][3]
• lis[[2]][2, 3]
• lis <- list(vetor1 = c(3, 8, 7, 4), mat = mat, vetor2 = 5:0) #names(lis) <- c("vetor1", "mat", "vetor2")
• lis$mat
• lis$mat[2, 3]
• lis$vetor1[3]
• lis[["mat"]]
• lis[["vetor1"]][3]
Indexando e Acessando Itens (Data Frames)
• da <- data.frame(A = 4:1, B = c(2, NA, 5, 8))
• da[2, 1]
• da[, 2]
• da[,"B"]
• da[1, ]
• da["1", ]
• da$A
• da$B[3]
• da$B[c(2, 4)]
• da[is.na(da$A), ], da[is.na(da$B), ], da[!is.na(da$B), ]
• with(da, A), with(da, B[3])
Seleção Condicional
• dados <- c(5, 15, 42, 28, 79, 4, 7, 14)
• dados[dados > 15], dados[dados > 15 & dados <= 35]
• dados > 15 & dados <= 35, dados > 15 | dados <= 35
• cara <- letters[1:length(dados)]
• dados[cara == "c"], dados[cara %in% c("a", "c")]
• cara[dados == 15], cara[dados > 30]
• cara[dados %in% c(4, 14)]
• which(dados > 15), which(dados > 15 & dados <= 35), which(cara == "c")
• which(cara %in% c("a", "c"))
Seleção Condicional
• dados <- data.frame(ano = c(2001, 2002, 2003, 2004, 2005),
captura = c(26, 18, 25, 32, NA),
porto = c("SP", "RS", "SC", "SC", "RN"))
• dados[dados$ano == 2004, ]
• dados[dados$porto == "SC", ]
• dados[dados$captura > 20, "captura"]
• dados[dados$captura > 25 & dados$porto == "SP", ]
• subset(dados, porto == "SC")
• subset(dados, captura > 20)
• subset(dados, captura > 20, select = captura)
R como Calculadora
R como Calculadora
Operadores Lógicos
Estatística Descritiva
• summary(dados)
• table()
Estatística Descritiva
Estatística Descritiva Nome da Função
Média mean
Mediana median
Mínimo min
Máximo max
Amplitude de variação range
Quartis e quantis quantile
Distância Interquartil (Inter Quarter Range) IQR
Variância var
Desvio padrão (Standard Deviation) sd
Desvio abosluto mediano (Mean Absolut Deviation) mad
Link’s Úteis
• Página do Projeto está disponível em http://www.r-project.org/;
• Página de download está disponível em http://cran.r-project.org;
• Página do RStudio: http://www.rstudio.com/;
• Página do Tinn-R: http://nbcgib.uesc.br/lec/software/desenvolvidos/editores/tinn-r/en;
• Tutoriais estão disponíveis em http://cran.r-project.org/other-docs.html;
• Grupos de discussão são encontrados em http://wiki.r-project.org/rwiki/doku.php;
• Novidades são disponíveis em http://cran.r-project.org/doc/Rnews/;
• R site search: http://finzi.psych.upenn.edu/search.html;
• CRAN Task Views: http://cran.r-project.org/web/views/;
• Cartão de referência preparado por Jonathan Baron:
http://www.leg.ufpr.br/~paulojus/misc/refcard.pdf.
Os 10 Mandamentos do R
0º - Não entrarás em pânico!
1º - Utilizarás o R para tuas análises bem como para a manipulação de teus dados(não mais o
Excel);
2º - Nunca digitarás o código no console;
3º - Salvarás seus scripts e não se preocuparás com o .RData;
4º - Sempre concatenarás;
5º - Jamais esquecerás dos parênteses das funções;
6º - Conferirás o diretório de trabalho e os dados após a importação, antes de enlouqueceres;
7º - Usarás o help antes de perguntares e não culparás o R por teus erros;
8º - Não esmorecerás após as primeiras noites em claRo e jamais amaldiçoarás o R por tuas faltas
de vírgulas;
9º - Lembrarás das aspas dos caracteres;
10º- Não cobiçarás e aperfeiçoarás os códigos alheios e nunca ocultarás o código e a autoria
original;
OBRIGADO

Aprendendo R

  • 1.
  • 2.
  • 3.
  • 4.
    SQL Saturday –2018 [Previstos] Mês Local Abril Joinville Maio Belo Horizonte Junho Caxias do Sul Agosto Brasilia
  • 5.
    Os sorteios vãoser realizados no final do evento.
  • 6.
    Mauricio Purificação Líder deBI – Cárdio Pulmonar da Bahia Nas Horas Não Vagas (Incluindo Finais de Semana)   • Consultor de Business Intelligence (BI), Data Discovery e Business Analytics • Líder Técnico do Projeto de BI do Hospital Cárdio Pulmonar da Bahia • Empreendedor e Startupeiro • Quem Sabe Um Dia Blogueiro e Youtuber  Nas Horas Vagas e Quando Eu Deveria Dormir!   • Mestrando em Engenharia de Sistemas e Produtos – IFBA • MBA em Administração/Gestão de Negócios - Universidade Salvador (UNIFACS) • Bacharel em Ciência da Computação - Universidade Federal da Bahia (UFBA) mauricio.purificacao /mauricio-cesar-santos-da-purificação-17921127
  • 7.
    Um Pouco SobreR: O Que É? • O R não é um "aplicativo" que lhe possibilita através de uma interface gráfica amigável realizar algumas tarefas sem saber exatamente o que está fazendo; • O R é um ambiente de trabalho para realização de análises estatísticas; • Do ponto de vista da análise de dados, o R tem uma filosofia que o diferencia radicalmente dos outros softwares estatísticos; • ANALISAR DADOS É PROGRAMAR COM DADOS: toda a análise de dados deve ser pensada como a construção de um programa que ao ser executado gera a análise esperada.
  • 8.
    Um Pouco SobreR: História • Desenvolvido originalmente por Ross Ihaka e Robert Gentleman (Depto Estatística da Universidade de Auckland, Nova Zelândia); • Inspirado em duas linguagens: • S (John Chambers e colegas – Bell Labs): sintaxe • Scheme (Hal Abelson and Gerald Sussman): implementação e semântica • R está disponível como um software livre, nos termos da GNU GPL (General Public License). • Windows, Linux, OS X (Mac)
  • 9.
    Um Pouco SobreR: História • 1980: Linguagem S: desenvolvida por R. Becker, J. Chambers e A. Wilks (AT&T Bell Laboratories) • 1980: Versão comercial: S-Plus (Insightful Corporation) • 1996: Versão livre: R desenvolvido por R. Ihaka e R. Gentleman (Universidade de Auckland) • 1997: R Development Core Team • Hoje: 20 desenvolvedores principais e muitos outros colaboradores em todo o mundo • Estatísticos, matemáticos e programadores
  • 10.
    Um Pouco SobreR: Características • INTERFACE: o R é uma interface para análises de dados, criando um ambiente de trabalho; • INTERATIVIDADE: essa interface é interativa, isto é, você digita comandos e obtêm os resultados; • MODULAR: o R é composto por módulos, que são chamados de pacotes (packages). O pacote básico traz a funcionalidade necessária para as análises matemáticas e estatísticas mais usuais. Existem literalmente milhares de outros pacotes para realizar análises específicas nas mais diversas áreas do conhecimento científico.
  • 11.
    Um Pouco SobreR: Características • FUNCIONAL: a linguagem S, a linguagem que se fala dentro do R, é uma linguagem funcional, isto é, todas as análises e ações são realizadas por funções; • ORIENTAÇÃO PARA OBJETOS: a linguagem S é uma linguagem de programação orientada para objetos, isto é, todas as entidades no ambiente R (dados, análises, gráficos, funções) são efetivamente objetos; • COLABORATIVO: o R é um esforço mundial de programação em código aberto.
  • 12.
    Vantagens & Desvantagens VantagensDesvantagens Rápido e gratuito Curva de aprendizagem significativa Pesquisadores de Estatística fornecem os seus métodos em pacotes de R Não há suporte comercial Nos gráficos perde apenas para o Matlab Trabalhando com grandes conjuntos de dados é limitada pela RAM Comunidade de usuários ativos Fácil cometer erros se não conhecer bem a linguagem Excelente para a simulação, programação, análises intensivas de computador, etc. Preparação e limpeza de dados pode ser mais confusa e mais propenso erro em R que em soluções proprietárias como SPSS ou SAS Interfaces com software de armazenamento de banco de dados (SQL) Descobrir que métodos utilizar ou como usar uma função pode ser frustrante.
  • 13.
    Pipeline de Analytics •Importação de arquivos (readr, readxl, haven, data.table) • Limpeza e tratamento de dados (dplyr, data.table, tidyr, stringr) • Gráficos (ggplot2, dygraphs, plotly) • Interface com bancos de dados (RPostgreSQL, RMySQL, RODBC) • Análise preditiva / Data Science (caret, forecast, rpart, e1071, knn, • randomForest) • Relatório analítico final (rmarkdown, knitr) • Dashboards interativos (shiny, shinydashboard)
  • 14.
    Noções de Programação •parênteses "()": são utilizados para toda e qualquer função. P. ex. função(argumento) • atribuição "<-": são utilizados para nomear objetos. P. ex. nome do objeto <- função(argumento) • chaves "{}": são utilizados para construir novas funções. P. ex. função(argumento){ comandos resultados } • aspas "" são utilizadas para denominar caracteres. P. ex. "Oi, meu nome é John Snow"
  • 15.
    Nomes de Variáveis •O R é case sensitive – isto é, letras maiúsculas e minúsculas são diferenciadas – portanto x1 (com x minúsculo) e X1 (com x maiúsculo) são objetos diferentes; • Os nomes dos objetos no R podem conter combinações arbitrárias de números, textos, bem como ponto ( . ) e underscore ( _ ). Entretanto, os nomes não podem começar com números ou underscore.
  • 16.
    Pedindo Ajuda? • help.start() •apropos("sear") • help("print") • ?print, ??print • help.search("regression") • help.search("linear regression") • args("sd") • sd
  • 17.
    Alterando Diretório deTrabalho • getwd() • setwd("C:UsersMauricioDocumentsWorkR") • setwd(choose.dir()) • dir() • list.files()
  • 18.
    Gerenciando o Workspace •ls() • objects() • object.size(objeto) • rm(objeto) • lista_obj <- ls() • rm(list=lista_obj) • rm(list = ls()) • ls(pattern="y") • rm(list=ls(pattern="y"))
  • 19.
    Salvando o Workspace •# grava o seu workspace com o nome genérico: ".RData" • save.image() • # grava o seu workspace com o nome indicado • save.image(file="minha_sessao_inicial_de_R.RData") • load(file=" minha_sessao_inicial_de_R.RData ") • save(objeto, file="objeto.RData") • q()
  • 20.
    Instalando e AtivandoPacotes • install.packages("nomedopacote") • install.packages("nomedopacote", dependencies = TRUE) • library() • library(nomedopacote) • search() • getOption("defaultPackages") • detach(package:nomedopacote) • remove.packages(nomedopacote)
  • 21.
    Lendo Arquivos • dados<-read.table(file.choose(),header=T) • dados <- read.table("arquivo.csv", header = TRUE, sep = ";", dec = ",") • dados2 <- read.csv2("arquivo.csv", stringsAsFactors = FALSE) • library(gdata) • dados.xls <- read.xls("arquivo.xls", sheet = "Plan1", header = TRUE, dec = ",") • str(), head(), tail() • attach(), detach()
  • 22.
    Criando Sequências • 1:10 •(1:10) * 10 • seq(from=0, to=100, by=10) • seq(from=0, to=100, len=10) • seq(from = 1, to = 10, length.out = 15) • rep("A", times=10) • rep(c("A", "B", "C"), times=10) • rep(c("A", "B", "C"), each=10) • seqABC <- rep(c("A", "B", "C"), times=c(2,3,5)) • runif(10, 1, 100)
  • 23.
    Trabalhando com Datas •copa.70 <- "21/06/70" • copa.94 <- "17/07/94" • copa.94 - copa.70 • class(copa.70); class(copa.94) • copa.70 <- as.Date(copa.70,format="%d/%m/%y") • copa.94 <- as.Date(copa.94,format="%d/%m/%y") • class(copa.70); class(copa.94) • copa.94 - copa.70
  • 24.
    Conversão de Tipos •class(objeto) • typeof(objeto) • is.integer(objeto) • is.double(objeto) • is.numeric(objeto) • is.character(objeto) • is.logical(objeto) • as.character(objeto) • as.numeric(objeto)
  • 25.
    Tipos de Objetos •vector: o mais elementar e um dos mais importantes; • matrix e array: generalizações multi-dimensionais de vetores; • factor: forma compacta para manipulação de dados categóricos; • list: forma geral de vetores, nos quais os elementos não precisam ser do mesmo tipo básico. Útil p.ex. para retorno de funções, quando diversos objetos necessitam ser devolvidas; • data frames: são estruturas na forma de matrizes, em que as colunas podem ser de diferentes tipos básicos; • funções: maneira simples e conveniente de estender as funcionalidades do R.
  • 26.
    Criação de Objetos •a = 1:5 • b = factor(rep(c("a","b","c"), each=3)) • c = data.frame(sec=c("XIX", "XX", "XXI"), inicio=c(1801,1901,2001)) • d = matrix(round(runif(40,0,100)), ncol=8) • e = array(1:12, c(3,2,2)) • minha.lista = list(um.vetor = a, um.fator = b, um.data.frame = c, uma.matriz = d) • str(minha.lista); str(minha.lista$um.data.frame); str(d) • length(b); length(minha.lista); dim(minha.lista$um.data.frame); nrow(e); ncol(e)
  • 27.
    Indexando e AcessandoItens • O operador [ ] sempre retorna um objeto da mesma classe que o original. Pode ser usado para selecionar múltiplos elementos de um objeto • O operador [[ ]] é usado para extrair elementos de uma lista ou data frame. Pode ser usado para extrair um único elemento, e a classe do objeto retornado não precisa necessariamente ser uma lista ou data frame. • O operador $ é usado para extrair elementos nomeados de uma lista ou data frame. É similar ao operador [[ ]].
  • 28.
    Indexando e AcessandoItens (Vetores) • cont <- c(8, 4, NA, 9, 6, 1, 7, 9) • cont[4] • cont[c(1, 4, 8)], cont[-c(1, 4, 8)] • cont[1:5] • cont[seq(1, 8, by = 2)] • cont[is.na(cont)], cont[!is.na(cont)] • cont[is.na(cont)] <- 0, is.na(cont) <- 3 • names(cont) <- letters[1:length(cont)] • cont["d"] • cont[c("f", "a")]
  • 29.
    Indexando e AcessandoItens (Matrizes) • mat <- matrix(1:9, nrow = 3) • mat[2,3] • mat[, 1], mat[1, ] • mat[3, 2, drop = FALSE] • mat[1, , drop = FALSE] • mat[c(1, 3), c(2, 3)] • colnames(mat) <- LETTERS[1:3] • mat[, "B"], mat[1, "C"] • rownames(mat) <- LETTERS[24:26] • mat["X", ], mat["Y", "A"]
  • 30.
    Indexando e AcessandoItens (Listas) • lis <- list(c(3, 8, 7, 4), mat, 5:0) • lis[[2]] • lis[[1]][3] • lis[[2]][2, 3] • lis <- list(vetor1 = c(3, 8, 7, 4), mat = mat, vetor2 = 5:0) #names(lis) <- c("vetor1", "mat", "vetor2") • lis$mat • lis$mat[2, 3] • lis$vetor1[3] • lis[["mat"]] • lis[["vetor1"]][3]
  • 31.
    Indexando e AcessandoItens (Data Frames) • da <- data.frame(A = 4:1, B = c(2, NA, 5, 8)) • da[2, 1] • da[, 2] • da[,"B"] • da[1, ] • da["1", ] • da$A • da$B[3] • da$B[c(2, 4)] • da[is.na(da$A), ], da[is.na(da$B), ], da[!is.na(da$B), ] • with(da, A), with(da, B[3])
  • 32.
    Seleção Condicional • dados<- c(5, 15, 42, 28, 79, 4, 7, 14) • dados[dados > 15], dados[dados > 15 & dados <= 35] • dados > 15 & dados <= 35, dados > 15 | dados <= 35 • cara <- letters[1:length(dados)] • dados[cara == "c"], dados[cara %in% c("a", "c")] • cara[dados == 15], cara[dados > 30] • cara[dados %in% c(4, 14)] • which(dados > 15), which(dados > 15 & dados <= 35), which(cara == "c") • which(cara %in% c("a", "c"))
  • 33.
    Seleção Condicional • dados<- data.frame(ano = c(2001, 2002, 2003, 2004, 2005), captura = c(26, 18, 25, 32, NA), porto = c("SP", "RS", "SC", "SC", "RN")) • dados[dados$ano == 2004, ] • dados[dados$porto == "SC", ] • dados[dados$captura > 20, "captura"] • dados[dados$captura > 25 & dados$porto == "SP", ] • subset(dados, porto == "SC") • subset(dados, captura > 20) • subset(dados, captura > 20, select = captura)
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
    Estatística Descritiva Estatística DescritivaNome da Função Média mean Mediana median Mínimo min Máximo max Amplitude de variação range Quartis e quantis quantile Distância Interquartil (Inter Quarter Range) IQR Variância var Desvio padrão (Standard Deviation) sd Desvio abosluto mediano (Mean Absolut Deviation) mad
  • 39.
    Link’s Úteis • Páginado Projeto está disponível em http://www.r-project.org/; • Página de download está disponível em http://cran.r-project.org; • Página do RStudio: http://www.rstudio.com/; • Página do Tinn-R: http://nbcgib.uesc.br/lec/software/desenvolvidos/editores/tinn-r/en; • Tutoriais estão disponíveis em http://cran.r-project.org/other-docs.html; • Grupos de discussão são encontrados em http://wiki.r-project.org/rwiki/doku.php; • Novidades são disponíveis em http://cran.r-project.org/doc/Rnews/; • R site search: http://finzi.psych.upenn.edu/search.html; • CRAN Task Views: http://cran.r-project.org/web/views/; • Cartão de referência preparado por Jonathan Baron: http://www.leg.ufpr.br/~paulojus/misc/refcard.pdf.
  • 40.
    Os 10 Mandamentosdo R 0º - Não entrarás em pânico! 1º - Utilizarás o R para tuas análises bem como para a manipulação de teus dados(não mais o Excel); 2º - Nunca digitarás o código no console; 3º - Salvarás seus scripts e não se preocuparás com o .RData; 4º - Sempre concatenarás; 5º - Jamais esquecerás dos parênteses das funções; 6º - Conferirás o diretório de trabalho e os dados após a importação, antes de enlouqueceres; 7º - Usarás o help antes de perguntares e não culparás o R por teus erros; 8º - Não esmorecerás após as primeiras noites em claRo e jamais amaldiçoarás o R por tuas faltas de vírgulas; 9º - Lembrarás das aspas dos caracteres; 10º- Não cobiçarás e aperfeiçoarás os códigos alheios e nunca ocultarás o código e a autoria original;
  • 41.