Bom dia Bruno

Me parece que suas 3 funções são idênticas.

Passa a variável “Ciro Gomes” como parâmetro para a consolida1(). Deve ter algum erro de digitação na consolida2().


daniel



Daniel Tiezzi, MD, PhD
Professor Associado
Departamento de Ginecologia e Obstetrícia
Setor de Mastologia e Oncologia Ginecológica
Faculdade de Medicina de Ribeirão Preto - USP
Tel.: 16 3602-2488
e-mail: dtiezzi@fmrp.usp.br



On 11 Jan 2019, at 09:16, Bruno César Pasquini por (R-br) <r-br@listas.c3sl.ufpr.br> wrote:

####### Codigo Reprodutivel...

library(data.table)

### Percentual de Votos Validos nos estados e no exterior...
perc_validos <- data.table(Regiao = c('Centro-Oeste', 'Centro-Oeste', 'Centro-Oeste', 'Centro-Oeste', 'Exterior', 'Nordeste', 'Nordeste', 'Nordeste', 'Nordeste', 'Nordeste', 'Nordeste', 'Nordeste', 'Nordeste', 'Nordeste', 'Norte', 'Norte', 'Norte', 'Norte', 'Norte', 'Norte', 'Norte', 'Sudeste', 'Sudeste', 'Sudeste', 'Sudeste', 'Sul', 'Sul', 'Sul'),
                           Estado = c('Distrito Federal', 'Goias', 'Mato Grosso', 'Mato Grosso do Sul', '', 'Alagoas', 'Bahia', 'Ceara', 'Maranhao', 'Paraiba', 'Pernambuco', 'Piaui', 'Rio Grande do Norte', 'Sergipe', 'Acre', 'Amapa', 'Amazonas', 'Para', 'Rondonia', 'Roraima', 'Tocantins', 'Espirito Santo', 'Minas Gerais', 'Rio de Janeiro', 'Sao Paulo', 'Parana', 'Rio Grande do Sul', 'Santa Catarina'),
                           Bolsonaro = c(0.5837, 0.5724, 0.6004, 0.5506, 0.5879, 0.3440, 0.2341, 0.2174, 0.2428, 0.3130, 0.3057, 0.1876, 0.3021, 0.2721, 0.6224, 0.4074, 0.4348, 0.3619, 0.6224, 0.6297, 0.4464, 0.5476, 0.4831, 0.5979, 0.5300, 0.5689, 0.5263, 0.6582),
                           Haddad = c(0.1187, 0.2186, 0.2476, 0.2387, 0.1010, 0.4475, 0.6028, 0.3312, 0.6126, 0.4546, 0.4887, 0.6340, 0.4119, 0.5009, 0.1853, 0.3277, 0.4030, 0.4139, 0.2036, 0.1785, 0.4112, 0.2420, 0.2765, 0.1469, 0.1642, 0.1970, 0.2281, 0.1513),
                           Ciro = c(0.1660, 0.0860, 0.0559, 0.0804, 0.1452, 0.1012, 0.0941, 0.4095, 0.0839, 0.1675, 0.1356, 0.1142, 0.2231, 0.1302, 0.0517, 0.1234, 0.0750, 0.1003, 0.0603, 0.0536, 0.0717, 0.0954, 0.1164, 0.1522, 0.1135, 0.0831, 0.1137, 0.0668),
                           Outros = c(0.1316, 0.1230, 0.0961, 0.1304, 0.1659, 0.1072, 0.0690, 0.0419, 0.0606, 0.0650, 0.0700, 0.0642, 0.0631, 0.0967, 0.1405, 0.1417, 0.0873, 0.1237, 0.1739, 0.1383, 0.0707, 0.1149, 0.1241, 0.1030, 0.1922, 0.1510, 0.1318, 0.1236)
                           )
### Analisando o data.table perc_validos...
perc_validos; class(perc_validos); str(perc_validos); dim(perc_validos)

### Total de Votos Validos por regiao e no exterior...
votos_regiao <- data.table(Regiao = c('Centro-Oeste', 'Exterior', 'Nordeste', 'Norte', 'Sudeste', 'Sul'),
                           'Jair Bolsonaro' = c(4555415, 113690, 7453186, 3785038, 23915925, 9453736),
                           'Fernando Haddad' = c(1642054, 19540, 14583334, 3211002, 8623232, 3262843),
                           'Ciro Gomes' = c(750776, 28073, 4892961, 748170, 5425104, 1499282),
                           'Demais Candidatos' = c(952142, 32078, 1894092, 982103, 6968773, 2258047)
                           )
### Analisando o data.table votos_regiao...
votos_regiao; class(votos_regiao); str(votos_regiao); dim(votos_regiao)

### Fazendo o cruzamento... Ou pelo menos tentando...
consolida1 <- function(Candidato) {
   temporario <- merge(x = perc_validos,
                       y = votos_regiao[, .(Regiao,
                                            Candidato)],
                       by = "Regiao",
                       all.x = TRUE,
                       sort = TRUE)
   return(temporario)
}
consolida1(Candidato = "Jair Bolsonaro")

consolida2 <- function(Candidato) {
   temporario <- merge(x = perc_validos,
                       y = votos_regiao[, .(Regiao,
                                            substitute(Candidato))],
                       by = "Regiao",
                       all.x = TRUE,
                       sort = TRUE)
   return(temporario)
}
consolida2(Candidato = "Ciro Gomes")

consolida3 <- function(Candidato) {
   temporario <- merge(x = perc_validos,
                       y = votos_regiao[, .(Regiao,
                                            eval(Candidato))],
                       by = "Regiao",
                       all.x = TRUE,
                       sort = TRUE)
   return(temporario)
}
consolida3(Candidato = "Fernando Haddad")