[R-br] Ordenar vetor Y por fator X

Daniel Marcelino dmsilva.br em gmail.com
Quinta Agosto 6 09:05:14 BRT 2015


​O Walmes e o Leonardo já mencionaram dois pacotes plyr e data.table como
opção. Eu tenho usado o dplyr como a seguir. Note que a função arrange
permite especificar a direção do ordenamento. No exemplo, eu ordenei de
forma crescente a coluna "estado" e depois a coluna pop2007 de forma
decrescente.


> data %>% arrange(estado, desc(pop2007))
              fator região estado  pop2007
1          Salvador     NE     BA  2714119
2  Feira de Santana     NE     BA   544113
3            Recife     NE     PE  1528970
4          Jaboatão     NE     PE   661901
5    Rio de Janeiro     SE     RJ  6178762
6       Nova Iguaçu     SE     RJ   858150
7           Niterói     SE     RJ   476669
8         Guarulhos     SE     SP  1289047
9          Campinas     SE     SP  1073020
10           Osasco     SE     SP   724368
11      Santo André     SE     SP   676846
12         Sorocaba     SE     SP   590846
13        São Paulo     SE    SP  11104712  ​

2015-08-05 9:57 GMT-03:00 Leonardo Ferreira Fontenelle <
leonardof em leonardof.med.br>:

> Se meu problema fosse só o que você disse, eu ficaria com a primeira opção
> oferecida por Walmes.
>
> Esta opção é um pouco demais para seu problema, mas serve para tornar a
> resposta mais completa, e pode ajudar a resolver outros problemas.
>
> install.packages("data.table")
> library("data.table")
> dados <- data.table(dados, key = "pop2007")
> dados
>                fator região estado  pop2007
>  1:          Niterói     SE     RJ   476669
>  2: Feira de Santana     NE     BA   544113
>  3:         Sorocaba     SE     SP   590846
>  4:         Jaboatão     NE     PE   661901
>  5:      Santo André     SE     SP   676846
>  6:           Osasco     SE     SP   724368
>  7:      Nova Iguaçu     SE     RJ   858150
>  8:         Campinas     SE     SP  1073020
>  9:        Guarulhos     SE     SP  1289047
> 10:           Recife     NE     PE  1528970
> 11:         Salvador     NE     BA  2714119
> 12:   Rio de Janeiro     SE     RJ  6178762
> 13:        São Paulo     SE     SP 11104712
>
> As desvantagens deste método são a necessidade de instalar o pacote, e a
> impossibilidade (que eu saiba) de usar ordem decrescente. Uma data.table
> também é um data.frame, e pode ser usado como tal. Mas a data.table também
> pode ser usada com uma sintaxe que é mais enxuta, e é mais rápida.
>
> Att,
>
> Leonardo Ferreira Fontenelle <http://lattes.cnpq.br/9234772336296638>
>
>
> Em Qua 5 ago. 2015, às 07:06, Andre Oliveira escreveu:
>
> Obrigado walmes
>
>
> Enviado do Yahoo Mail no Android
> <https://overview.mail.yahoo.com/mobile/?.src=Android>
> ------------------------------
>
> *De*:"Walmes Zeviani" <walmeszeviani em gmail.com>
> *Data*:20:17 ter, 4 de ago de PM
> *Assunto*:Re: [R-br] Ordenar vetor Y por fator X
> iris[order(iris$Sepal.Length), ]
>
> require(plyr)
> arrange(iris, Sepal.Length)
>
> Sem dúvida que não está limitado a essas duas soluções. É que que se pode
> fazer de mais imediato. Google com "sorting data.frame in R" e derivações
> que vai dar mais opções.
>
> À disposição.
> Walmes.
>
> *_______________________________________________*
> 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20150806/70cc4e63/attachment.html>


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