O R oferece uma maneira diferente de classificar os dados em ordem crescente ou decrescente. Os analistas e cientistas de dados usam order()
, sort()
e pacotes como dplyr
para classificar os dados, dependendo da estrutura dos dados obtidos.
order()
pode classificar vetores, matrizes e também um dataframe pode ser classificado em ordem crescente e decrescente com sua ajuda, o que é mostrado na seção final deste tutorial.
Sintaxe de order()
A sintaxe de order()
é mostrada abaixo:
order(x, decreasing = TRUE or FALSE, na.last = TRUE or FLASE, method = c("auto", "shell", "quick", "radix"))
O argumento acima, em order()
, afirma que você deve ter em mente que o argumento é o seguinte
- x: quadros de dados, matrizes ou vetores
- decreasing: valor booleano; TRUE significa classificar em ordem decrescente ou FALSE significa classificar em ordem crescente.
- na.last: valor booleano; TRUE significa que os índices NA são colocados por último ou FLASE significa que os índices NA são colocados primeiro.
- method: método de classificação a ser usado.
order()
in R
Vamos dar uma olhada em um exemplo de order()
em ação.
Abaixo, o código contém a variável x
, que inclui um vetor com uma lista de números. Os números são ordenados de acordo com seu índice usando order(x)
.
y = c(4,12,6,7,2,9,5)
order(y)
O código acima fornece o seguinte resultado:
5 1 7 3 4 6 2
Aqui, o order()
classificará os números fornecidos de acordo com seu índice em ordem crescente. Como o número 2 é o menor, o índice é cinco e o número 4 é o índice 1, da mesma forma, o processo segue o mesmo padrão.
y = c(4,12,6,7,2,9,5)
y[order(y)]
O código acima fornece o seguinte resultado:
2 4 5 6 7 9 12
Aqui, a indexação da ordem é feita quando os valores reais são impressos em ordem crescente. Os valores são ordenados de acordo com o índice usando order()
e, depois de cada valor acessado, usando y[some-value]
.
Vetor de classificação usando diferentes parâmetros em order()
Vejamos um exemplo em que os conjuntos de dados contêm o valor como símbolo NA(Não disponível).
order(x,na.last=TRUE)
x <- c(8,2,4,1,-4,NA,46,8,9,5,3)
order(x,na.last = TRUE)
O código acima fornece o seguinte resultado:
5 4 2 11 3 10 1 8 9 7 6
Aqui, o order()
também classificará a lista de números fornecida de acordo com seu índice em ordem crescente. Como NA está presente, seu índice será colocado em último lugar, sendo que 6 será colocado em último lugar por causa de na.last=TRUE
.
order(x,na.last=FALSE)
order(x,na.last=FALSE)
O código acima fornece o seguinte resultado:
6 5 4 2 11 3 10 1 8 9 7
Aqui, o order()
também classificará a lista de números fornecida de acordo com seu índice em ordem crescente. Como NA está presente, seu índice, que é 6, será colocado em primeiro lugar por causa de na.last=FALSE
.
order(x,decreasing=TRUE,na.last=TRUE)
order(x,decreasing=TRUE,na.last=TRUE)
O código acima fornece o seguinte resultado:
7 9 1 8 10 3 11 2 4 5 6
Aqui, order()
classificará uma determinada lista de números de acordo com seu índice em ordem decrescente devido a decreasing=TRUE
: 46. O maior é colocado no índice 7, e os outros valores são organizados de forma decrescente. Como NA está presente, o índice 6 será colocado em último lugar por causa de na.last=TRUE
.
order(x,decreasing=FALSE,na.last=FALSE)
order(x,decreasing=FALSE,na.last=FALSE)
O código acima fornece o seguinte resultado:
6 5 4 2 11 3 10 1 8 9 7
Aqui, NA está presente, cujo índice é 6, e será colocado em primeiro lugar por causa de na.last=FALSE
. order()
classificará uma determinada lista de números de acordo com seu índice em ordem crescente por causa de decreasing=FALSE
: -4, que é o menor colocado no índice 5, e os outros valores são organizados de forma crescente.
Comece a aprender R gratuitamente
Intermediário R
Classificando um quadro de dados usando order()
Vamos criar um dataframe em que o valor da população é 10. A variável gênero consiste em valores vetoriais "masculino" e "feminino", em que 10 valores de amostra podem ser obtidos com a ajuda de sample()
, enquanto replace = TRUE
gerará apenas os valores exclusivos. Da mesma forma, a idade consiste em um valor de 25 a 75, juntamente com um grau de valor possível como c("MA", "ME", "BE", "BSCS"), que novamente gerará valores exclusivos.
Tarefa: Para classificar os dados fornecidos em ordem crescente com base na idade da população fornecida.
Observação: Os dados de amostra mostrados podem ser diferentes quando você tenta usá-los em seu computador local, pois cada vez que um código é executado cria um quadro de dados exclusivo.
population = 10
gender=sample(c("male","female"),population,replace=TRUE)
age = sample(25:75, population, replace=TRUE)
degree = sample(c("MA","ME","BE","BSCS"), population, replace=TRUE)
(final.data = data.frame(gender=gender, age=age, degree=degree))
gênero | idade | grau |
---|---|---|
masculino | 40 | MA |
feminino | 57 | BSCS |
masculino | 66 | BE |
feminino | 61 | BSCS |
feminino | 48 | MA |
masculino | 25 | MA |
feminino | 49 | BE |
masculino | 52 | ME |
feminino | 57 | MA |
feminino | 35 | MA |
O código acima fornece o seguinte resultado, que mostra um dataframe recém-criado.
gender age degree
male 40 MA
female 57 BSCS
male 66 BE
female 61 BSCS
female 48 MA
male 25 MA
female 49 BE
male 52 ME
female 57 MA
female 35 MA
Vamos classificar o dataframe em ordem crescente usando order()
com base na variável idade.
order(final.data$age)
O código acima fornece o seguinte resultado:
6 10 3 9 5 8 4 2 7 1
Como a idade de 25 anos está no índice 6, seguida pela idade de 35 anos no índice 10 e, da mesma forma, todos os valores relacionados à idade são organizados em ordem crescente.
O código abaixo contém a ordem []
com a variável idade, é usado para organizar em ordem crescente onde o gênero, junto com as informações de graduação, também é impresso.
final.data[order(final.data$age),]
gênero | idade | grau | |
---|---|---|---|
6 | masculino | 25 | MA |
10 | feminino | 35 | MA |
1 | masculino | 40 | MA |
5 | feminino | 48 | MA |
7 | feminino | 49 | BE |
8 | masculino | 52 | ME |
2 | feminino | 57 | BSCS |
9 | feminino | 57 | MA |
4 | feminino | 61 | BSCS |
3 | masculino | 66 | BE |
O código acima fornece o seguinte resultado:
gender age degree
6 male 25 MA
10 female 35 MA
1 male 40 MA
5 female 48 MA
7 female 49 BE
8 male 52 ME
2 female 57 BSCS
9 female 57 MA
4 female 61 BSCS
3 male 66 BE
O resultado acima mostra que a idade é organizada em ordem crescente junto com o gênero correspondente e as informações sobre o grau são obtidas.
Parabéns a você
Parabéns, você chegou ao final deste tutorial!
Você aprendeu a classificar usando order()
com seu argumento com os exemplos e o vetor de classificação usando parâmetros diferentes e o exemplo final, que contém a classificação do dataframe.
Para saber mais detalhes sobre esse tópico, você pode visitar a função Order no R
Se você quiser saber mais sobre o R, faça o curso Introdução ao R do DataCamp.