
Bom, existe alguma forma mais elegante de fazer esta ordenação? Pode ser por fator e população ou fator, região e população. Tentei sem sucesso com. dados[order(dados$fator,dados$pop2007, decreasing=T),] dput(dados) structure(list(fator = structure(c(2L, 10L, 12L, 5L, 6L, 8L, 11L, 9L, 13L, 1L, 7L, 3L, 4L), .Label = c("Campinas", "Feira de Santana", "Guarulhos", "Jaboatão" , "Niterói" , "Nova Iguaçu" , "Osasco", "Recife", "Rio de Janeiro", "Salvador", "Santo André" , "São Paulo" , "Sorocaba"), class = "factor"), região = structure(c(1L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L), .Label = c(" NE", " SE"), class = "factor"), estado = structure(c(1L, 1L, 5L, 3L, 3L, 2L, 4L, 3L, 4L, 4L, 4L, 4L, 2L), .Label = c(" BA", " PE", " RJ", " SP", " SP "), class = "factor"), pop2007 = c(544113L, 2714119L, 11104712L, 476669L, 858150L, 1528970L, 676846L, 6178762L, 590846L, 1073020L, 724368L, 1289047L, 661901L)), .Names = c("fator", "região", "estado", "pop2007"), class = "data.frame", row.names = c(NA, -13L)) dados[order(dados$estado,dados$pop2007,decreasing=T),] fator região estado pop2007 9 Sorocaba SE SP 590846 3 São Paulo SE SP 11104712 7 Santo André SE SP 676846 2 Salvador NE BA 2714119 8 Rio de Janeiro SE RJ 6178762 6 Recife NE PE 1528970 11 Osasco SE SP 724368 5 Nova Iguaçu SE RJ 858150 4 Niterói SE RJ 476669 13 Jaboatão NE PE 661901 12 Guarulhos SE SP 1289047 1 Feira de Santana NE BA 544113 10 Campinas SE SP 1073020 André Oliveira Souza. Graduação em Matemática, mestrado em estatística aplicada.Instituto Federal de Educação, Ciência e Tecnologia do Espirito Santo. IFES

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.

Obrigado walmes Enviado do Yahoo Mail no Android De:"Walmes Zeviani" <walmeszeviani@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.

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[1] Em Qua 5 ago. 2015, às 07:06, Andre Oliveira escreveu:
Obrigado walmes
Enviado do Yahoo Mail no Android[2]
*De*:"Walmes Zeviani" <walmeszeviani@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@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.
Links: 1. http://lattes.cnpq.br/9234772336296638 2. https://overview.mail.yahoo.com/mobile/?.src=Android

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

Daniel,arrange é função da dplyr ou da plyr?obrigado André Oliveira Souza. Graduação em Matemática, mestrado em estatística aplicada.Instituto Federal de Educação, Ciência e Tecnologia do Espirito Santo. IFES Em Quinta-feira, 6 de Agosto de 2015 9:06, Daniel Marcelino <dmsilva.br@gmail.com> escreveu: 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 pop20071 Salvador NE BA 27141192 Feira de Santana NE BA 5441133 Recife NE PE 15289704 Jaboatão NE PE 6619015 Rio de Janeiro SE RJ 61787626 Nova Iguaçu SE RJ 8581507 Niterói SE RJ 4766698 Guarulhos SE SP 12890479 Campinas SE SP 107302010 Osasco SE SP 72436811 Santo André SE SP 67684612 Sorocaba SE SP 59084613 São Paulo SE SP 11104712 2015-08-05 9:57 GMT-03:00 Leonardo Ferreira Fontenelle <leonardof@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 Em Qua 5 ago. 2015, às 07:06, Andre Oliveira escreveu: | Obrigado walmes Enviado do Yahoo Mail no Android | De:"Walmes Zeviani" <walmeszeviani@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@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@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@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.

A fução arrange está disponível nos dois pacotes. Mas recomendo usar o dplyr pois as funções do dplyr tendem a ser mais rápidas e genéricas(fonte: https://github.com/hadley/dplyr) 2015-08-10 12:37 GMT-03:00 Andre Oliveira <andreolsouza@yahoo.com.br>:
Daniel, arrange é função da dplyr ou da plyr? obrigado
André Oliveira Souza. Graduação em Matemática, mestrado em estatística aplicada.Instituto Federal de Educação, Ciência e Tecnologia do Espirito Santo. IFES
Em Quinta-feira, 6 de Agosto de 2015 9:06, Daniel Marcelino < dmsilva.br@gmail.com> escreveu:
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@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@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@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@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@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@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.
participantes (5)
-
Andre Oliveira
-
Daniel Marcelino
-
Leonardo Ferreira Fontenelle
-
Thiago Serafim
-
Walmes Zeviani