[R-br] ordenar linhas, separar elementos e contar elementos

Manoel Nascimento manoelnascimento em gmail.com
Domingo Fevereiro 24 20:25:12 BRT 2013


Olá Augusto,

me desculpe por não enviar uma amostragem. Vai abaixo:

Municípios,População (2010),Ranking populacional,PIB 2006 (R$ 1.000),PIB
2007 (R$ 1.000),PIB 2008 (R$ 1.000),PIB 2009 (R$ 1.000),PIB 2010 (R$
1.000),Ranking PIB,PIB per capita (R$),Ranking PIB per capita
São Paulo -
SP,11.253.503,1º,282.892.455,323.154.666,356.980.045,389.284.929,443.600.102,1º,39.451,141º
Rio de Contas -
BA,13.007,2.462º,128.026.084,140.094.694,158.757.286,170.517.226,190.249.043,2º,3.970,5.075º
Brasília -
DF,2.570.160,4º,89.628.553,99.945.620,117.571.878,131.487.268,149.906.319,3º,24.569,484º
Curitiba -
PR,1.751.907,8º,32.182.599,38.124.861,43.354.307,45.741.463,53.106.497,4º,58.489,69º
Belo Horizonte -
MG,2.375.151,6º,32.473.102,38.285.100,42.255.583,44.729.413,51.661.760,5º,15.161,1.446º
Manari -
PE,18.083,1.831º,31.801.795,34.384.768,38.028.945,40.482.809,48.598.153,6º,21.748,646º
Porto Acre -
AC,14.880,2.184º,30.130.789,33.590.020,35.844.547,36.873.055,43.038.100,7º,8.111,3.230º
Guarulhos -
SP,1.221.979,13º,25.697.978,27.558.277,31.936.895,32.475.487,37.139.404,8º,30.400,282º
Fortaleza -
CE,2.452.185,5º,22.331.722,24.476.378,28.769.259,31.373.473,37.106.309,9º,6.193,3.742º
Salto Veloso -
SC,4.301,4.539º,24.139.423,26.772.417,29.393.081,33.131.342,36.744.670,10º,9.239,2.932º
Campinas -
SP,1.080.113,14º,23.629.697,26.767.620,29.303.152,31.653.414,36.688.629,11º,4.889,4.378º
Ortigueira -
PR,23.380,1.396º,17.798.886,24.619.373,30.067.523,31.617.716,36.389.080,12º,18.777,892º
São Bernardo do Campo -
SP,765.463,23º,20.566.795,25.164.098,29.981.271,28.935.628,35.578.586,13º,30.383,284º
Rebouças -
PR,14.176,2.280º,18.316.659,20.689.607,22.470.886,24.720.436,30.032.003,14º,33.940,203º
Betim -
MG,378.089,57º,18.807.187,21.522.757,25.281.114,24.974.495,28.297.360,15º,17.704,1.024º
Barueri -
SP,240.749,105º,25.570.470,26.076.920,27.143.412,26.909.802,27.752.428,16º,10.342,2.662º

Estas são algumas das primeiras linhas, pois trata-se de uma tabela CSV
com os 5.565 municípios brasileiros. A solução apresentada serve para
este tipo de dados?

[]'s
Manolo

Em 24-02-2013 20:02, Augusto Ribas escreveu:
> Ola, lembre-se de ler o guia de postagem, como eu não tenho muita
> ideia de como são seus dados, se fatores ou números, eu vou dar um
> exemplo do que imaginei, mas respostas melhores poderiam surgir se vc
> posta-se dados de exemplo.
>
>
> #Criando dados de exemplo, para as pessoas entenderem como são seus dados
> #Escolhendo uma semente para o exemplo ser reproduzivel
> > set.seed(123)
> >
> dados<-data.frame(cidades=sample(letters,10),pib=rnorm(10),hab=rpois(10,100))
>
> #exemplo dos dados, eu imagino que tudo são numeros, se são palavras,
> classes, tera que pensar de outra forma.
> > dados
>    cidades        pib hab
> 1        h  1.7150650 117
> 2        t  0.4609162 104
> 3        j -1.2650612  80
> 4        u -0.6868529  92
> 5        w -0.4456620  89
> 6        a  1.2240818  96
> 7        k  0.3598138  92
> 8        q  0.4007715 110
> 9        x  0.1106827  98
> 10       z -0.5558411  88
>
> #primeiro de uma olhada na função order ?order, mas vc pode usar ela
> para organiza numeros, por exemplo o pib assim
> > order(dados$pib)
>  [1]  3  4 10  5  9  7  8  2  6  1
>
> #veja que assim temos a ordem, como é a ordem descrecente, é usa usar
> o reverso, ou pode reverter a ordem direto pela função usando o
> argumento decreaseing
>
> > dados[rev(order(dados$pib)),]
>    cidades        pib hab
> 1        h  1.7150650 117
> 6        a  1.2240818  96
> 2        t  0.4609162 104
> 8        q  0.4007715 110
> 7        k  0.3598138  92
> 9        x  0.1106827  98
> 5        w -0.4456620  89
> 10       z -0.5558411  88
> 4        u -0.6868529  92
> 3        j -1.2650612  80
>
> #veja que a tabela ja esta no oderm do maior para o menor pib, agora
> como so queremos os 5 primeiro so usamos os 5 primeiros valores
> > dados[rev(order(dados$pib))[1:5],]
>   cidades       pib hab
> 1       h 1.7150650 117
> 6       a 1.2240818  96
> 2       t 0.4609162 104
> 8       q 0.4007715 110
> 7       k 0.3598138  92
>
> #Agora podemos colocar de alguma forma, aqui eu coloquei como um
> segundo conjunto de dados o que me interessa
> > dados2<-dados[rev(order(dados$pib))[1:5],]
> > dados2
>   cidades       pib hab
> 1       h 1.7150650 117
> 6       a 1.2240818  96
> 2       t 0.4609162 104
> 8       q 0.4007715 110
> 7       k 0.3598138  92
>
> #ai agora eu separei valores somente maiores de 100 para o numero de
> habitantes
> > dados2[dados2$hab>100,]
>   cidades       pib hab
> 1       h 1.7150650 117
> 2       t 0.4609162 104
> 8       q 0.4007715 110
>
> #e feito isso seria so contar o número de linhas
> > nrow(dados2[dados2$hab>100,])
> [1] 3
> >
>
>
> Isso é uma ideia, mas provavelmente existem mil maneiras de fazer isso
> no R.
> Mas lembre-se de sempre dar um exemplo de dados, para as pessoas
> poderem propor soluções mais eficases para voce.
>
> Espero ter ajudado
>
> []s
> Augusto Ribas
>
> Em 24 de fevereiro de 2013 16:28, Manoel Nascimento
> <manoelnascimento em gmail.com <mailto:manoelnascimento em gmail.com>> escreveu:
>
>     Olá!
>
>     Estou precisando fazer uma operação que deve ser supersimples, mas que
>     como bom novato em R não sei fazer sem me embananar todo.
>
>     Tenho uma tabela com as seguintes colunas:
>
>     Municípios    População..2010.    Ranking.populacional
>     PIB.2006..R..1.000.    PIB.2007..R..1.000.    PIB.2008..R..1.000.
>     PIB.2009..R..1.000.    PIB.2010..R..1.000.    Ranking.PIB
>     PIB.per.capita..R..    Ranking.PIB.per.capita
>
>     Ela mostra os municípios brasileiros, sua população em 2010, o ranking
>     populacional de cada município, seu PIB entre 2006 e 2010, seu ranking
>     de PIB, o PIB per capita e seu ranking de acordo com o PIB per capita.
>
>     As operações que preciso fazer são as seguintes:
>
>     a) Ordenar as cidades em ordem decrescente, do maior para o menor PIB;
>     b) Separar as mil cidades com maior PIB, e as mil cidades com
>     menor PIB;
>     c) Em cada um destes dois subconjuntos (cidades com maior PIB e
>     cidades
>     com menor PIB), contar quantas cidades há com mais e com menos de 100
>     mil habitantes.
>
>     Como faço isto?
>
>     []'s
>     Manolo
>     _______________________________________________
>     R-br mailing list
>     R-br em listas.c3sl.ufpr.br <mailto: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.
>
>
>
>
> -- 
> Grato
> Augusto C. A. Ribas
>  
> Site Pessoal: http://recologia.wordpress.com/
> Lattes: http://lattes.cnpq.br/7355685961127056
>
>
> _______________________________________________
> 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.

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130224/d901aff5/attachment.html>


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