Como Classificar um Quadro de Dados por Várias Colunas em R

posted in: Articles | 0

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

O seu endereço de email não será publicado. Campos obrigatórios marcados com *