<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EstiloDeEmail17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 3.0cm 70.85pt 3.0cm;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=PT-BR link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Boa tarde a todos<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Surgiu uma dúvida conceitual aqui:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Eu tenho um data.frame que precisa unir com vários outros, além de fazer várias transformações. Estou utilizando a seguinte sequencia para fazer tudo<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>bhz.data <-<o:p></o:p></p><p class=MsoNormal>  read_csv2(<o:p></o:p></p><p class=MsoNormal>    "Belo Horizonte 20161027.csv",<o:p></o:p></p><p class=MsoNormal>    col_types=colunas) %>%<o:p></o:p></p><p class=MsoNormal>  filter(Filtro == 1 & Filtro.Votar==1) %>%<o:p></o:p></p><p class=MsoNormal>  <span lang=EN-US>select(-Filtro, -Filtro.Votar) %>%<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>  left_join(label.Sexo,by=c("Sexo"="value")) %>% select(-Sexo) %>%<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>  left_join(label.Faixa.Idade, by=c("Faixa.Idade"="value")) %>% select(-Faixa.Idade) %>%<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>  left_join(label.Renda, by=c("Renda"="value")) %>% select(-Renda) %>%<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>  left_join(label.classe, by=c("Renda.Classe"="value")) %>% select(-Renda.Classe) %>%<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>  </span>left_join(label.Escolaridade, by=c("Escolaridade"="value")) %>% select(-Escolaridade) %>%<o:p></o:p></p><p class=MsoNormal>  <span lang=EN-US>left_join(label.Etinia, by=c('Etinia'="value")) %>% select(-Etinia) %>%<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>  left_join(label.Religião, by=c("Religião"="value")) %>% select(-Religião) %>%<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>  </span>left_join(label.Trabalha, by=c("Trabalha"="value")) %>% select(-Trabalha) %>%<o:p></o:p></p><p class=MsoNormal><span lang=EN-US>mutate(Area.1 = ifelse(is.na(Area.1),0,Area.1), Area.2 = ifelse(is.na(Area.2),0,Area.2),<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>         Area.3 = ifelse(is.na(Area.3),0,Area.3)) %>%<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>  mutate(area.Educação =<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>           ifelse(Area.1 == 1,1,0) + ifelse(Area.2 == 1,1,0) + ifelse(Area.3 == 1,1,0),<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>         area.Habitação =<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>           ifelse(Area.1 == 2,1,0) + ifelse(Area.2 == 2,1,0) + ifelse(Area.3 == 2,1,0),<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>         area.Limpeza =<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>           ifelse(Area.1 == 3,1,0) + ifelse(Area.2 == 3,1,0) + ifelse(Area.3 == 3,1,0),<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>         area.Obras.Mobilidade =<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>           ifelse(Area.1 == 4,1,0) + ifelse(Area.2 == 4,1,0) + ifelse(Area.3 == 4,1,0),<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>         area.Obras.Pavimentação =<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>           ifelse(Area.1 == 5,1,0) + ifelse(Area.2 == 5,1,0) + ifelse(Area.3 == 5,1,0),<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>         area.Saneamento =<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>           ifelse(Area.1 == 6,1,0) + ifelse(Area.2 == 6,1,0) + ifelse(Area.3 == 6,1,0),<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>         area.Saúde =<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>           ifelse(Area.1 == 7,1,0) + ifelse(Area.2 == 7,1,0) + ifelse(Area.3 == 7,1,0),<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>         area.Transpoorte =<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>           ifelse(Area.1 == 8,1,0) + ifelse(Area.2 == 8,1,0) + ifelse(Area.3 == 8,1,0),<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>         area.Conservação =<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>           ifelse(Area.1 == 9,1,0) + ifelse(Area.2 == 9,1,0) + ifelse(Area.3 == 9,1,0),<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>         area.Acessibilidade =<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>           ifelse(Area.1 == 10,1,0) + ifelse(Area.2 == 10,1,0) + ifelse(Area.3 == 10,1,0),<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>         area.Combate.Mosquito =<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>           ifelse(Area.1 == 11,1,0) + ifelse(Area.2 == 11,1,0) + ifelse(Area.3 == 11,1,0),<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>         area.MeioAmbiente =<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>           ifelse(Area.1 == 12,1,0) + ifelse(Area.2 == 12,1,0) + ifelse(Area.3 == 12,1,0),<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>         area.Social =<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>           ifelse(Area.1 == 13,1,0) + ifelse(Area.2 == 13,1,0) + ifelse(Area.3 == 13,1,0),<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>         area.Esporte.Lazer =<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>           ifelse(Area.1 == 14,1,0) + ifelse(Area.2 == 14,1,0) + ifelse(Area.3 == 14,1,0),<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>         area.Geração.Empregos =<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>           ifelse(Area.1 == 15,1,0) + ifelse(Area.2 == 15,1,0) + ifelse(Area.3 == 15,1,0)) %>%<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>  </span>select(-Area.1, -Area.2, -Area.3)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>A questão é a seguinte:<o:p></o:p></p><p class=MsoNormal>No caso da variável área, que é recodificada de 3 para 15 variáveis, quando eu substituo esta sequencia enorme de mutate por um within, as variáveis ficam em uma ordem diferente da que eu preciso. A questão é: como deixar o código mais limpo nesta situação, visto que esta alternativa funciona, mas parece ser meio gambiarra?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Leonard<o:p></o:p></p></div></body></html>