
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@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@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)