[R-br] RES: Dúvida para montar um agrupamento

Gustavo Carvalho gustavo.bio em gmail.com
Segunda Julho 11 18:20:24 BRT 2011


Bom, veja se é isso que quer:

teste <- read.table(textConnection("identificador,municipio,regiao,principal
1,SaoPaulo,1,Sim
1,Sorocaba,1,Sim
1,Sorocaba,1,Sim
1,Curitiba,2,Não
1,SaoPaulo,1,Sim
1,PortoAlegre,3,Não
1,Cuiaba,4,Não
2,SaoPaulo,1,Não
2,Sorocaba,1,Não
2,Curitiba,2,Sim
2,Curitiba,2,Sim
3,PortoAlegre,3,Sim
3,PortoAlegre,3,Sim
3,PortoAlegre,3,Sim
3,Sorocaba,1,Não
"), header = T, row.names = NULL, sep = ",")

bleh <- function(x) {
  id <- x[1,1]
  x <- x[x$principal == "Sim", ]
  a <- sort(c(table(x[, 2])), dec = T)
  a <- a[a == max(a)]
  data.frame(identificador = id, municipio = names(a), principal = a,
             stringsAsFactors = F, row.names = NULL)
}

do.call("rbind", by(teste, teste$identificador, FUN = bleh))

Abraços,

Gustavo.

2011/7/11 Clayton Santos Delfino <csd em arandanet.com.br>:
> Olá Fernando, boa tarde.
>
> Apliquei o código mas não funcionou.
>
> Eu preciso que ele agrupe por identificador tb mas de qualquer forma,
> Fico grato por sua ajuda e já estou estudando a função aggregate.
>
> Clayton
>
>
> -----Mensagem original-----
> De: r-br-bounces em listas.c3sl.ufpr.br [mailto:r-br-bounces em listas.c3sl.ufpr.br] Em nome de Fernando Mayer
> Enviada em: sexta-feira, 8 de julho de 2011 19:11
> Para: r-br em listas.c3sl.ufpr.br
> Assunto: Re: [R-br] Dúvida para montar um agrupamento
>
> Veja se eh isso (considerando que seus dados estao no objeto dados):
>
> with(subset(dados, principal == "Sim"), aggregate(regiao, list(municipio), max))
>
> []s,
>
>
> ---
> Fernando Mayer
> URL: http://sites.google.com/site/fernandomayer
> e-mail: fernandomayer [@] gmail.com
>
>
>
> 2011/7/8 Clayton Santos Delfino <csd em arandanet.com.br>:
>> Olá pessoal, boa noite.
>>
>> Fico feliz por ter encontrado uma lista de R em português pois estou
>> começando a aprender e tenho várias dúvidas e espero contar com a
>> preciosa ajuda de todos.
>>
>> Eu já consegui realizar algumas análises com R mas agora empaquei com
>> o
>> seguinte:
>>
>> tenho um data.frame com a seguinte estrutura:
>>
>> identificador   municipio       regiao  principal
>>
>> 1               Sao Paulo       1       Sim
>> 1               Sorocaba        1       Não
>> 1               Curitiba                2       Não
>> 1               Sao Paulo       1       Sim
>> 1               Porto Alegre    3       Não
>> 1               Cuiaba          4       Não
>> 2               Sao Paulo       1       Não
>> 2               Sorocaba        1       Não
>> 2               Curitiba                2       Sim
>> 2               Curitiba                2       Sim
>> 3               Porto Alegre    3       Sim
>> 3               Porto Alegre    3       Sim
>> 3               Porto Alegre    3       Sim
>> 3               Sorocaba        1       Não
>>
>> Eu o que eu estou tentando fazer e ainda não encontrei um meio seria
>> gerar uma tabela com uma linha para cada identificador onde somente o
>> municipio
>>
>> com maior frequencia, considerando-se "principal = Sim" fosse
>> retornado,
>> exemplo:
>>
>> identificador   Municipio       Principal (frequencia)
>>
>> 1               São Paulo       2
>> 2               Curitiba                2
>> 3               Porto Alegre    3
>>
>> Se alguem puder me ajudar agredeço desde já.
>>
>> Um abraço  a todos.
>>
>> Clayton
>>
>> _______________________________________________
>> R-br mailing list
>> R-br em listas.c3sl.ufpr.br
>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
>> código mínimo reproduzível.
>>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
>


Mais detalhes sobre a lista de discussão R-br