###############################################################
# dplyr tem 5 commandos básicos para manipular data.frames
#
# filter -- selecionar observações (linhas do data.frame)
# select -- selecionar variáveis (colunas do data.frame)
# mutate -- criar novas variáveis no data.frame
# arrange -- ordenar observações
# group_by + summarize -- criar novas variáveis que sintetizam as atuais
#
# E com o pipe (%>%) pode-se fazer uma cadeia de comandos
###############################################################
library(dplyr)
##
## Attaching package: 'dplyr'
##
## The following objects are masked from 'package:stats':
##
## filter, lag
##
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
# data.frame D vai conter dados de fecund. para os 5564 municip. no censo de 2010
url = 'http://ufrn.schmert.net/dados/munic2010.csv'
D = read.csv(url, stringsAsFactors = FALSE)
head(D)
## X id munic sigla reg meso
## 1 1 1100015 Alta Floresta D'Oeste RO Norte Leste Rondoniense
## 2 2 1100023 Ariquemes RO Norte Leste Rondoniense
## 3 3 1100031 Cabixi RO Norte Leste Rondoniense
## 4 4 1100049 Cacoal RO Norte Leste Rondoniense
## 5 5 1100056 Cerejeiras RO Norte Leste Rondoniense
## 6 6 1100064 Colorado do Oeste RO Norte Leste Rondoniense
## micro Mu15 Mu20 Mu25 Mu30 Mu35 Mu40 Mu45 Cr15 Cr20 Cr25 Cr30
## 1 Cacoal 135 113 106 94 95 82 74 6 8 16 3
## 2 Ariquemes 500 472 439 402 363 325 254 42 59 44 18
## 3 Colorado do Oeste 31 23 28 23 22 23 21 3 5 3 2
## 4 Cacoal 425 412 365 354 321 295 248 21 50 41 14
## 5 Colorado do Oeste 93 83 75 70 69 66 57 3 10 5 5
## 6 Colorado do Oeste 97 87 86 75 74 63 60 8 4 10 5
## Cr35 Cr40 Cr45
## 1 3 0 0
## 2 11 2 0
## 3 0 0 0
## 4 6 1 0
## 5 1 1 0
## 6 3 1 0
##########
# filter #
##########
# só observações da mesoregião Norte Fluminense
filter(D, meso == 'Norte Fluminense')
## X id munic sigla reg meso
## 1 3188 3300936 Carapebus RJ Sudeste Norte Fluminense
## 2 3190 3301009 Campos dos Goytacazes RJ Sudeste Norte Fluminense
## 3 3192 3301157 Cardoso Moreira RJ Sudeste Norte Fluminense
## 4 3195 3301405 Conceição de Macabu RJ Sudeste Norte Fluminense
## 5 3210 3302403 Macaé RJ Sudeste Norte Fluminense
## 6 3235 3304151 Quissamã RJ Sudeste Norte Fluminense
## 7 3244 3304755 São Francisco de Itabapoana RJ Sudeste Norte Fluminense
## 8 3245 3304805 São Fidélis RJ Sudeste Norte Fluminense
## 9 3247 3305000 São João da Barra RJ Sudeste Norte Fluminense
## micro Mu15 Mu20 Mu25 Mu30 Mu35 Mu40 Mu45 Cr15 Cr20 Cr25
## 1 Macaé 61 58 59 56 56 51 48 4 6 6
## 2 Campos dos Goytacazes 2169 2060 2079 1969 1748 1758 1747 91 160 169
## 3 Campos dos Goytacazes 52 54 46 50 50 45 47 1 3 3
## 4 Macaé 103 90 83 85 79 85 77 16 10 10
## 5 Macaé 941 1044 1142 1009 834 766 732 55 94 88
## 6 Macaé 102 90 86 79 80 81 72 5 9 6
## 7 Campos dos Goytacazes 195 178 161 166 156 153 144 8 13 18
## 8 Campos dos Goytacazes 167 148 148 149 147 145 144 7 12 11
## 9 Campos dos Goytacazes 156 134 136 131 116 127 120 10 12 8
## Cr30 Cr35 Cr40 Cr45
## 1 4 2 1 0
## 2 109 59 17 4
## 3 5 0 1 0
## 4 6 2 0 0
## 5 53 28 14 1
## 6 5 1 1 0
## 7 8 2 0 1
## 8 9 4 2 0
## 9 8 3 1 0
# só observações do RN e microregião Serra de Santana
filter(D, sigla =='RN', micro == 'Serra de Santana')
## X id munic sigla reg meso
## 1 1092 2401651 Bodó RN Nordeste Central Potiguar
## 2 1104 2402709 Cerro Corá RN Nordeste Central Potiguar
## 3 1117 2403806 Florânia RN Nordeste Central Potiguar
## 4 1146 2406502 Lagoa Nova RN Nordeste Central Potiguar
## 5 1198 2411403 Santana do Matos RN Nordeste Central Potiguar
## 6 1216 2413003 São Vicente RN Nordeste Central Potiguar
## 7 1230 2414159 Tenente Laurentino Cruz RN Nordeste Central Potiguar
## micro Mu15 Mu20 Mu25 Mu30 Mu35 Mu40 Mu45 Cr15 Cr20 Cr25 Cr30
## 1 Serra de Santana 12 12 10 9 10 7 6 1 3 0 1
## 2 Serra de Santana 53 56 44 37 37 35 30 2 8 5 2
## 3 Serra de Santana 47 38 37 34 33 31 30 1 2 2 2
## 4 Serra de Santana 80 78 56 51 47 45 40 4 8 4 3
## 5 Serra de Santana 68 68 55 52 49 50 45 6 6 6 1
## 6 Serra de Santana 27 29 28 22 22 22 24 0 2 1 1
## 7 Serra de Santana 26 28 27 22 20 14 13 1 1 2 2
## Cr35 Cr40 Cr45
## 1 0 0 0
## 2 2 0 0
## 3 1 0 0
## 4 1 1 0
## 5 1 0 0
## 6 1 1 0
## 7 1 0 0
# só observações da microregião que contém Sem-Peixe MG
# e com com mais de que 50 mulheres 20-24
indice = which(D$munic == 'Sem-Peixe' & D$sigla == 'MG' )
filter(D, micro == micro[indice], Mu20 > 50)
## X id munic sigla reg meso micro Mu15 Mu20
## 1 2850 3152105 Ponte Nova MG Sudeste Zona da Mata Ponte Nova 262 248
## 2 2871 3154002 Raul Soares MG Sudeste Zona da Mata Ponte Nova 102 94
## 3 2882 3154903 Rio Casca MG Sudeste Zona da Mata Ponte Nova 68 60
## Mu25 Mu30 Mu35 Mu40 Mu45 Cr15 Cr20 Cr25 Cr30 Cr35 Cr40 Cr45
## 1 252 245 220 231 227 11 25 16 14 5 2 0
## 2 89 81 90 86 86 2 6 8 3 4 0 1
## 3 58 59 47 49 49 4 4 3 4 0 0 0
##########
# select #
##########
# só as colunas munic, sigla, Mu20, e Cr20
tmp = select(D, munic, sigla, Mu20, Cr20)
head(tmp)
## munic sigla Mu20 Cr20
## 1 Alta Floresta D'Oeste RO 113 8
## 2 Ariquemes RO 472 59
## 3 Cabixi RO 23 5
## 4 Cacoal RO 412 50
## 5 Cerejeiras RO 83 10
## 6 Colorado do Oeste RO 87 4
# todas as colunas MENOS meso, micro, e CrXX
tmp = select(D, -meso, -micro, -contains('Cr'))
head(tmp)
## X id munic sigla reg Mu15 Mu20 Mu25 Mu30 Mu35
## 1 1 1100015 Alta Floresta D'Oeste RO Norte 135 113 106 94 95
## 2 2 1100023 Ariquemes RO Norte 500 472 439 402 363
## 3 3 1100031 Cabixi RO Norte 31 23 28 23 22
## 4 4 1100049 Cacoal RO Norte 425 412 365 354 321
## 5 5 1100056 Cerejeiras RO Norte 93 83 75 70 69
## 6 6 1100064 Colorado do Oeste RO Norte 97 87 86 75 74
## Mu40 Mu45
## 1 82 74
## 2 325 254
## 3 23 21
## 4 295 248
## 5 66 57
## 6 63 60
##########
# mutate #
##########
# soma de Mulheres e Crianças recem-nascidas
tmp = mutate(D, Mu = Mu15+Mu20+Mu25+Mu30+Mu35+Mu40+Mu45,
Cr = Cr15+Cr20+Cr25+Cr30+Cr35+Cr40+Cr45,
ZeroNasc = (Cr == 0))
head(tmp)
## X id munic sigla reg meso
## 1 1 1100015 Alta Floresta D'Oeste RO Norte Leste Rondoniense
## 2 2 1100023 Ariquemes RO Norte Leste Rondoniense
## 3 3 1100031 Cabixi RO Norte Leste Rondoniense
## 4 4 1100049 Cacoal RO Norte Leste Rondoniense
## 5 5 1100056 Cerejeiras RO Norte Leste Rondoniense
## 6 6 1100064 Colorado do Oeste RO Norte Leste Rondoniense
## micro Mu15 Mu20 Mu25 Mu30 Mu35 Mu40 Mu45 Cr15 Cr20 Cr25 Cr30
## 1 Cacoal 135 113 106 94 95 82 74 6 8 16 3
## 2 Ariquemes 500 472 439 402 363 325 254 42 59 44 18
## 3 Colorado do Oeste 31 23 28 23 22 23 21 3 5 3 2
## 4 Cacoal 425 412 365 354 321 295 248 21 50 41 14
## 5 Colorado do Oeste 93 83 75 70 69 66 57 3 10 5 5
## 6 Colorado do Oeste 97 87 86 75 74 63 60 8 4 10 5
## Cr35 Cr40 Cr45 Mu Cr ZeroNasc
## 1 3 0 0 699 36 FALSE
## 2 11 2 0 2755 176 FALSE
## 3 0 0 0 171 13 FALSE
## 4 6 1 0 2420 133 FALSE
## 5 1 1 0 513 25 FALSE
## 6 3 1 0 542 31 FALSE
# quais municip. não tiveram nemhum nascimento registrado?
filter(tmp, ZeroNasc == TRUE)
## X id munic sigla reg
## 1 2284 3103801 Arapuá MG Sudeste
## 2 2446 3118502 Consolação MG Sudeste
## 3 3003 3164803 São Sebastião do Rio Preto MG Sudeste
## 4 3017 3165800 Senador José Bento MG Sudeste
## 5 3304 3503356 Arco-Íris SP Sudeste
## 6 3347 3507209 Borá SP Sudeste
## 7 3445 3515657 Fernão SP Sudeste
## 8 3677 3536570 Paulistânia SP Sudeste
## 9 3817 3549300 São João do Pau d'Alho SP Sudeste
## 10 3885 3555307 Turmalina SP Sudeste
## 11 4136 4116307 Munhoz de Melo PR Sul
## 12 4234 4123600 Santa Inês PR Sul
## 13 4507 4213153 Planalto Alegre SC Sul
## 14 4563 4217154 São Miguel da Boa Vista SC Sul
## 15 4767 4308052 Faxinalzinho RS Sul
## 16 4832 4311270 Lagoa dos Três Cantos RS Sul
## 17 4858 4312351 Montauri RS Sul
## 18 4869 4312625 Muliterno RS Sul
## 19 4903 4314035 Pareci Novo RS Sul
## 20 4935 4315172 Protásio Alves RS Sul
## 21 4979 4317756 Santo Antônio do Planalto RS Sul
## 22 5067 4322186 Tupanci do Sul RS Sul
## 23 5073 4322350 União da Serra RS Sul
## 24 5094 4323606 Vista Alegre do Prata RS Sul
## 25 5187 5101209 Araguainha MT Centro-Oeste
## 26 5285 5107297 São José do Povo MT Centro-Oeste
## 27 5450 5212253 Lagoa Santa GO Centro-Oeste
## meso micro Mu15 Mu20
## 1 Triângulo Mineiro/Alto Paranaíba Patos de Minas 12 7
## 2 Sul/Sudoeste de Minas Itajubá 8 6
## 3 Metropolitana de Belo Horizonte Conceição do Mato Dentro 6 5
## 4 Sul/Sudoeste de Minas Pouso Alegre 7 4
## 5 Marília Tupã 8 8
## 6 Assis Assis 3 2
## 7 Marília Marília 5 7
## 8 Bauru Bauru 7 6
## 9 Presidente Prudente Dracena 8 7
## 10 São José do Rio Preto Fernandópolis 10 6
## 11 Norte Central Paranaense Astorga 19 13
## 12 Norte Central Paranaense Astorga 8 6
## 13 Oeste Catarinense Chapecó 12 10
## 14 Oeste Catarinense Chapecó 9 6
## 15 Noroeste Rio-grandense Erechim 13 8
## 16 Noroeste Rio-grandense Não-Me-Toque 6 6
## 17 Nordeste Rio-grandense Guaporé 5 5
## 18 Noroeste Rio-grandense Passo Fundo 9 8
## 19 Metropolitana de Porto Alegre Montenegro 15 15
## 20 Nordeste Rio-grandense Guaporé 7 6
## 21 Noroeste Rio-grandense Carazinho 7 8
## 22 Noroeste Rio-grandense Sananduva 6 4
## 23 Nordeste Rio-grandense Guaporé 5 4
## 24 Nordeste Rio-grandense Guaporé 5 4
## 25 Sudeste Mato-grossense Tesouro 4 2
## 26 Sudeste Mato-grossense Rondonópolis 15 12
## 27 Sul Goiano Quirinópolis 5 5
## Mu25 Mu30 Mu35 Mu40 Mu45 Cr15 Cr20 Cr25 Cr30 Cr35 Cr40 Cr45 Mu Cr
## 1 9 10 13 12 10 0 0 0 0 0 0 0 73 0
## 2 5 6 5 6 6 0 0 0 0 0 0 0 42 0
## 3 5 6 7 6 6 0 0 0 0 0 0 0 41 0
## 4 5 7 7 7 7 0 0 0 0 0 0 0 44 0
## 5 8 7 6 8 6 0 0 0 0 0 0 0 51 0
## 6 4 4 2 3 4 0 0 0 0 0 0 0 22 0
## 7 6 5 6 6 5 0 0 0 0 0 0 0 40 0
## 8 7 7 7 7 5 0 0 0 0 0 0 0 46 0
## 9 7 7 8 8 7 0 0 0 0 0 0 0 52 0
## 10 5 5 8 8 10 0 0 0 0 0 0 0 52 0
## 11 12 11 15 15 15 0 0 0 0 0 0 0 100 0
## 12 6 7 7 8 8 0 0 0 0 0 0 0 50 0
## 13 9 7 9 10 12 0 0 0 0 0 0 0 69 0
## 14 5 5 6 6 9 0 0 0 0 0 0 0 46 0
## 15 8 8 9 9 10 0 0 0 0 0 0 0 65 0
## 16 6 5 5 6 7 0 0 0 0 0 0 0 41 0
## 17 4 3 6 5 6 0 0 0 0 0 0 0 34 0
## 18 7 4 6 6 8 0 0 0 0 0 0 0 48 0
## 19 13 13 12 13 15 0 0 0 0 0 0 0 96 0
## 20 5 6 6 10 7 0 0 0 0 0 0 0 47 0
## 21 7 7 6 9 9 0 0 0 0 0 0 0 53 0
## 22 3 4 6 7 7 0 0 0 0 0 0 0 37 0
## 23 3 2 4 5 5 0 0 0 0 0 0 0 28 0
## 24 4 5 4 6 6 0 0 0 0 0 0 0 34 0
## 25 4 5 5 6 3 0 0 0 0 0 0 0 29 0
## 26 11 12 14 12 12 0 0 0 0 0 0 0 88 0
## 27 5 6 4 5 6 0 0 0 0 0 0 0 36 0
## ZeroNasc
## 1 TRUE
## 2 TRUE
## 3 TRUE
## 4 TRUE
## 5 TRUE
## 6 TRUE
## 7 TRUE
## 8 TRUE
## 9 TRUE
## 10 TRUE
## 11 TRUE
## 12 TRUE
## 13 TRUE
## 14 TRUE
## 15 TRUE
## 16 TRUE
## 17 TRUE
## 18 TRUE
## 19 TRUE
## 20 TRUE
## 21 TRUE
## 22 TRUE
## 23 TRUE
## 24 TRUE
## 25 TRUE
## 26 TRUE
## 27 TRUE
###########
# arrange #
###########
tmp = filter(D, meso == 'Norte Fluminense')
tmp = mutate(tmp, Mu = Mu15+Mu20+Mu25+Mu30+Mu35+Mu40+Mu45,
Cr = Cr15+Cr20+Cr25+Cr30+Cr35+Cr40+Cr45,
ZeroNasc = (Cr == 0))
tmp = arrange(tmp, Cr)
tmp
## X id munic sigla reg meso
## 1 3192 3301157 Cardoso Moreira RJ Sudeste Norte Fluminense
## 2 3188 3300936 Carapebus RJ Sudeste Norte Fluminense
## 3 3235 3304151 Quissamã RJ Sudeste Norte Fluminense
## 4 3247 3305000 São João da Barra RJ Sudeste Norte Fluminense
## 5 3195 3301405 Conceição de Macabu RJ Sudeste Norte Fluminense
## 6 3245 3304805 São Fidélis RJ Sudeste Norte Fluminense
## 7 3244 3304755 São Francisco de Itabapoana RJ Sudeste Norte Fluminense
## 8 3210 3302403 Macaé RJ Sudeste Norte Fluminense
## 9 3190 3301009 Campos dos Goytacazes RJ Sudeste Norte Fluminense
## micro Mu15 Mu20 Mu25 Mu30 Mu35 Mu40 Mu45 Cr15 Cr20 Cr25
## 1 Campos dos Goytacazes 52 54 46 50 50 45 47 1 3 3
## 2 Macaé 61 58 59 56 56 51 48 4 6 6
## 3 Macaé 102 90 86 79 80 81 72 5 9 6
## 4 Campos dos Goytacazes 156 134 136 131 116 127 120 10 12 8
## 5 Macaé 103 90 83 85 79 85 77 16 10 10
## 6 Campos dos Goytacazes 167 148 148 149 147 145 144 7 12 11
## 7 Campos dos Goytacazes 195 178 161 166 156 153 144 8 13 18
## 8 Macaé 941 1044 1142 1009 834 766 732 55 94 88
## 9 Campos dos Goytacazes 2169 2060 2079 1969 1748 1758 1747 91 160 169
## Cr30 Cr35 Cr40 Cr45 Mu Cr ZeroNasc
## 1 5 0 1 0 344 13 FALSE
## 2 4 2 1 0 389 23 FALSE
## 3 5 1 1 0 590 27 FALSE
## 4 8 3 1 0 920 42 FALSE
## 5 6 2 0 0 602 44 FALSE
## 6 9 4 2 0 1048 45 FALSE
## 7 8 2 0 1 1153 50 FALSE
## 8 53 28 14 1 6468 333 FALSE
## 9 109 59 17 4 13530 609 FALSE
select(tmp, id, munic, meso, Mu, Cr)
## id munic meso Mu Cr
## 1 3301157 Cardoso Moreira Norte Fluminense 344 13
## 2 3300936 Carapebus Norte Fluminense 389 23
## 3 3304151 Quissamã Norte Fluminense 590 27
## 4 3305000 São João da Barra Norte Fluminense 920 42
## 5 3301405 Conceição de Macabu Norte Fluminense 602 44
## 6 3304805 São Fidélis Norte Fluminense 1048 45
## 7 3304755 São Francisco de Itabapoana Norte Fluminense 1153 50
## 8 3302403 Macaé Norte Fluminense 6468 333
## 9 3301009 Campos dos Goytacazes Norte Fluminense 13530 609
########################
# summarize + group_by #
########################
# quantos mulheres na amostra de cada regiao
tmp = mutate(D, Mu = Mu15+Mu20+Mu25+Mu30+Mu35+Mu40+Mu45)
tmp = group_by(tmp, reg)
R = summarize(tmp, totalMulheres = sum(Mu))
arrange(R, totalMulheres)
## Source: local data frame [5 x 2]
##
## reg totalMulheres
## 1 Centro-Oeste 427234
## 2 Norte 453410
## 3 Sul 794615
## 4 Nordeste 1556141
## 5 Sudeste 2370997
arrange(R, -totalMulheres)
## Source: local data frame [5 x 2]
##
## reg totalMulheres
## 1 Sudeste 2370997
## 2 Nordeste 1556141
## 3 Sul 794615
## 4 Norte 453410
## 5 Centro-Oeste 427234
##############
# pipe (%>%) #
##############
## arranje os municípios da meso Norte Fluminense em ordem descendente de número de
## filhos recem-nasc., mostrando so o nome do munic, o nome da meso-reg, e o num. de Cr
D %>%
filter(meso == 'Norte Fluminense') %>%
mutate(Cr = Cr15+Cr20+Cr25+Cr30+Cr35+Cr40+Cr45) %>%
arrange( -Cr) %>%
select(munic, meso, Cr)
## munic meso Cr
## 1 Campos dos Goytacazes Norte Fluminense 609
## 2 Macaé Norte Fluminense 333
## 3 São Francisco de Itabapoana Norte Fluminense 50
## 4 São Fidélis Norte Fluminense 45
## 5 Conceição de Macabu Norte Fluminense 44
## 6 São João da Barra Norte Fluminense 42
## 7 Quissamã Norte Fluminense 27
## 8 Carapebus Norte Fluminense 23
## 9 Cardoso Moreira Norte Fluminense 13
## quais so os 15 municip. no RN com as menores amostras de mulheres 20-24 ?
## mostrando so a id, o nome do munic, e o num. de mulheres 20-24
D %>%
filter(sigla == 'RN') %>%
mutate( posicao = rank(Mu20)) %>%
filter( posicao <= 15) %>%
arrange(posicao) %>%
select(id, munic, Mu20)
## id munic Mu20
## 1 2414902 Viçosa 8
## 2 2409605 Pedra Preta 10
## 3 2410603 Rafael Godeiro 10
## 4 2413805 Taboleiro Grande 10
## 5 2414308 Timbaúba dos Batistas 10
## 6 2404804 Ipueira 11
## 7 2401651 Bodó 12
## 8 2405900 João Dias 12
## 9 2406403 Lagoa de Velhos 12
## 10 2410702 Riacho da Cruz 12
## 11 2403905 Francisco Dantas 13
## 12 2404101 Galinhos 13
## 13 2405504 Jardim de Angicos 13
## 14 2407906 Monte das Gameleiras 13
## 15 2409209 Passagem 13
## qual e a media das estimativas f20 = Cr20/Mu20 em cada estado?
D %>%
group_by(sigla) %>%
summarize( f20 = round( mean( Cr20/Mu20),3) ) %>%
arrange( -f20) %>%
print(n=27)
## Source: local data frame [27 x 2]
##
## sigla f20
## 1 AM 0.177
## 2 RR 0.171
## 3 AP 0.158
## 4 MA 0.156
## 5 PA 0.156
## 6 TO 0.150
## 7 AC 0.149
## 8 AL 0.133
## 9 RO 0.127
## 10 MT 0.124
## 11 PI 0.123
## 12 MS 0.118
## 13 PB 0.115
## 14 PE 0.112
## 15 GO 0.110
## 16 SE 0.110
## 17 BA 0.106
## 18 RN 0.105
## 19 CE 0.101
## 20 PR 0.097
## 21 MG 0.094
## 22 ES 0.093
## 23 RJ 0.091
## 24 SP 0.090
## 25 SC 0.085
## 26 DF 0.072
## 27 RS 0.071
## quantos mesoregioes, microregioes, e municipios tem cada regiao
## precisa-se colar a sigla da UF aos nomes para evitar nomes duplicados (e.g. Cruzeiro do Sul)
D %>%
group_by(reg) %>%
mutate( mesoUF = paste(meso,sigla),
microUF = paste(micro,sigla),
municUF = paste(munic,sigla)) %>%
summarize( nmeso = length(unique(mesoUF)),
nmicro = length(unique(microUF)),
nmunic = length(unique(municUF)))
## Source: local data frame [5 x 4]
##
## reg nmeso nmicro nmunic
## 1 Centro-Oeste 15 52 466
## 2 Nordeste 42 187 1792
## 3 Norte 20 64 449
## 4 Sudeste 37 160 1668
## 5 Sul 23 94 1188
## TFT por regiao
D %>%
group_by(reg) %>%
summarize( f15=sum(Cr15)/sum(Mu15),
f20=sum(Cr20)/sum(Mu20),
f25=sum(Cr25)/sum(Mu25),
f30=sum(Cr30)/sum(Mu30),
f35=sum(Cr35)/sum(Mu35),
f40=sum(Cr40)/sum(Mu40),
f45=sum(Cr45)/sum(Mu45),
TFT = 5*(f15+f20+f25+f30+f35+f40+f45) ) %>%
arrange( -TFT) %>%
select( reg, TFT)
## Source: local data frame [5 x 2]
##
## reg TFT
## 1 Norte 2.109211
## 2 Nordeste 1.787173
## 3 Centro-Oeste 1.702279
## 4 Sul 1.592045
## 5 Sudeste 1.511288
## TFT por estado (exatamente igual,
## mas com 'sigla' no lugar de 'reg' na 2a e na penúltima linha)
D %>%
group_by(sigla) %>%
summarize( f15=sum(Cr15)/sum(Mu15),
f20=sum(Cr20)/sum(Mu20),
f25=sum(Cr25)/sum(Mu25),
f30=sum(Cr30)/sum(Mu30),
f35=sum(Cr35)/sum(Mu35),
f40=sum(Cr40)/sum(Mu40),
f45=sum(Cr45)/sum(Mu45),
TFT = 5*(f15+f20+f25+f30+f35+f40+f45) ) %>%
arrange( -TFT) %>%
select( sigla, TFT) %>%
print(n=27)
## Source: local data frame [27 x 2]
##
## sigla TFT
## 1 AM 2.328853
## 2 AC 2.248735
## 3 AP 2.242333
## 4 RR 2.187072
## 5 PA 2.069671
## 6 MA 2.063338
## 7 AL 1.950379
## 8 TO 1.941437
## 9 MS 1.872545
## 10 PB 1.838033
## 11 RO 1.823385
## 12 PI 1.816709
## 13 SE 1.776951
## 14 MT 1.755695
## 15 PE 1.726782
## 16 BA 1.711589
## 17 CE 1.700009
## 18 RN 1.676062
## 19 GO 1.669669
## 20 PR 1.662086
## 21 ES 1.591996
## 22 SC 1.578171
## 23 DF 1.557278
## 24 MG 1.537955
## 25 RS 1.528809
## 26 SP 1.500902
## 27 RJ 1.486055