Capítulo 15 Tabelas

# -----------------------------------------------------------------------------
# Tabelas
# -----------------------------------------------------------------------------
# tabelas simples
tabsimp = rep(c('Mulheres',
                 'Homens'),
               c(20, 12))
tabsimp
##  [1] "Mulheres" "Mulheres" "Mulheres" "Mulheres" "Mulheres"
##  [6] "Mulheres" "Mulheres" "Mulheres" "Mulheres" "Mulheres"
## [11] "Mulheres" "Mulheres" "Mulheres" "Mulheres" "Mulheres"
## [16] "Mulheres" "Mulheres" "Mulheres" "Mulheres" "Mulheres"
## [21] "Homens"   "Homens"   "Homens"   "Homens"   "Homens"  
## [26] "Homens"   "Homens"   "Homens"   "Homens"   "Homens"  
## [31] "Homens"   "Homens"
table(tabsimp)      # função para fazer a tabela dos dados
## tabsimp
##   Homens Mulheres 
##       12       20
prop.table(table(tabsimp)) # função para calcular a proporção dos objetos de uma tabela.
## tabsimp
##   Homens Mulheres 
##    0.375    0.625
ptabsimp = table(tabsimp)

ptabsimp
## tabsimp
##   Homens Mulheres 
##       12       20
prop.table(ptabsimp)
## tabsimp
##   Homens Mulheres 
##    0.375    0.625
sum(prop.table(ptabsimp))
## [1] 1
addmargins(table(tabsimp))
## tabsimp
##   Homens Mulheres      Sum 
##       12       20       32
# tabelas cruzadas

sexo = rep(c('Mulh', 'Hom'),
           c(23, 45))
fumante = c(rep(c('s',
                  'n'),
                c(10, 13)),
            rep(c('s', 'n'),
                c(23, 22)))

tabcr = data.frame(sexo,
                    fumante)
tabcr
##    sexo fumante
## 1  Mulh       s
## 2  Mulh       s
## 3  Mulh       s
## 4  Mulh       s
## 5  Mulh       s
## 6  Mulh       s
## 7  Mulh       s
## 8  Mulh       s
## 9  Mulh       s
## 10 Mulh       s
## 11 Mulh       n
## 12 Mulh       n
## 13 Mulh       n
## 14 Mulh       n
## 15 Mulh       n
## 16 Mulh       n
## 17 Mulh       n
## 18 Mulh       n
## 19 Mulh       n
## 20 Mulh       n
## 21 Mulh       n
## 22 Mulh       n
## 23 Mulh       n
## 24  Hom       s
## 25  Hom       s
## 26  Hom       s
## 27  Hom       s
## 28  Hom       s
## 29  Hom       s
## 30  Hom       s
## 31  Hom       s
## 32  Hom       s
## 33  Hom       s
## 34  Hom       s
## 35  Hom       s
## 36  Hom       s
## 37  Hom       s
## 38  Hom       s
## 39  Hom       s
## 40  Hom       s
## 41  Hom       s
## 42  Hom       s
## 43  Hom       s
## 44  Hom       s
## 45  Hom       s
## 46  Hom       s
## 47  Hom       n
## 48  Hom       n
## 49  Hom       n
## 50  Hom       n
## 51  Hom       n
## 52  Hom       n
## 53  Hom       n
## 54  Hom       n
## 55  Hom       n
## 56  Hom       n
## 57  Hom       n
## 58  Hom       n
## 59  Hom       n
## 60  Hom       n
## 61  Hom       n
## 62  Hom       n
## 63  Hom       n
## 64  Hom       n
## 65  Hom       n
## 66  Hom       n
## 67  Hom       n
## 68  Hom       n
table(tabcr)
##       fumante
## sexo    n  s
##   Hom  22 23
##   Mulh 13 10
prop.table(table(tabcr))  # E se eu quiser a linha como referência para as proporções??
##       fumante
## sexo           n         s
##   Hom  0.3235294 0.3382353
##   Mulh 0.1911765 0.1470588
prop.table(table(tabcr),
           margin = 1)
##       fumante
## sexo           n         s
##   Hom  0.4888889 0.5111111
##   Mulh 0.5652174 0.4347826
prop.table(table(tabcr),
           margin = 2)
##       fumante
## sexo           n         s
##   Hom  0.6285714 0.6969697
##   Mulh 0.3714286 0.3030303
addmargins(table(tabcr))
##       fumante
## sexo    n  s Sum
##   Hom  22 23  45
##   Mulh 13 10  23
##   Sum  35 33  68
addmargins(table(tabcr),
           FUN = mean)
## Margins computed over dimensions
## in the following order:
## 1: sexo
## 2: fumante
##       fumante
## sexo      n    s mean
##   Hom  22.0 23.0 22.5
##   Mulh 13.0 10.0 11.5
##   mean 17.5 16.5 17.0
# tabelas multidimensionais
estadocivil = c(rep(c('solteiro',
                      'casado'),
                    c(17, 6)),
                rep(c('solteiro',
                      'casado'),
                    c(20, 25)))
tabmul = data.frame(estadocivil,
                     sexo,
                     fumante)
tabmul
##    estadocivil sexo fumante
## 1     solteiro Mulh       s
## 2     solteiro Mulh       s
## 3     solteiro Mulh       s
## 4     solteiro Mulh       s
## 5     solteiro Mulh       s
## 6     solteiro Mulh       s
## 7     solteiro Mulh       s
## 8     solteiro Mulh       s
## 9     solteiro Mulh       s
## 10    solteiro Mulh       s
## 11    solteiro Mulh       n
## 12    solteiro Mulh       n
## 13    solteiro Mulh       n
## 14    solteiro Mulh       n
## 15    solteiro Mulh       n
## 16    solteiro Mulh       n
## 17    solteiro Mulh       n
## 18      casado Mulh       n
## 19      casado Mulh       n
## 20      casado Mulh       n
## 21      casado Mulh       n
## 22      casado Mulh       n
## 23      casado Mulh       n
## 24    solteiro  Hom       s
## 25    solteiro  Hom       s
## 26    solteiro  Hom       s
## 27    solteiro  Hom       s
## 28    solteiro  Hom       s
## 29    solteiro  Hom       s
## 30    solteiro  Hom       s
## 31    solteiro  Hom       s
## 32    solteiro  Hom       s
## 33    solteiro  Hom       s
## 34    solteiro  Hom       s
## 35    solteiro  Hom       s
## 36    solteiro  Hom       s
## 37    solteiro  Hom       s
## 38    solteiro  Hom       s
## 39    solteiro  Hom       s
## 40    solteiro  Hom       s
## 41    solteiro  Hom       s
## 42    solteiro  Hom       s
## 43    solteiro  Hom       s
## 44      casado  Hom       s
## 45      casado  Hom       s
## 46      casado  Hom       s
## 47      casado  Hom       n
## 48      casado  Hom       n
## 49      casado  Hom       n
## 50      casado  Hom       n
## 51      casado  Hom       n
## 52      casado  Hom       n
## 53      casado  Hom       n
## 54      casado  Hom       n
## 55      casado  Hom       n
## 56      casado  Hom       n
## 57      casado  Hom       n
## 58      casado  Hom       n
## 59      casado  Hom       n
## 60      casado  Hom       n
## 61      casado  Hom       n
## 62      casado  Hom       n
## 63      casado  Hom       n
## 64      casado  Hom       n
## 65      casado  Hom       n
## 66      casado  Hom       n
## 67      casado  Hom       n
## 68      casado  Hom       n
with(tabmul,
     table(sexo,
           fumante,
           estadocivil))
## , , estadocivil = casado
## 
##       fumante
## sexo    n  s
##   Hom  22  3
##   Mulh  6  0
## 
## , , estadocivil = solteiro
## 
##       fumante
## sexo    n  s
##   Hom   0 20
##   Mulh  7 10
tabm = with(tabmul,
     table(sexo,
           fumante,
           estadocivil))

prop.table(tabm,
           margin=1)#Percebam que as proporções estão utilizando o total linha das duas dimensões. Não é isso que se deseja!
## , , estadocivil = casado
## 
##       fumante
## sexo            n          s
##   Hom  0.48888889 0.06666667
##   Mulh 0.26086957 0.00000000
## 
## , , estadocivil = solteiro
## 
##       fumante
## sexo            n          s
##   Hom  0.00000000 0.44444444
##   Mulh 0.30434783 0.43478261
prop.table(tabm[,,1],margin=1)
##       fumante
## sexo      n    s
##   Hom  0.88 0.12
##   Mulh 1.00 0.00
prop.table(tabm[,,2],margin=1)
##       fumante
## sexo           n         s
##   Hom  0.0000000 1.0000000
##   Mulh 0.4117647 0.5882353
prop.table(tabm,
           margin=2)#Idem ao exemplo acima!
## , , estadocivil = casado
## 
##       fumante
## sexo            n          s
##   Hom  0.62857143 0.09090909
##   Mulh 0.17142857 0.00000000
## 
## , , estadocivil = solteiro
## 
##       fumante
## sexo            n          s
##   Hom  0.00000000 0.60606061
##   Mulh 0.20000000 0.30303030
prop.table(tabm[,,1],margin=2)
##       fumante
## sexo           n         s
##   Hom  0.7857143 1.0000000
##   Mulh 0.2142857 0.0000000
prop.table(tabm[,,2],margin=2)
##       fumante
## sexo           n         s
##   Hom  0.0000000 0.6666667
##   Mulh 1.0000000 0.3333333
# Ou também utilizando a função ftable
with(tabmul,
     ftable(sexo,
            fumante,
            estadocivil))
##              estadocivil casado solteiro
## sexo fumante                            
## Hom  n                       22        0
##      s                        3       20
## Mulh n                        6        7
##      s                        0       10
tabf = with(tabmul,
             ftable(sexo,
                    fumante,
                    estadocivil))

prop.table(tabf,
           margin=1)
##              estadocivil    casado  solteiro
## sexo fumante                                
## Hom  n                   1.0000000 0.0000000
##      s                   0.1304348 0.8695652
## Mulh n                   0.4615385 0.5384615
##      s                   0.0000000 1.0000000
prop.table(tabf,
           margin=2)      
##              estadocivil     casado   solteiro
## sexo fumante                                  
## Hom  n                   0.70967742 0.00000000
##      s                   0.09677419 0.54054054
## Mulh n                   0.19354839 0.18918919
##      s                   0.00000000 0.27027027