[R-br] Dúvida para montar um agrupamento
Benilton Carvalho
beniltoncarvalho em gmail.com
Sexta Julho 8 18:53:33 BRT 2011
suponha que o 'x' seja um data.frame que contenha os seus dados e q
'x' contenha as colunas como vc listou...
entao:
x[['principal']] = x[['principal']] == 'Sim'
tmp = aggregate(x[['principal']],
by=list(identificador=x[['identificador']],
municipio=x[['municipio']]), sum)
do.call(rbind, lapply(split(tmp, tmp[['identificador']]),
function(y){i = which.max(y[['x']]); y[i,]}))
eventualmente, alguem vira com uma solucao mais curta... enqto isso, a
acima resolve.
b
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.
>
--
Successful people ask better questions, and as a result, they get
better answers. (Tony Robbins)
Mais detalhes sobre a lista de discussão R-br