Para começar a entender como classificar corretamente os quadros de dados em R
, que, claro, deve primeiro gerar um quadro de dados para manipular.Nota: O espaçamento não é necessário, mas melhora a legibilidade.,
Execução de nosso run.R
script gera a lista de vetores em nosso quadro de dados conforme o esperado, na ordem em que foram inseridos:
$ Rscript run.R x y z1 apple a 42 orange d 33 banana b 24 strawberry c 1
A Função de Ordem
apesar de não ser talvez o mais fácil método de ordenação para digitar em termos de sintaxe, o que é mais prontamente disponível para todas as instalações de R
, devido a ser uma parte de base
módulo, é o order
função.,
a função order
aceita uma série de argumentos, mas no nível mais simples o primeiro argumento deve ser uma sequência de valores ou vetores lógicos.,
Por exemplo, podemos usar order()
simplesmente para ordenar um vetor de cinco aleatoriamente ordenados de números com este script:
# Create unordered vectorvector = c(2, 5, 1, 3, 4)# Print vectorvector# Sort in ascending ordervector
Executar o script, nós vemos a inicial com a saída desordenada vetor, seguido pelo agora lista ordenada depois:
$ Rscript run.R 2 5 1 3 4 1 2 3 4 5
Classificação de um Quadro de Dados pelo Nome do Vetor
Com o order()
função em nossa ferramenta de cinto, vamos começar a ordenar o nosso quadro de dados, passando o vetor de nomes dentro do quadro de dados.,
Por exemplo, usando o nosso gerado anteriormente dataframe
objeto, podemos classificar o vetor z
adicionando o seguinte código para o nosso script:
# Sort by vector name dataframe
o Que estamos efetivamente fazendo é chamar a nossa original dataframe
objeto, e passando o novo índice, a fim de que nós gostaríamos de ter., Esta ordem de índice é gerada usando a função with()
, que efetivamente cria um novo ambiente usando os dados passados no primeiro argumento, juntamente com uma expressão para avaliar esses dados no segundo argumento.
Assim, estamos reavaliando o dataframe
dados usando o order()
função, e nós queremos a ordem, com base z
vetor dentro do quadro de dados., Isto devolve uma nova ordem de índice para os valores dos quadros de dados, que é então finalmente avaliada dentro do id
, expondo o nosso novo resultado ordenado.
$ Rscript run.R x y z1 apple a 42 orange d 33 banana b 24 strawberry c 1 x y z4 strawberry c 13 banana b 22 orange d 31 apple a 4
consequentemente, vemos a nossa saída original não ordenada, seguida de uma segunda saída com os dados ordenados pela coluna z
.
ordenação por Índice de coluna
semelhante ao método acima, também é possível ordenar com base no numéricoindex
de uma coluna no quadro de dados, em vez do nome específico.,
em vez de usar a funçãowith()
, podemos simplesmente passar a função order()
para a nossa função dataframe
. Indicamos que queremos classificar pela coluna de índice 1
utilizando a tag dataframe
sintaxe, o que faz com que R
para retornar a níveis (nomes) de que o índice 1
coluna., Em outras palavras, semelhante a quando passamos z
nome do vetor acima, order
é a classificação com base no vetor de valores que estão na coluna de índice 1
:
dataframe ),]
Conforme o esperado, temos o nosso resultado normal seguido de classificados de saída na primeira coluna:
$ Rscript run.R x y z1 apple a 42 orange d 33 banana b 24 strawberry c 1 x y z1 apple a 43 banana b 22 orange d 34 strawberry c 1
Ordenar por Várias Colunas
Em alguns casos, ele pode ser desejado para classificar por várias colunas. Felizmente, fazê-lo é muito simples com os métodos descritos anteriormente.,
Para classificar várias colunas usando o vetor de nomes, basta adicionar argumentos adicionais para o order()
chamada de função, como antes:
# Sort by vector name then dataframe
da mesma forma, para classificar por várias colunas com base no índice de coluna, adicionar argumentos adicionais para order()
com diferentes índices:
# Sort by column index then dataframe, dataframe ),]
Deixe uma resposta