SlideShare una empresa de Scribd logo
1 de 78
Descargar para leer sin conexión
Prof. Dr. Roberto Dantas de Pinho, roberto.pinho@mct.gov.br




                             Este curso tomou como base material dos profs.
                             Dr. Paulo Justiniano Ribeiro Jr (UFPR) e
                             Dr. Cosme Marcelo Furtado Passos da Silva (FIOCRUZ)

                                                                            1
 Um primeira              Salvando seu
  sessão com o R            trabalho
 Objetos                  Manipulando
 Entrada de dados          dados
 Agora que temos          Somas e
  os dados...               agregações
     Algumas análises     Regressão linear
   Filtragem e seleção       E muitas outras coisas
                              ao longo do caminho
                                                       2
   Você pode usar o R para avaliar algumas
    expressões aritméticas simples. Digite:
    1 +   2 + 3
    2 +   3 * 4
    3/2   + 1
    4 *   3**3


   O R é uma ambiente e uma linguagem
                                              6
 O ambiente R permite que você envie
  comandos e veja seus resultados
  imediatamente
 A linguagem R é composta pelo conjunto de
  regras e funções disponíveis que podem ser
  executados no ambiente R.
 Você pode juntar sequências de comandos
  em scripts para uso posterior

                                               7
   Um série de funções estão disponíveis. Alguns
    exemplos simples:
     sqrt(2)                      2
     abs(-10)                     10
     sin(pi)                  sin( )
   pi é uma constante do R, seu valor já é definido
                                                       8
 Resultados, dados de entrada , tabelas, etc
  são armazenados no R em Objetos
 Objetos possuem um nome, conteúdo , um
  tipo e são armazenados na memória. Ex.
 Criar o objeto “x” contendo o número 10:
    x <- 10
   Exibir o conteúdo de x:
    x
                      No R, abc é diferente de ABC

                                                     9
   Experimente:
    X <- sqrt(2)
                          <- e = são equivalentes.
    Y = sin(pi)
    Z = sqrt(X+Y)
   Nos exemplos acima, X, Y e Z armazenam os
    resultados das respectivas operações
No R, sempre existem muitas
formas de fazer a mesma coisa.

                           Vamos focar sempre em uma.

                                                        10
   Qual o valor de C ao final da sequência de
    comandos abaixo?
    A   =   1
    B   =   2
    C   =   A + B
    A   =   5
    B   =   5
   Por quê?

                                                 11
12
   Ambiente que facilita o uso do R
   Organiza as janelas de trabalho
   Acesso facilitado aos objetos e histórico de
    comandos.




                                                   13
Edição de Scripts e
exibição de objetos




           Console


                      14
Lista de objetos
e histórico




Ajuda, gráficos,
arquivos e
pacotes




                   15
 Objeto que armazena múltiplos dados de um
  único tipo
 A função c( ) (“c” de concatenar ou de
  conjunto) permite agrupar valores para
  formar um vetor:
    X = c(1,3,6)
   Para acessar elementos do vetor:
    X[1]              X[3]


                                              16
   Operações aritméticas e funções podem ser
    aplicadas a todo um vetor. Ex.
    X = c(1,3,5)
    Y = c(10,20,30)
    X+Y
    11 23 35
    sum(X)
    9
   E X + 100 ?
    101 103 105 pela Lei da reciclagem
                                                17
 Quando o tamanho pedido por uma operação
  é diferente dos dados disponíveis, os dados
  existentes são repetidos até completar o
  necessário.
 Como X tem 3 elementos, X+100 é o
  mesmo que X + c(100,100,100)



                                                18
> X = 1:10
> [1] 1 2 3 4 5 6 7 8 9 10
> X = seq(0,1,by=0.1)
> [1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
> rep(“a”,5)
> “a” “a” “a” “a” “a”
> nomes = c("fulano", "beltrano",
  "cicrano")
> nomes [1] "fulano" "beltrano" "cicrano"
> letras = letters[1:5]
> letras [1] "a" "b" "c" "d" "e"
> letras = LETTERS[1:5]
> letras [1] "A" "B" "C" "D" "E"
                                                    19
   numeric                  integer
     is.numeric( )            is.integer( )
     as.numeric( )            as.integer( )
   character                logical
     is.character( )          T == TRUE == 1
     as.character( )          F == FALSE == 0


                A == B significa “A é igual a B?”

                                                    20
   Vetor organizado em linhas e colunas
    m1 <- matrix(1:12, ncol      = 3)
          [,1]     [,2]          [,3]
    [1,] 1         5             9
    [2,] 2         6             10
    [3,] 3         7             11
    [4,] 4         8             12


                                           21
 length(m1)
 [1] 12
 dim(m1)
 [1] 4 3
 nrow(m1)
 [1] 4
 ncol(m1)
 [1] 3


               22
 m1[1,   2]
 [1] 5
 m1[2,   2]
 [1] 6
 m1[ ,   2]
 [1] 5   6 7 8
 m1[3,   ]           m1[1,2]= 99
 [1] 3   7 11    muda o valor da célula


                                           23
m1[1:2, 2:3]
   [,1]    [,2]
[1,]   5   9
[2,]   6   10




                  24
colnames(m1)
NULL
rownames(m1)
NULL

colnames(m1) = c("C1","C2","C3")

m1[,”C1”]
[1] 1 2 3 4     t(m1) transposta de m1
                                         25
   “matriz” com várias dimensões. Ex. com 3 dim.:
ar1 <- array(1:24, dim = c(3, 4, 2))
, , 1
                                              1ª matriz
     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    2    5    8   11
[3,]    3    6    9   12        Para um array de 3 dimensões,
                                      você pode entender a 3ª
, , 2                          dimensão como uma coleção de
                                                     matrizes.
     [,1] [,2] [,3] [,4]
[1,]   13   16   19   22
[2,]   14   17   20   23                       2ª matriz
[3,]   15   18   21   24

                                                             26
     Como trabalhar com coisas assim?
Ano Código do Órgão
     UF           Órgão    Código da UO unidade orçamentária função subfunção programa ação
                                                                                         localizador        descrição da ação           valor P&D          valor ACTC
                Adm
                direta e                                                                         MODERNIZAÇÃO DO SISTEMA DE
2010 AC       1 indireta              1 Adm direta e indireta     19      121      2056 1548     PLANEJAMENTO E GESTÃO DA SDCT         R$           - R$       16.655,00
                                                                                                 PROGRAMA DE COOPERAÇÃO TÉCNICA E
                Adm                                                                              FINANCEIRA COM INSTIT. NAC. INTERN.
                direta e                                                                         GOVERNAMENTAIS E NÃO
2010 AC       1 indireta              1 Adm direta e indireta     19      121      2056 1549     GOVERNAMENTAIS                        R$           - R$      715.000,00
                Adm
                direta e                                                                         MANUTENÇÃO DO GABINETE DO SECRETÁ
2010 AC       1 indireta              1 Adm direta e indireta     19      122      2009 2224     RIO                                   R$           - R$       27.732,11
                Adm
                direta e
2010 AC       1 indireta              1 Adm direta e indireta     19      122      2009 2227     DEPARTAMENTO DE GESTÃO INTERNA        R$           - R$ 2.266.169,90




                                                                                                                                                                27
colnames(d) [1] "letra" "num" "valor"




       Cada coluna tem o seu tipo
    d = data.frame(letters[1:4],        1:4, 10.5)
      letters.1.4. X1.4 X10.5
    1             a    1 10.5           Na maior parte do
    2             b    2 10.5           tempo usaremos
    3             c    3 10.5           data.frames
    4             d    4 10.5
       Podemos mudar o nome das colunas:
    colnames(d) = c("letra","num", "valor")
    colnames(d)
    [1] "letra" "num" "valor“
    d$valor   # seleciona a coluna “valor” de d

                                                            28
   lista
   fator




            veremos depois...
                            29
   Diversas fontes.
   Veremos:
     Teclado        x = scan( )
     Arquivos Excel
     Arquivos CSV
     Bancos de Dados SQL




                                   30
require(XLConnect)

wb <- loadWorkbook(“AC_PDACTCaula.xls”)

plan1 <- readWorksheet(wb, sheet = 1)

str(plan1)

View(plan1)


                                        31
require(XLConnect)
 Carrega o pacote XLConnect
 Pacotes são conjuntos de funções e dados
  que adicionam funcionalidades ao R.
 Se o pacote não estiver instalado:

setInternet2() #somente no windows
install.packages("XLConnect", dep=T)


                                             32
   Cria um objeto “wb” que aponta para o
    arquivo excel:
wb <-
  loadWorkbook(“AC_PDACTCaula.xls”)




                                            33
   Carrega os dados da primeira planilha (“aba”)
    em um objeto chamado “plan1”

plan1 <- readWorksheet(wb, sheet = 1)

As funções no R identificam os parâmetros
                As funções no R
                  identificam os
 pela ordem     parâmetros pela
                                 Ou utilizando o
                                         nome do
                         ordem          parâmetro



                                                    34
   Mostra a estrutura do objeto criado:

str(plan1)          str() funciona para qualquer
                          objeto do R. É muito útil.

   Mostra os dados carregados em uma janela:

View(plan1)
                       No RStudio, você pode clicar em
                          um objeto na lista de objetos


                                                          35
args(readWorksheet) #mostra parâmetros
function (
object,     #o workbook “wb”
sheet,      #número ou nome da
            “aba”/planilha
startRow,   #linha inicial da importação
startCol,   #col. inicial da importação
endRow,     #linha final da importação
endCol,     #col. final da    importação
header      # T ou F: usar primeira
            linha para dar nome às
            colunas )
                                       36
 Comma-separated values: valores separados por
  vírgula
 Formato de arquivo muito comum para troca de
  dados
                                     ;
  São comuns outros separadores: <tab> <espaço>
 Exemplo:
uf   ano    valido   somaactc      somapd
AC   2009   1        34296430.67   3630841.04
AC   2010   1        29397712.04   3579715.12
AL   2009   1        12650160.51   8903714.41

                                                  37
   Exemplo:
uf    ano    valido     somaactc      somapd
AC    2009   1          34296430,67   3630841,04
AC    2010   1          29397712,04   3579715,12
AL    2009   1          12650160,51   8903714,41
   Para ler este arquivo:
d = read.csv(file="AgregaUF20110930_b.txt",
  header=T, # usa primeira linha como cabeçalho
  sep="t", # separador de valores é <tab>
  dec=","   # separador decimal é vírgula
)



                                                   38
   str(d)       #estrutura criada

   summary(d)   #resumo estatístico

   head(d)      #primeiros registros

   tail(d)      #últimos registros

   plot(d)      #visualização padrão

                                        39
require(RODBC)
canal <- odbcConnect(
“base_ODBC",
case="tolower“,
uid=“usuário”,
pwd=“senha”)
d <- sqlQuery(canal,
”select * from tabela where ano = 2010”,
as.is=T)

                                       40
   Como fazer a soma de uma coluna de um
    data.frame?
    sum(data.frame$coluna)
    sum(d$somapd)
    [1] NA




                                            41
   NA Not Available
     denota dados faltantes. Note que deve utilizar
      maiúsculas.
   NaN Not a Number
     denota um valor que não é representável por um
      número.
   Inf e -Inf
     mais ou menos infinito.
                                 Tente: c(-1,0,1)/0
                                                       42
   Soma:
    sum(d$somapd, na.rm=T)
    [1] 4836882446
   Média:
sum(d$somapd, na.rm=T)
   Mediana:
median(d$somapd, na.rm=T)
   Desvio padrão:
sd(d$somapd, na.rm=T)

                             43
   Para estes exemplos:
    milsa = read.csv("milsaText.txt",
      sep="t", head=T, dec=".")




                                        44
 Frequências absolutas
table(milsa$civil)
 Frequências relativas
table(milsa$civil) /
     length(milsa$civil)
    ou
prop.table(milsa$civil)
 Gráfico de setores
pie(table(milsa$civil))

                           45
 Com attach(milsa)
 Frequências absolutas
table(civil)
 Frequências relativas
table(civil) /
     length(civil)
    ou
prop.table(civil)
 Gráfico de setores
                          depois: detach(milsa)
pie(table(civil))
                                                  46
 Gráfico de barras:
barplot(table(instrucao))
 Lembrando:
     Posso salvar resultados como objetos e usá-los
     várias vezes
instrucao.tb = table(instrucao)
barplot(instrucao.tb )
pie(instrucao.tb )


                                                       47
 Tente:
prop.table(filhos)
 Solução:
prop.table(table(filhos))
 Outra solução:
     Filtrar os elementos com NA




                                    48
 mean(filhos, na.rm=T)  #média
     median(filhos, na.rm=T) #mediana
     range(filhos, na.rm=T)   #amplitude
     var(filhos, na.rm=T) #variância
     sd(filhos, na.rm=T) #desvio padrão
   Quartis:
     filhos.quartis = quantile(filhos, na.rm=T)
   Amplitude inter-quartis:
     filhos.quartis [4] -filhos.quartis [1]

                                                   49
 plot(milsa)
 plot(salario ~ ano)
 hist(salario)
 boxplot(salario)
 stem(salario)

                        50
   Selecionando algumas linhas
   milsaNovo = milsa[c(1,3,5,6)           ,    ]
   Selecionando algumas colunas
   milsaNovo = milsa[           , c(1,3,5)]
   milsaNovo = milsa[           , c(“funcionario”,
                          ”instrucao“, “salario”)]
   Atenção:
     Cria cópia
 milsaNovo=milsa[c(1,3,5,6) ,]
   Substitui anterior
 milsa=milsa[c(1,3,5,6) , ]

                                                 51
 Quem ganha acima da mediana
 acimamediana = milsa[ salario >
  median(salario), ]
 Quais são os casados com nível superior?
 casadoEsuperior = milsa[
  civil==“casado” & instrucao ==
  “Superior”, ]
                       E: ambas as condições
                       devem ser verdadeiras

                                               52
 Quais são os casados ou quem tem nível
  superior?
 casadoOUsuperior = milsa[
  civil==“casado” | instrucao ==
  “Superior”, ]
                         OU: pelo menos uma
                        das condições deve ser
                              verdadeira



                                                 53
NÃO


   milsaLimpo=milsa[!is.na(salario), ]
   Em português:
   Nova tabela        milsaLimpo
   É igual            =
   Tabela antiga      milsa
   Selecione          [
   Linhas
   Salário não é NA   ! is.na(salario)
   e todas as colunas , ]

                                     54
   QUANTOS são os casados?
   sum(civil==“casado”)
     ou
   table(civil)["casado"]
   QUANTOS são os casados e tem nível superior?
   sum(civil==“casado” & instrucao
    == “Superior” )
   table(civil,instrucao)["casado",
    "Superior"]
                                                   55
 milsaNovo é igual a milsa, sem as
 linhas 1,2 e 5 e sem as colunas 1 e 8:

milsaNovo =

milsa[-c(1,2,5), -c(1,8)]

                                          56
Quais linhas atendem à
                                               condição


 sup = which(instrucao=="Superior“)
 [1] 19 24 31 33 34 36
 Posso usar depois:
 mean(milsa[sup,”salario”])
     Média salarial dos que tem nível superior

                                    vantagem: não cria cópia!!

                                                                 57
   Uma amostra aleatória de 10 elementos
    de milsa:
     amostra =
      sample(x=nrow(milsa),size=10)
     [1] 12 29 1 3 17 14 26 33 20
      31
   Média salarial da amostra:
     mean(milsa[amostra,”salario”])

                                            58
   Em ordem de número de filhos:
    milsa[order(filhos),]
   Decrescente:
    milsa[order(filhos, decreasing=T),]
   Em ordem de número de filhos e depois por idade:
    milsa[order(filhos,ano),]
   Ver os 10 mais novos:
    head(milsa[order(ano),], 10)
   Ver os 10 mais velhos:
    tail(milsa[order(ano),], 10)
                                                       59
 Apagando um objeto
  rm(milsaNovo)     ls() : lista de
 Apagando tudo    objetos correntes

  rm(list = ls())



                                       60
 Objetos do tipo lista são coleções que podem conter
  objetos de tipos diferentes.
lis = list(A=1:10, B=“Texto”,
           C = matrix(1:9,ncol=3)
 São muito utilizadas na passagem de parâmetros para
  funções ou nos resultados de funções.
 lis[1:2]
     uma lista com os dois primeiros itens de lis (A e B)
   lis[[1]]:
     objeto armazenado na primeira posição da lista ( o conteúdo
      de A). O mesmo que lis$A

                                                               61
 Para salvar todos os objetos:
  save.image(“arquivo.RData”)
 Para salvar alguns objetos:
  save( x, y,
  file=“arquivo.RData”)
 Carregando:
  load(“arquivo.RData“)
                 Vários “load”: os objetos com
                 nomes distintos se acumulam
                                                 62
 Salvar um script “.R” que reproduza os passos
  feitos.
 Vantagem: Além de servir de documentação da
  criação da base, incorpora alterações na base, se
  houver.
 Modelo híbrido:
     Resultados intermediários que requerem muito tempo
     processamento pode ser salvos em imagem. Ex.
     agregação de dados de empregados por empresa

                                                       63
   Criando uma coluna em um data.frame:
    milsa$idade =
      milsa$ano + milsa$mes/12




                                           64
X         Y




6+3+5=14

               65
X   Y




        66
X   Y




        67
X   Y




        68
X   Y




        69
   Exemplo:



    com




               70
   Registros com correspondência :
merge(x=milsa,
 y=tabInst,by.x="instrucao", by.y="desc“,
 all=F)
Todos os registros da tabela X:
merge(x=milsa,
    y=tabInst,by.x="instrucao", by.y="desc",
    all.x=T)




                                          71
Todos os registros da tabela y:
merge(x=milsa,
    y=tabInst,by.x="instrucao", by.y="desc",
    all.y=T)



Todos os registros das tabela x e y:
merge(x=milsa,
 y=tabInst,by.x="instrucao",
 by.y="desc", all=T)
                                          72
   De texto para número
d.f$novaColuna = as.numeric(d.f$coluna)

   De número para texto:
d.f$novaColuna=as.character(d.f$coluna)

   De texto ou número para inteiro:
d.f$novaColuna = as.integer(d.f$coluna)

                            Inteiros economizam memória

                                                          73
   Representação de variáveis qualitativas
     Nominais
      ▪ “casado”, “solteiro”
     Ordinais                 Fatores economizam memória
      ▪ “alto”, “baixo”
   Economizam espaço de memória
   Tratamento apropriado para este tipo de
    variável pelas funções do R

                                                            74
Nominal:
milsa$fatorcivil=factor(milsa$civil, ordered=F)

$fatorcivil : Factor w/ 2 levels
  "casado","solteiro": 2 1 1 2 2 1 2 2 1 2

Ordinal:
milsa$fatormes = factor(milsa$mes, ordered=T)

$fatormes : Ord.factor w/ 12 levels
  "0"<"1"<"2"<"3"<..: 4 11 6 11 8 1 1 5 11 7 ...
            É possível definir uma ordem específica: ?factor

                                                               75
 De fator para texto:
d.f$novaColuna =
  as.character(d.f$colunaFator)
 De fator para número:
d.f$novaColuna =
  as.numeric(
    as.character(d.f$colunaFator))
              A representação interna de um
               fator é diferente do seu texto

                                                76
   Para:
    m1 <- matrix(1:12, ncol = 3)
   Soma das colunas (um valor para cada coluna):
colSums(m1)
[1] 10 26 42
 Ou
apply(m1,2,sum)
[1] 10 26 42



                                                    77
   Soma das linhas (um valor para cada linha):
rowSums(m1)
[1] 15 18 21 24
   Ou
apply(m1,1,sum)
[1] 15 18 21 24

        Posso usar
     qualquer função.
       Até próprias

                                                  78
aggregate(salario ~ instrucao,
              data = milsa, mean)

  instrucao   salario
1    1oGrau 7.836667
2    2oGrau 11.528333
3 Superior 16.475000


                                79
aggregate(
  salario ~ instrucao   + civil,
               data =   milsa, mean)
   instrucao    civil     salario
1     1oGrau   casado    7.044000
2     2oGrau   casado   12.825000
3 Superior     casado   17.783333
4     1oGrau solteiro    8.402857
5     2oGrau solteiro    8.935000
6 Superior solteiro     15.166667
                                       80
modelo = lm(
 formula = salario ~ ano + instrucao,
 data = milsa)

summary(modelo)




                         É uma linha mesmo!!!

                                                81

Más contenido relacionado

La actualidad más candente

Situações problematizadoras, Escrita dos Numerais e Ditado Numérico
Situações problematizadoras, Escrita dos Numerais e Ditado NuméricoSituações problematizadoras, Escrita dos Numerais e Ditado Numérico
Situações problematizadoras, Escrita dos Numerais e Ditado NuméricoPaulo Alves de Araujo
 
Avaliando ciências 4º ano sistema respiratório
Avaliando   ciências 4º ano sistema respiratórioAvaliando   ciências 4º ano sistema respiratório
Avaliando ciências 4º ano sistema respiratórioNisio Jose pereira
 
Aval 7 ano(vertebrados)
Aval 7 ano(vertebrados)Aval 7 ano(vertebrados)
Aval 7 ano(vertebrados)Ercio Novaes
 
lista de credenciados do IPSEMG
 lista de credenciados do IPSEMG lista de credenciados do IPSEMG
lista de credenciados do IPSEMGCláudio Chasmil
 
+650 Atividades Para Autistas.pdf
+650 Atividades Para Autistas.pdf+650 Atividades Para Autistas.pdf
+650 Atividades Para Autistas.pdfantoniojosdaschagas
 
Avaliação de ciencias
Avaliação de cienciasAvaliação de ciencias
Avaliação de cienciasKelly Cristina
 
Orientações pedagógicas módulo 1 matemática 8º ano
Orientações pedagógicas módulo 1 matemática 8º anoOrientações pedagógicas módulo 1 matemática 8º ano
Orientações pedagógicas módulo 1 matemática 8º anocon_seguir
 
Atividades referente ao tema Escravo, nem pensar
Atividades referente ao tema Escravo, nem pensarAtividades referente ao tema Escravo, nem pensar
Atividades referente ao tema Escravo, nem pensarAndré Moraes
 
ficha leitura palavras 1 ano.pdf
ficha leitura palavras 1 ano.pdfficha leitura palavras 1 ano.pdf
ficha leitura palavras 1 ano.pdfdanielagracia9
 
Apostila 001 conjuntos numéricos
Apostila  001 conjuntos numéricosApostila  001 conjuntos numéricos
Apostila 001 conjuntos numéricoscon_seguir
 
ANATOMIA CABEÇA E PESCOÇO - OSTEOLOGIA DO CRANIO.pdf
ANATOMIA CABEÇA E PESCOÇO - OSTEOLOGIA DO CRANIO.pdfANATOMIA CABEÇA E PESCOÇO - OSTEOLOGIA DO CRANIO.pdf
ANATOMIA CABEÇA E PESCOÇO - OSTEOLOGIA DO CRANIO.pdfBrunoSantos386332
 

La actualidad más candente (20)

Situações problematizadoras, Escrita dos Numerais e Ditado Numérico
Situações problematizadoras, Escrita dos Numerais e Ditado NuméricoSituações problematizadoras, Escrita dos Numerais e Ditado Numérico
Situações problematizadoras, Escrita dos Numerais e Ditado Numérico
 
Avaliando ciências 4º ano sistema respiratório
Avaliando   ciências 4º ano sistema respiratórioAvaliando   ciências 4º ano sistema respiratório
Avaliando ciências 4º ano sistema respiratório
 
Musica: Cai, cai, balão!
Musica: Cai, cai, balão!Musica: Cai, cai, balão!
Musica: Cai, cai, balão!
 
Cartazes planetas
Cartazes planetasCartazes planetas
Cartazes planetas
 
Aval 7 ano(vertebrados)
Aval 7 ano(vertebrados)Aval 7 ano(vertebrados)
Aval 7 ano(vertebrados)
 
lista de credenciados do IPSEMG
 lista de credenciados do IPSEMG lista de credenciados do IPSEMG
lista de credenciados do IPSEMG
 
+650 Atividades Para Autistas.pdf
+650 Atividades Para Autistas.pdf+650 Atividades Para Autistas.pdf
+650 Atividades Para Autistas.pdf
 
Astronomia 7º ano - Ciências
Astronomia 7º ano - CiênciasAstronomia 7º ano - Ciências
Astronomia 7º ano - Ciências
 
Avaliação de ciencias
Avaliação de cienciasAvaliação de ciencias
Avaliação de ciencias
 
Orientações pedagógicas módulo 1 matemática 8º ano
Orientações pedagógicas módulo 1 matemática 8º anoOrientações pedagógicas módulo 1 matemática 8º ano
Orientações pedagógicas módulo 1 matemática 8º ano
 
Jogo 1 - Lotomática
Jogo 1 - LotomáticaJogo 1 - Lotomática
Jogo 1 - Lotomática
 
Uni teste 6º ano
Uni teste 6º anoUni teste 6º ano
Uni teste 6º ano
 
D1 (5º ano mat.)
D1 (5º ano   mat.)D1 (5º ano   mat.)
D1 (5º ano mat.)
 
Cantigas com numeros
Cantigas com numerosCantigas com numeros
Cantigas com numeros
 
Atividades referente ao tema Escravo, nem pensar
Atividades referente ao tema Escravo, nem pensarAtividades referente ao tema Escravo, nem pensar
Atividades referente ao tema Escravo, nem pensar
 
Poema da Mamãe
Poema da MamãePoema da Mamãe
Poema da Mamãe
 
ficha leitura palavras 1 ano.pdf
ficha leitura palavras 1 ano.pdfficha leitura palavras 1 ano.pdf
ficha leitura palavras 1 ano.pdf
 
Apostila 001 conjuntos numéricos
Apostila  001 conjuntos numéricosApostila  001 conjuntos numéricos
Apostila 001 conjuntos numéricos
 
ANATOMIA CABEÇA E PESCOÇO - OSTEOLOGIA DO CRANIO.pdf
ANATOMIA CABEÇA E PESCOÇO - OSTEOLOGIA DO CRANIO.pdfANATOMIA CABEÇA E PESCOÇO - OSTEOLOGIA DO CRANIO.pdf
ANATOMIA CABEÇA E PESCOÇO - OSTEOLOGIA DO CRANIO.pdf
 
CADERNO DO ALUNO: PROVINHA BRASIL 2O11 - 2º ANO DO ENSINO FUNDAMENTAL 1- AV...
CADERNO DO ALUNO: PROVINHA BRASIL  2O11 -  2º ANO DO ENSINO FUNDAMENTAL 1- AV...CADERNO DO ALUNO: PROVINHA BRASIL  2O11 -  2º ANO DO ENSINO FUNDAMENTAL 1- AV...
CADERNO DO ALUNO: PROVINHA BRASIL 2O11 - 2º ANO DO ENSINO FUNDAMENTAL 1- AV...
 

Similar a Importando dados de planilha Excel para o R

IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonDiogo Gomes
 
Apostila matemática básica 2
Apostila matemática básica 2Apostila matemática básica 2
Apostila matemática básica 2waynemarques
 
Aula de Apresentação, Função e Função do 1º Grau.ppt · versão 1.pptx
Aula de Apresentação, Função e Função do 1º Grau.ppt · versão 1.pptxAula de Apresentação, Função e Função do 1º Grau.ppt · versão 1.pptx
Aula de Apresentação, Função e Função do 1º Grau.ppt · versão 1.pptxJuliana Menezes
 
Estrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptxEstrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptxMarceloRosenbrock1
 
Capitulo 1scilab
Capitulo 1scilabCapitulo 1scilab
Capitulo 1scilabwjunior
 
Apostila matematica concursos_fundamental
Apostila matematica concursos_fundamentalApostila matematica concursos_fundamental
Apostila matematica concursos_fundamentalmanuelsilva309
 
Apostila matematica concursos - ensino fundamental
Apostila matematica   concursos - ensino fundamentalApostila matematica   concursos - ensino fundamental
Apostila matematica concursos - ensino fundamentalClebson Silva
 
Apostila matematica concursos_fundamental
Apostila matematica concursos_fundamentalApostila matematica concursos_fundamental
Apostila matematica concursos_fundamentalFabricio Marcelino
 
Estruturas de dados em Python
Estruturas de dados em PythonEstruturas de dados em Python
Estruturas de dados em PythonRicardo Paiva
 
Plano de aula 1 º ano ensino medio - 1º bimestre
Plano de aula  1 º ano ensino medio - 1º bimestrePlano de aula  1 º ano ensino medio - 1º bimestre
Plano de aula 1 º ano ensino medio - 1º bimestreAngela Machado Verissimo
 
Plano de aula 1 º ano ensino medio - 1º bimestre
Plano de aula  1 º ano ensino medio - 1º bimestrePlano de aula  1 º ano ensino medio - 1º bimestre
Plano de aula 1 º ano ensino medio - 1º bimestreAngela Machado Verissimo
 
LISTA 02 E 03 - EXERCÍCIOS DE MATEMÁTICA 1º ANO - PROFª NEID
LISTA 02 E 03 - EXERCÍCIOS DE MATEMÁTICA 1º ANO - PROFª NEIDLISTA 02 E 03 - EXERCÍCIOS DE MATEMÁTICA 1º ANO - PROFª NEID
LISTA 02 E 03 - EXERCÍCIOS DE MATEMÁTICA 1º ANO - PROFª NEIDCriativa Niterói
 
Recursividade em C
Recursividade em CRecursividade em C
Recursividade em CCaique Silva
 

Similar a Importando dados de planilha Excel para o R (20)

IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
 
R para Iniciantes
R para IniciantesR para Iniciantes
R para Iniciantes
 
Apostila matemática básica 2
Apostila matemática básica 2Apostila matemática básica 2
Apostila matemática básica 2
 
Aula de Apresentação, Função e Função do 1º Grau.ppt · versão 1.pptx
Aula de Apresentação, Função e Função do 1º Grau.ppt · versão 1.pptxAula de Apresentação, Função e Função do 1º Grau.ppt · versão 1.pptx
Aula de Apresentação, Função e Função do 1º Grau.ppt · versão 1.pptx
 
Estrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptxEstrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptx
 
Calculo numérico
Calculo numéricoCalculo numérico
Calculo numérico
 
Capitulo 1scilab
Capitulo 1scilabCapitulo 1scilab
Capitulo 1scilab
 
Apostila matematica concursos_fundamental
Apostila matematica concursos_fundamentalApostila matematica concursos_fundamental
Apostila matematica concursos_fundamental
 
Apostila matematica concursos - ensino fundamental
Apostila matematica   concursos - ensino fundamentalApostila matematica   concursos - ensino fundamental
Apostila matematica concursos - ensino fundamental
 
Apostila matematica concursos_fundamental
Apostila matematica concursos_fundamentalApostila matematica concursos_fundamental
Apostila matematica concursos_fundamental
 
Tutorial matlab
Tutorial matlabTutorial matlab
Tutorial matlab
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
 
Estruturas de dados em Python
Estruturas de dados em PythonEstruturas de dados em Python
Estruturas de dados em Python
 
Mini R
Mini R Mini R
Mini R
 
Plano de aula 1 º ano ensino medio - 1º bimestre
Plano de aula  1 º ano ensino medio - 1º bimestrePlano de aula  1 º ano ensino medio - 1º bimestre
Plano de aula 1 º ano ensino medio - 1º bimestre
 
Plano de aula 1 º ano ensino medio - 1º bimestre
Plano de aula  1 º ano ensino medio - 1º bimestrePlano de aula  1 º ano ensino medio - 1º bimestre
Plano de aula 1 º ano ensino medio - 1º bimestre
 
Apostila rpira
Apostila rpiraApostila rpira
Apostila rpira
 
LISTA 02 E 03 - EXERCÍCIOS DE MATEMÁTICA 1º ANO - PROFª NEID
LISTA 02 E 03 - EXERCÍCIOS DE MATEMÁTICA 1º ANO - PROFª NEIDLISTA 02 E 03 - EXERCÍCIOS DE MATEMÁTICA 1º ANO - PROFª NEID
LISTA 02 E 03 - EXERCÍCIOS DE MATEMÁTICA 1º ANO - PROFª NEID
 
Notação científica
Notação científicaNotação científica
Notação científica
 
Recursividade em C
Recursividade em CRecursividade em C
Recursividade em C
 

Más de Roberto de Pinho

Avaliação de impacto em Ciência, Tecnologia e Inovação
Avaliação de impacto em Ciência, Tecnologia e InovaçãoAvaliação de impacto em Ciência, Tecnologia e Inovação
Avaliação de impacto em Ciência, Tecnologia e InovaçãoRoberto de Pinho
 
Rumo a uma política de dados científicos
Rumo a uma política de dados científicosRumo a uma política de dados científicos
Rumo a uma política de dados científicosRoberto de Pinho
 
Towards a scientific data policy
Towards a scientific data policy Towards a scientific data policy
Towards a scientific data policy Roberto de Pinho
 
Cientometria: Duas xícaras de ciência e três pitadas de citações
Cientometria: Duas xícaras de ciência e três pitadas de citações Cientometria: Duas xícaras de ciência e três pitadas de citações
Cientometria: Duas xícaras de ciência e três pitadas de citações Roberto de Pinho
 
Indicadores de políticas públicas e métricas de software: uma visão em paralelo
Indicadores de políticas públicas e métricas de software: uma visão em paraleloIndicadores de políticas públicas e métricas de software: uma visão em paralelo
Indicadores de políticas públicas e métricas de software: uma visão em paraleloRoberto de Pinho
 
Metodologia de Análise e Solução de Problemas (MASP)
Metodologia de Análise e Solução de Problemas (MASP)Metodologia de Análise e Solução de Problemas (MASP)
Metodologia de Análise e Solução de Problemas (MASP)Roberto de Pinho
 
Elaboração de Indicadores para quem tem pressa
Elaboração de Indicadores para quem tem pressaElaboração de Indicadores para quem tem pressa
Elaboração de Indicadores para quem tem pressaRoberto de Pinho
 
Indicadores bibliométricos
Indicadores bibliométricosIndicadores bibliométricos
Indicadores bibliométricosRoberto de Pinho
 
Evolução e perspectivas dos investimentos em CTI no Brasil
Evolução e perspectivas dos investimentos em CTI no BrasilEvolução e perspectivas dos investimentos em CTI no Brasil
Evolução e perspectivas dos investimentos em CTI no BrasilRoberto de Pinho
 
Key words of Brazilian science
Key words of Brazilian scienceKey words of Brazilian science
Key words of Brazilian scienceRoberto de Pinho
 
Doutores 2010-word-clouds_apres
 Doutores 2010-word-clouds_apres Doutores 2010-word-clouds_apres
Doutores 2010-word-clouds_apresRoberto de Pinho
 
Dados abertos: dados pessoais e anonimização de bases" no II Encontro Naciona...
Dados abertos: dados pessoais e anonimização de bases" no II Encontro Naciona...Dados abertos: dados pessoais e anonimização de bases" no II Encontro Naciona...
Dados abertos: dados pessoais e anonimização de bases" no II Encontro Naciona...Roberto de Pinho
 
In vino veritas - Dans le vin la vérité - L’étiquette de vin
In vino veritas -  Dans le vin la vérité - L’étiquette de vinIn vino veritas -  Dans le vin la vérité - L’étiquette de vin
In vino veritas - Dans le vin la vérité - L’étiquette de vinRoberto de Pinho
 
Espaço incremental para a mineração visual de conjuntos dinâmicos de documentos
Espaço incremental para a mineração visual de conjuntos dinâmicos de documentosEspaço incremental para a mineração visual de conjuntos dinâmicos de documentos
Espaço incremental para a mineração visual de conjuntos dinâmicos de documentosRoberto de Pinho
 
Dados abertos: dados pessoais e anonimização de bases
Dados abertos: dados pessoais e anonimização de basesDados abertos: dados pessoais e anonimização de bases
Dados abertos: dados pessoais e anonimização de basesRoberto de Pinho
 

Más de Roberto de Pinho (19)

Avaliação de impacto em Ciência, Tecnologia e Inovação
Avaliação de impacto em Ciência, Tecnologia e InovaçãoAvaliação de impacto em Ciência, Tecnologia e Inovação
Avaliação de impacto em Ciência, Tecnologia e Inovação
 
Rumo a uma política de dados científicos
Rumo a uma política de dados científicosRumo a uma política de dados científicos
Rumo a uma política de dados científicos
 
Towards a scientific data policy
Towards a scientific data policy Towards a scientific data policy
Towards a scientific data policy
 
Cientometria: Duas xícaras de ciência e três pitadas de citações
Cientometria: Duas xícaras de ciência e três pitadas de citações Cientometria: Duas xícaras de ciência e três pitadas de citações
Cientometria: Duas xícaras de ciência e três pitadas de citações
 
Indicadores de políticas públicas e métricas de software: uma visão em paralelo
Indicadores de políticas públicas e métricas de software: uma visão em paraleloIndicadores de políticas públicas e métricas de software: uma visão em paralelo
Indicadores de políticas públicas e métricas de software: uma visão em paralelo
 
Fábrica de Experiência
Fábrica de ExperiênciaFábrica de Experiência
Fábrica de Experiência
 
Metodologia de Análise e Solução de Problemas (MASP)
Metodologia de Análise e Solução de Problemas (MASP)Metodologia de Análise e Solução de Problemas (MASP)
Metodologia de Análise e Solução de Problemas (MASP)
 
Natureza dos Problemas
Natureza dos ProblemasNatureza dos Problemas
Natureza dos Problemas
 
Elaboração de Indicadores para quem tem pressa
Elaboração de Indicadores para quem tem pressaElaboração de Indicadores para quem tem pressa
Elaboração de Indicadores para quem tem pressa
 
Indicadores bibliométricos
Indicadores bibliométricosIndicadores bibliométricos
Indicadores bibliométricos
 
Evolução e perspectivas dos investimentos em CTI no Brasil
Evolução e perspectivas dos investimentos em CTI no BrasilEvolução e perspectivas dos investimentos em CTI no Brasil
Evolução e perspectivas dos investimentos em CTI no Brasil
 
As Coisas e Os Dados
As Coisas e Os DadosAs Coisas e Os Dados
As Coisas e Os Dados
 
Key words of Brazilian science
Key words of Brazilian scienceKey words of Brazilian science
Key words of Brazilian science
 
Doutores 2010-word-clouds_apres
 Doutores 2010-word-clouds_apres Doutores 2010-word-clouds_apres
Doutores 2010-word-clouds_apres
 
Dados abertos: dados pessoais e anonimização de bases" no II Encontro Naciona...
Dados abertos: dados pessoais e anonimização de bases" no II Encontro Naciona...Dados abertos: dados pessoais e anonimização de bases" no II Encontro Naciona...
Dados abertos: dados pessoais e anonimização de bases" no II Encontro Naciona...
 
In vino veritas - Dans le vin la vérité - L’étiquette de vin
In vino veritas -  Dans le vin la vérité - L’étiquette de vinIn vino veritas -  Dans le vin la vérité - L’étiquette de vin
In vino veritas - Dans le vin la vérité - L’étiquette de vin
 
Espaço incremental para a mineração visual de conjuntos dinâmicos de documentos
Espaço incremental para a mineração visual de conjuntos dinâmicos de documentosEspaço incremental para a mineração visual de conjuntos dinâmicos de documentos
Espaço incremental para a mineração visual de conjuntos dinâmicos de documentos
 
Dados abertos: dados pessoais e anonimização de bases
Dados abertos: dados pessoais e anonimização de basesDados abertos: dados pessoais e anonimização de bases
Dados abertos: dados pessoais e anonimização de bases
 
Basic R
Basic RBasic R
Basic R
 

Importando dados de planilha Excel para o R

  • 1. Prof. Dr. Roberto Dantas de Pinho, roberto.pinho@mct.gov.br Este curso tomou como base material dos profs. Dr. Paulo Justiniano Ribeiro Jr (UFPR) e Dr. Cosme Marcelo Furtado Passos da Silva (FIOCRUZ) 1
  • 2.  Um primeira  Salvando seu sessão com o R trabalho  Objetos  Manipulando  Entrada de dados dados  Agora que temos  Somas e os dados... agregações  Algumas análises  Regressão linear  Filtragem e seleção E muitas outras coisas ao longo do caminho 2
  • 3. Você pode usar o R para avaliar algumas expressões aritméticas simples. Digite: 1 + 2 + 3 2 + 3 * 4 3/2 + 1 4 * 3**3  O R é uma ambiente e uma linguagem 6
  • 4.  O ambiente R permite que você envie comandos e veja seus resultados imediatamente  A linguagem R é composta pelo conjunto de regras e funções disponíveis que podem ser executados no ambiente R.  Você pode juntar sequências de comandos em scripts para uso posterior 7
  • 5. Um série de funções estão disponíveis. Alguns exemplos simples:  sqrt(2) 2  abs(-10) 10  sin(pi) sin( )  pi é uma constante do R, seu valor já é definido 8
  • 6.  Resultados, dados de entrada , tabelas, etc são armazenados no R em Objetos  Objetos possuem um nome, conteúdo , um tipo e são armazenados na memória. Ex.  Criar o objeto “x” contendo o número 10: x <- 10  Exibir o conteúdo de x: x No R, abc é diferente de ABC 9
  • 7. Experimente: X <- sqrt(2) <- e = são equivalentes. Y = sin(pi) Z = sqrt(X+Y)  Nos exemplos acima, X, Y e Z armazenam os resultados das respectivas operações No R, sempre existem muitas formas de fazer a mesma coisa. Vamos focar sempre em uma. 10
  • 8. Qual o valor de C ao final da sequência de comandos abaixo? A = 1 B = 2 C = A + B A = 5 B = 5  Por quê? 11
  • 9. 12
  • 10. Ambiente que facilita o uso do R  Organiza as janelas de trabalho  Acesso facilitado aos objetos e histórico de comandos. 13
  • 11. Edição de Scripts e exibição de objetos Console 14
  • 12. Lista de objetos e histórico Ajuda, gráficos, arquivos e pacotes 15
  • 13.  Objeto que armazena múltiplos dados de um único tipo  A função c( ) (“c” de concatenar ou de conjunto) permite agrupar valores para formar um vetor: X = c(1,3,6)  Para acessar elementos do vetor: X[1] X[3] 16
  • 14. Operações aritméticas e funções podem ser aplicadas a todo um vetor. Ex. X = c(1,3,5) Y = c(10,20,30) X+Y 11 23 35 sum(X) 9  E X + 100 ? 101 103 105 pela Lei da reciclagem 17
  • 15.  Quando o tamanho pedido por uma operação é diferente dos dados disponíveis, os dados existentes são repetidos até completar o necessário.  Como X tem 3 elementos, X+100 é o mesmo que X + c(100,100,100) 18
  • 16. > X = 1:10 > [1] 1 2 3 4 5 6 7 8 9 10 > X = seq(0,1,by=0.1) > [1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 > rep(“a”,5) > “a” “a” “a” “a” “a” > nomes = c("fulano", "beltrano", "cicrano") > nomes [1] "fulano" "beltrano" "cicrano" > letras = letters[1:5] > letras [1] "a" "b" "c" "d" "e" > letras = LETTERS[1:5] > letras [1] "A" "B" "C" "D" "E" 19
  • 17. numeric  integer  is.numeric( )  is.integer( )  as.numeric( )  as.integer( )  character  logical  is.character( )  T == TRUE == 1  as.character( )  F == FALSE == 0 A == B significa “A é igual a B?” 20
  • 18. Vetor organizado em linhas e colunas m1 <- matrix(1:12, ncol = 3) [,1] [,2] [,3] [1,] 1 5 9 [2,] 2 6 10 [3,] 3 7 11 [4,] 4 8 12 21
  • 19.  length(m1)  [1] 12  dim(m1)  [1] 4 3  nrow(m1)  [1] 4  ncol(m1)  [1] 3 22
  • 20.  m1[1, 2]  [1] 5  m1[2, 2]  [1] 6  m1[ , 2]  [1] 5 6 7 8  m1[3, ] m1[1,2]= 99  [1] 3 7 11 muda o valor da célula 23
  • 21. m1[1:2, 2:3] [,1] [,2] [1,] 5 9 [2,] 6 10 24
  • 23. “matriz” com várias dimensões. Ex. com 3 dim.: ar1 <- array(1:24, dim = c(3, 4, 2)) , , 1 1ª matriz [,1] [,2] [,3] [,4] [1,] 1 4 7 10 [2,] 2 5 8 11 [3,] 3 6 9 12 Para um array de 3 dimensões, você pode entender a 3ª , , 2 dimensão como uma coleção de matrizes. [,1] [,2] [,3] [,4] [1,] 13 16 19 22 [2,] 14 17 20 23 2ª matriz [3,] 15 18 21 24 26
  • 24. Como trabalhar com coisas assim? Ano Código do Órgão UF Órgão Código da UO unidade orçamentária função subfunção programa ação localizador descrição da ação valor P&D valor ACTC Adm direta e MODERNIZAÇÃO DO SISTEMA DE 2010 AC 1 indireta 1 Adm direta e indireta 19 121 2056 1548 PLANEJAMENTO E GESTÃO DA SDCT R$ - R$ 16.655,00 PROGRAMA DE COOPERAÇÃO TÉCNICA E Adm FINANCEIRA COM INSTIT. NAC. INTERN. direta e GOVERNAMENTAIS E NÃO 2010 AC 1 indireta 1 Adm direta e indireta 19 121 2056 1549 GOVERNAMENTAIS R$ - R$ 715.000,00 Adm direta e MANUTENÇÃO DO GABINETE DO SECRETÁ 2010 AC 1 indireta 1 Adm direta e indireta 19 122 2009 2224 RIO R$ - R$ 27.732,11 Adm direta e 2010 AC 1 indireta 1 Adm direta e indireta 19 122 2009 2227 DEPARTAMENTO DE GESTÃO INTERNA R$ - R$ 2.266.169,90 27
  • 25. colnames(d) [1] "letra" "num" "valor"  Cada coluna tem o seu tipo d = data.frame(letters[1:4], 1:4, 10.5) letters.1.4. X1.4 X10.5 1 a 1 10.5 Na maior parte do 2 b 2 10.5 tempo usaremos 3 c 3 10.5 data.frames 4 d 4 10.5  Podemos mudar o nome das colunas: colnames(d) = c("letra","num", "valor") colnames(d) [1] "letra" "num" "valor“ d$valor # seleciona a coluna “valor” de d 28
  • 26. lista  fator veremos depois... 29
  • 27. Diversas fontes.  Veremos:  Teclado x = scan( )  Arquivos Excel  Arquivos CSV  Bancos de Dados SQL 30
  • 28. require(XLConnect) wb <- loadWorkbook(“AC_PDACTCaula.xls”) plan1 <- readWorksheet(wb, sheet = 1) str(plan1) View(plan1) 31
  • 29. require(XLConnect)  Carrega o pacote XLConnect  Pacotes são conjuntos de funções e dados que adicionam funcionalidades ao R.  Se o pacote não estiver instalado: setInternet2() #somente no windows install.packages("XLConnect", dep=T) 32
  • 30. Cria um objeto “wb” que aponta para o arquivo excel: wb <- loadWorkbook(“AC_PDACTCaula.xls”) 33
  • 31. Carrega os dados da primeira planilha (“aba”) em um objeto chamado “plan1” plan1 <- readWorksheet(wb, sheet = 1) As funções no R identificam os parâmetros As funções no R identificam os pela ordem parâmetros pela Ou utilizando o nome do ordem parâmetro 34
  • 32. Mostra a estrutura do objeto criado: str(plan1) str() funciona para qualquer objeto do R. É muito útil.  Mostra os dados carregados em uma janela: View(plan1) No RStudio, você pode clicar em um objeto na lista de objetos 35
  • 33. args(readWorksheet) #mostra parâmetros function ( object, #o workbook “wb” sheet, #número ou nome da “aba”/planilha startRow, #linha inicial da importação startCol, #col. inicial da importação endRow, #linha final da importação endCol, #col. final da importação header # T ou F: usar primeira linha para dar nome às colunas ) 36
  • 34.  Comma-separated values: valores separados por vírgula  Formato de arquivo muito comum para troca de dados  ; São comuns outros separadores: <tab> <espaço>  Exemplo: uf ano valido somaactc somapd AC 2009 1 34296430.67 3630841.04 AC 2010 1 29397712.04 3579715.12 AL 2009 1 12650160.51 8903714.41 37
  • 35. Exemplo: uf ano valido somaactc somapd AC 2009 1 34296430,67 3630841,04 AC 2010 1 29397712,04 3579715,12 AL 2009 1 12650160,51 8903714,41  Para ler este arquivo: d = read.csv(file="AgregaUF20110930_b.txt", header=T, # usa primeira linha como cabeçalho sep="t", # separador de valores é <tab> dec="," # separador decimal é vírgula ) 38
  • 36. str(d) #estrutura criada  summary(d) #resumo estatístico  head(d) #primeiros registros  tail(d) #últimos registros  plot(d) #visualização padrão 39
  • 37. require(RODBC) canal <- odbcConnect( “base_ODBC", case="tolower“, uid=“usuário”, pwd=“senha”) d <- sqlQuery(canal, ”select * from tabela where ano = 2010”, as.is=T) 40
  • 38. Como fazer a soma de uma coluna de um data.frame? sum(data.frame$coluna) sum(d$somapd) [1] NA 41
  • 39. NA Not Available  denota dados faltantes. Note que deve utilizar maiúsculas.  NaN Not a Number  denota um valor que não é representável por um número.  Inf e -Inf  mais ou menos infinito. Tente: c(-1,0,1)/0 42
  • 40. Soma: sum(d$somapd, na.rm=T) [1] 4836882446  Média: sum(d$somapd, na.rm=T)  Mediana: median(d$somapd, na.rm=T)  Desvio padrão: sd(d$somapd, na.rm=T) 43
  • 41. Para estes exemplos: milsa = read.csv("milsaText.txt", sep="t", head=T, dec=".") 44
  • 42.  Frequências absolutas table(milsa$civil)  Frequências relativas table(milsa$civil) / length(milsa$civil) ou prop.table(milsa$civil)  Gráfico de setores pie(table(milsa$civil)) 45
  • 43.  Com attach(milsa)  Frequências absolutas table(civil)  Frequências relativas table(civil) / length(civil) ou prop.table(civil)  Gráfico de setores depois: detach(milsa) pie(table(civil)) 46
  • 44.  Gráfico de barras: barplot(table(instrucao))  Lembrando:  Posso salvar resultados como objetos e usá-los várias vezes instrucao.tb = table(instrucao) barplot(instrucao.tb ) pie(instrucao.tb ) 47
  • 45.  Tente: prop.table(filhos)  Solução: prop.table(table(filhos))  Outra solução:  Filtrar os elementos com NA 48
  • 46.  mean(filhos, na.rm=T) #média  median(filhos, na.rm=T) #mediana  range(filhos, na.rm=T) #amplitude  var(filhos, na.rm=T) #variância  sd(filhos, na.rm=T) #desvio padrão  Quartis:  filhos.quartis = quantile(filhos, na.rm=T)  Amplitude inter-quartis:  filhos.quartis [4] -filhos.quartis [1] 49
  • 47.  plot(milsa)  plot(salario ~ ano)  hist(salario)  boxplot(salario)  stem(salario) 50
  • 48. Selecionando algumas linhas  milsaNovo = milsa[c(1,3,5,6) , ]  Selecionando algumas colunas  milsaNovo = milsa[ , c(1,3,5)]  milsaNovo = milsa[ , c(“funcionario”, ”instrucao“, “salario”)]  Atenção:  Cria cópia  milsaNovo=milsa[c(1,3,5,6) ,]  Substitui anterior  milsa=milsa[c(1,3,5,6) , ] 51
  • 49.  Quem ganha acima da mediana  acimamediana = milsa[ salario > median(salario), ]  Quais são os casados com nível superior?  casadoEsuperior = milsa[ civil==“casado” & instrucao == “Superior”, ] E: ambas as condições devem ser verdadeiras 52
  • 50.  Quais são os casados ou quem tem nível superior?  casadoOUsuperior = milsa[ civil==“casado” | instrucao == “Superior”, ] OU: pelo menos uma das condições deve ser verdadeira 53
  • 51. NÃO  milsaLimpo=milsa[!is.na(salario), ]  Em português:  Nova tabela milsaLimpo  É igual =  Tabela antiga milsa  Selecione [  Linhas  Salário não é NA ! is.na(salario)  e todas as colunas , ] 54
  • 52. QUANTOS são os casados?  sum(civil==“casado”)  ou  table(civil)["casado"]  QUANTOS são os casados e tem nível superior?  sum(civil==“casado” & instrucao == “Superior” )  table(civil,instrucao)["casado", "Superior"] 55
  • 53.  milsaNovo é igual a milsa, sem as linhas 1,2 e 5 e sem as colunas 1 e 8: milsaNovo = milsa[-c(1,2,5), -c(1,8)] 56
  • 54. Quais linhas atendem à condição  sup = which(instrucao=="Superior“)  [1] 19 24 31 33 34 36  Posso usar depois:  mean(milsa[sup,”salario”])  Média salarial dos que tem nível superior vantagem: não cria cópia!! 57
  • 55. Uma amostra aleatória de 10 elementos de milsa:  amostra = sample(x=nrow(milsa),size=10)  [1] 12 29 1 3 17 14 26 33 20 31  Média salarial da amostra:  mean(milsa[amostra,”salario”]) 58
  • 56. Em ordem de número de filhos: milsa[order(filhos),]  Decrescente: milsa[order(filhos, decreasing=T),]  Em ordem de número de filhos e depois por idade: milsa[order(filhos,ano),]  Ver os 10 mais novos: head(milsa[order(ano),], 10)  Ver os 10 mais velhos: tail(milsa[order(ano),], 10) 59
  • 57.  Apagando um objeto  rm(milsaNovo) ls() : lista de  Apagando tudo objetos correntes  rm(list = ls()) 60
  • 58.  Objetos do tipo lista são coleções que podem conter objetos de tipos diferentes. lis = list(A=1:10, B=“Texto”, C = matrix(1:9,ncol=3)  São muito utilizadas na passagem de parâmetros para funções ou nos resultados de funções.  lis[1:2]  uma lista com os dois primeiros itens de lis (A e B)  lis[[1]]:  objeto armazenado na primeira posição da lista ( o conteúdo de A). O mesmo que lis$A 61
  • 59.  Para salvar todos os objetos: save.image(“arquivo.RData”)  Para salvar alguns objetos: save( x, y, file=“arquivo.RData”)  Carregando: load(“arquivo.RData“) Vários “load”: os objetos com nomes distintos se acumulam 62
  • 60.  Salvar um script “.R” que reproduza os passos feitos.  Vantagem: Além de servir de documentação da criação da base, incorpora alterações na base, se houver.  Modelo híbrido:  Resultados intermediários que requerem muito tempo processamento pode ser salvos em imagem. Ex. agregação de dados de empregados por empresa 63
  • 61. Criando uma coluna em um data.frame: milsa$idade = milsa$ano + milsa$mes/12 64
  • 62. X Y 6+3+5=14 65
  • 63. X Y 66
  • 64. X Y 67
  • 65. X Y 68
  • 66. X Y 69
  • 67. Exemplo: com 70
  • 68. Registros com correspondência : merge(x=milsa, y=tabInst,by.x="instrucao", by.y="desc“, all=F) Todos os registros da tabela X: merge(x=milsa, y=tabInst,by.x="instrucao", by.y="desc", all.x=T) 71
  • 69. Todos os registros da tabela y: merge(x=milsa, y=tabInst,by.x="instrucao", by.y="desc", all.y=T) Todos os registros das tabela x e y: merge(x=milsa, y=tabInst,by.x="instrucao", by.y="desc", all=T) 72
  • 70. De texto para número d.f$novaColuna = as.numeric(d.f$coluna)  De número para texto: d.f$novaColuna=as.character(d.f$coluna)  De texto ou número para inteiro: d.f$novaColuna = as.integer(d.f$coluna) Inteiros economizam memória 73
  • 71. Representação de variáveis qualitativas  Nominais ▪ “casado”, “solteiro”  Ordinais Fatores economizam memória ▪ “alto”, “baixo”  Economizam espaço de memória  Tratamento apropriado para este tipo de variável pelas funções do R 74
  • 72. Nominal: milsa$fatorcivil=factor(milsa$civil, ordered=F) $fatorcivil : Factor w/ 2 levels "casado","solteiro": 2 1 1 2 2 1 2 2 1 2 Ordinal: milsa$fatormes = factor(milsa$mes, ordered=T) $fatormes : Ord.factor w/ 12 levels "0"<"1"<"2"<"3"<..: 4 11 6 11 8 1 1 5 11 7 ... É possível definir uma ordem específica: ?factor 75
  • 73.  De fator para texto: d.f$novaColuna = as.character(d.f$colunaFator)  De fator para número: d.f$novaColuna = as.numeric( as.character(d.f$colunaFator)) A representação interna de um fator é diferente do seu texto 76
  • 74. Para: m1 <- matrix(1:12, ncol = 3)  Soma das colunas (um valor para cada coluna): colSums(m1) [1] 10 26 42  Ou apply(m1,2,sum) [1] 10 26 42 77
  • 75. Soma das linhas (um valor para cada linha): rowSums(m1) [1] 15 18 21 24  Ou apply(m1,1,sum) [1] 15 18 21 24 Posso usar qualquer função. Até próprias 78
  • 76. aggregate(salario ~ instrucao, data = milsa, mean) instrucao salario 1 1oGrau 7.836667 2 2oGrau 11.528333 3 Superior 16.475000 79
  • 77. aggregate( salario ~ instrucao + civil, data = milsa, mean) instrucao civil salario 1 1oGrau casado 7.044000 2 2oGrau casado 12.825000 3 Superior casado 17.783333 4 1oGrau solteiro 8.402857 5 2oGrau solteiro 8.935000 6 Superior solteiro 15.166667 80
  • 78. modelo = lm( formula = salario ~ ano + instrucao, data = milsa) summary(modelo) É uma linha mesmo!!! 81