Prof. Dr. Roberto Dantas de Pinho, roberto.pinho@mct.gov.br                             Este curso tomou como base materia...
 Um primeira              Salvando seu  sessão com o R            trabalho Objetos                  Manipulando Entra...
   Você pode usar o R para avaliar algumas    expressões aritméticas simples. Digite:    1 +   2 + 3    2 +   3 * 4    3/...
 O ambiente R permite que você envie  comandos e veja seus resultados  imediatamente A linguagem R é composta pelo conju...
   Um série de funções estão disponíveis. Alguns    exemplos simples:     sqrt(2)                      2     abs(-10)  ...
 Resultados, dados de entrada , tabelas, etc  são armazenados no R em Objetos Objetos possuem um nome, conteúdo , um  ti...
   Experimente:    X <- sqrt(2)                          <- e = são equivalentes.    Y = sin(pi)    Z = sqrt(X+Y)   Nos ...
   Qual o valor de C ao final da sequência de    comandos abaixo?    A   =   1    B   =   2    C   =   A + B    A   =   5...
12
   Ambiente que facilita o uso do R   Organiza as janelas de trabalho   Acesso facilitado aos objetos e histórico de   ...
Edição de Scripts eexibição de objetos           Console                      14
Lista de objetose históricoAjuda, gráficos,arquivos epacotes                   15
 Objeto que armazena múltiplos dados de um  único tipo A função c( ) (“c” de concatenar ou de  conjunto) permite agrupar...
   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 ...
 Quando o tamanho pedido por uma operação  é diferente dos dados disponíveis, os dados  existentes são repetidos até comp...
> 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...
   numeric                  integer     is.numeric( )            is.integer( )     as.numeric( )            as.integ...
   Vetor organizado em linhas e colunas    m1 <- matrix(1:12, ncol      = 3)          [,1]     [,2]          [,3]    [1,]...
 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...
m1[1:2, 2:3]   [,1]    [,2][1,]   5   9[2,]   6   10                  24
colnames(m1)NULLrownames(m1)NULLcolnames(m1) = c("C1","C2","C3")m1[,”C1”][1] 1 2 3 4     t(m1) transposta de m1           ...
   “matriz” com várias dimensões. Ex. com 3 dim.:ar1 <- array(1:24, dim = c(3, 4, 2)), , 1                               ...
     Como trabalhar com coisas assim?Ano Código do Órgão     UF           Órgão    Código da UO unidade orçamentária funç...
colnames(d) [1] "letra" "num" "valor"       Cada coluna tem o seu tipo    d = data.frame(letters[1:4],        1:4, 10.5) ...
   lista   fator            veremos depois...                            29
   Diversas fontes.   Veremos:     Teclado        x = scan( )     Arquivos Excel     Arquivos CSV     Bancos de Dado...
require(XLConnect)wb <- loadWorkbook(“AC_PDACTCaula.xls”)plan1 <- readWorksheet(wb, sheet = 1)str(plan1)View(plan1)       ...
require(XLConnect) Carrega o pacote XLConnect Pacotes são conjuntos de funções e dados  que adicionam funcionalidades ao...
   Cria um objeto “wb” que aponta para o    arquivo excel:wb <-  loadWorkbook(“AC_PDACTCaula.xls”)                       ...
   Carrega os dados da primeira planilha (“aba”)    em um objeto chamado “plan1”plan1 <- readWorksheet(wb, sheet = 1)As f...
   Mostra a estrutura do objeto criado:str(plan1)          str() funciona para qualquer                          objeto d...
args(readWorksheet) #mostra parâmetrosfunction (object,     #o workbook “wb”sheet,      #número ou nome da            “aba...
 Comma-separated values: valores separados por  vírgula Formato de arquivo muito comum para troca de  dados            ...
   Exemplo:uf    ano    valido     somaactc      somapdAC    2009   1          34296430,67   3630841,04AC    2010   1    ...
   str(d)       #estrutura criada   summary(d)   #resumo estatístico   head(d)      #primeiros registros   tail(d)    ...
require(RODBC)canal <- odbcConnect(“base_ODBC",case="tolower“,uid=“usuário”,pwd=“senha”)d <- sqlQuery(canal,”select * from...
   Como fazer a soma de uma coluna de um    data.frame?    sum(data.frame$coluna)    sum(d$somapd)    [1] NA             ...
   NA Not Available     denota dados faltantes. Note que deve utilizar      maiúsculas.   NaN Not a Number     denota ...
   Soma:    sum(d$somapd, na.rm=T)    [1] 4836882446   Média:sum(d$somapd, na.rm=T)   Mediana:median(d$somapd, na.rm=T)...
   Para estes exemplos:    milsa = read.csv("milsaText.txt",      sep="t", head=T, dec=".")                              ...
 Frequências absolutastable(milsa$civil) Frequências relativastable(milsa$civil) /     length(milsa$civil)    ouprop.tab...
 Com attach(milsa) Frequências absolutastable(civil) Frequências relativastable(civil) /     length(civil)    ouprop.ta...
 Gráfico de barras:barplot(table(instrucao)) Lembrando:     Posso salvar resultados como objetos e usá-los     várias v...
 Tente:prop.table(filhos) Solução:prop.table(table(filhos)) Outra solução:     Filtrar os elementos com NA            ...
 mean(filhos, na.rm=T)  #média     median(filhos, na.rm=T) #mediana     range(filhos, na.rm=T)   #amplitude     var(fi...
 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   milsaN...
 Quem ganha acima da mediana acimamediana = milsa[ salario >  median(salario), ] Quais são os casados com nível superio...
 Quais são os casados ou quem tem nível  superior? casadoOUsuperior = milsa[  civil==“casado” | instrucao ==  “Superior”...
NÃO   milsaLimpo=milsa[!is.na(salario), ]   Em português:   Nova tabela        milsaLimpo   É igual            =   Ta...
   QUANTOS são os casados?   sum(civil==“casado”)     ou   table(civil)["casado"]   QUANTOS são os casados e tem níve...
 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)]            ...
Quais linhas atendem à                                               condição sup = which(instrucao=="Superior“) [1] 19 ...
   Uma amostra aleatória de 10 elementos    de milsa:     amostra =      sample(x=nrow(milsa),size=10)     [1] 12 29 1 ...
   Em ordem de número de filhos:    milsa[order(filhos),]   Decrescente:    milsa[order(filhos, decreasing=T),]   Em or...
 Apagando um objeto  rm(milsaNovo)     ls() : lista de Apagando tudo    objetos correntes  rm(list = ls())            ...
 Objetos do tipo lista são coleções que podem conter  objetos de tipos diferentes.lis = list(A=1:10, B=“Texto”,          ...
 Para salvar todos os objetos:  save.image(“arquivo.RData”) Para salvar alguns objetos:  save( x, y,  file=“arquivo.RDat...
 Salvar um script “.R” que reproduza os passos  feitos. Vantagem: Além de servir de documentação da  criação da base, in...
   Criando uma coluna em um data.frame:    milsa$idade =      milsa$ano + milsa$mes/12                                   ...
X         Y6+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 ta...
Todos os registros da tabela y:merge(x=milsa,    y=tabInst,by.x="instrucao", by.y="desc",    all.y=T)Todos os registros ...
   De texto para númerod.f$novaColuna = as.numeric(d.f$coluna)   De número para texto:d.f$novaColuna=as.character(d.f$co...
   Representação de variáveis qualitativas     Nominais      ▪ “casado”, “solteiro”     Ordinais                 Fatore...
Nominal:milsa$fatorcivil=factor(milsa$civil, ordered=F)$fatorcivil : Factor w/ 2 levels  "casado","solteiro": 2 1 1 2 2 1 ...
 De fator para texto:d.f$novaColuna =  as.character(d.f$colunaFator) De fator para número:d.f$novaColuna =  as.numeric( ...
   Para:    m1 <- matrix(1:12, ncol = 3)   Soma das colunas (um valor para cada coluna):colSums(m1)[1] 10 26 42 Ouapply...
   Soma das linhas (um valor para cada linha):rowSums(m1)[1] 15 18 21 24   Ouapply(m1,1,sum)[1] 15 18 21 24        Posso...
aggregate(salario ~ instrucao,              data = milsa, mean)  instrucao   salario1    1oGrau 7.8366672    2oGrau 11.528...
aggregate(  salario ~ instrucao   + civil,               data =   milsa, mean)   instrucao    civil     salario1     1oGra...
modelo = lm( formula = salario ~ ano + instrucao, data = milsa)summary(modelo)                         É uma linha mesmo!!...
Upcoming SlideShare
Loading in...5
×

Curso Básico de R

2,064
-1

Published on

Curso básico de R preparado para o MCTI

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,064
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
56
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Curso Básico de R

  1. 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. 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. 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. 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. 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. 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. 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çõesNo R, sempre existem muitasformas de fazer a mesma coisa. Vamos focar sempre em uma. 10
  8. 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. 9. 12
  10. 10.  Ambiente que facilita o uso do R Organiza as janelas de trabalho Acesso facilitado aos objetos e histórico de comandos. 13
  11. 11. Edição de Scripts eexibição de objetos Console 14
  12. 12. Lista de objetose históricoAjuda, gráficos,arquivos epacotes 15
  13. 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. 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. 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. 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. 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. 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. 19.  length(m1) [1] 12 dim(m1) [1] 4 3 nrow(m1) [1] 4 ncol(m1) [1] 3 22
  20. 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. 21. m1[1:2, 2:3] [,1] [,2][1,] 5 9[2,] 6 10 24
  22. 22. colnames(m1)NULLrownames(m1)NULLcolnames(m1) = c("C1","C2","C3")m1[,”C1”][1] 1 2 3 4 t(m1) transposta de m1 25
  23. 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. 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 DE2010 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ÃO2010 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 e2010 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. 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. 26.  lista fator veremos depois... 29
  27. 27.  Diversas fontes. Veremos:  Teclado x = scan( )  Arquivos Excel  Arquivos CSV  Bancos de Dados SQL 30
  28. 28. require(XLConnect)wb <- loadWorkbook(“AC_PDACTCaula.xls”)plan1 <- readWorksheet(wb, sheet = 1)str(plan1)View(plan1) 31
  29. 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 windowsinstall.packages("XLConnect", dep=T) 32
  30. 30.  Cria um objeto “wb” que aponta para o arquivo excel:wb <- loadWorkbook(“AC_PDACTCaula.xls”) 33
  31. 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. 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. 33. args(readWorksheet) #mostra parâmetrosfunction (object, #o workbook “wb”sheet, #número ou nome da “aba”/planilhastartRow, #linha inicial da importaçãostartCol, #col. inicial da importaçãoendRow, #linha final da importaçãoendCol, #col. final da importaçãoheader # T ou F: usar primeira linha para dar nome às colunas ) 36
  34. 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 somapdAC 2009 1 34296430.67 3630841.04AC 2010 1 29397712.04 3579715.12AL 2009 1 12650160.51 8903714.41 37
  35. 35.  Exemplo:uf ano valido somaactc somapdAC 2009 1 34296430,67 3630841,04AC 2010 1 29397712,04 3579715,12AL 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. 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. 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. 38.  Como fazer a soma de uma coluna de um data.frame? sum(data.frame$coluna) sum(d$somapd) [1] NA 41
  39. 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. 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. 41.  Para estes exemplos: milsa = read.csv("milsaText.txt", sep="t", head=T, dec=".") 44
  42. 42.  Frequências absolutastable(milsa$civil) Frequências relativastable(milsa$civil) / length(milsa$civil) ouprop.table(milsa$civil) Gráfico de setorespie(table(milsa$civil)) 45
  43. 43.  Com attach(milsa) Frequências absolutastable(civil) Frequências relativastable(civil) / length(civil) ouprop.table(civil) Gráfico de setores depois: detach(milsa)pie(table(civil)) 46
  44. 44.  Gráfico de barras:barplot(table(instrucao)) Lembrando:  Posso salvar resultados como objetos e usá-los várias vezesinstrucao.tb = table(instrucao)barplot(instrucao.tb )pie(instrucao.tb ) 47
  45. 45.  Tente:prop.table(filhos) Solução:prop.table(table(filhos)) Outra solução:  Filtrar os elementos com NA 48
  46. 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. 47.  plot(milsa) plot(salario ~ ano) hist(salario) boxplot(salario) stem(salario) 50
  48. 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. 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. 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. 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. 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. 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. 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. 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. 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. 57.  Apagando um objeto  rm(milsaNovo) ls() : lista de Apagando tudo objetos correntes  rm(list = ls()) 60
  58. 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. 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. 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. 61.  Criando uma coluna em um data.frame: milsa$idade = milsa$ano + milsa$mes/12 64
  62. 62. X Y6+3+5=14 65
  63. 63. X Y 66
  64. 64. X Y 67
  65. 65. X Y 68
  66. 66. X Y 69
  67. 67.  Exemplo: com 70
  68. 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. 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. 70.  De texto para númerod.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. 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. 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 2Ordinal: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. 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. 74.  Para: m1 <- matrix(1:12, ncol = 3) Soma das colunas (um valor para cada coluna):colSums(m1)[1] 10 26 42 Ouapply(m1,2,sum)[1] 10 26 42 77
  75. 75.  Soma das linhas (um valor para cada linha):rowSums(m1)[1] 15 18 21 24 Ouapply(m1,1,sum)[1] 15 18 21 24 Posso usar qualquer função. Até próprias 78
  76. 76. aggregate(salario ~ instrucao, data = milsa, mean) instrucao salario1 1oGrau 7.8366672 2oGrau 11.5283333 Superior 16.475000 79
  77. 77. aggregate( salario ~ instrucao + civil, data = milsa, mean) instrucao civil salario1 1oGrau casado 7.0440002 2oGrau casado 12.8250003 Superior casado 17.7833334 1oGrau solteiro 8.4028575 2oGrau solteiro 8.9350006 Superior solteiro 15.166667 80
  78. 78. modelo = lm( formula = salario ~ ano + instrucao, data = milsa)summary(modelo) É uma linha mesmo!!! 81
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×