[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