Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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,861 views

Published on

Curso básico de R preparado para o MCTI

Published in: Technology

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

×