Ordenando vetores com sort()
Ordene vetores numéricos e de caracteres em ordem crescente ou decrescente.
Ordenando vetores com sort() é uma aula grátis de R Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de R Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de R Academy inclui 4 aulas no total.
O que sort() faz?
A função sort() organiza os elementos de um vetor em ordem crescente por padrão. Ela funciona com vetores numéricos, de caracteres e lógicos, retornando um novo vetor ordenado sem modificar o original.
scores <- c(42, 7, 95, 13, 67, 31)
sorted_scores <- sort(scores)
print(sorted_scores)Ordenação em ordem decrescente
Passe decreasing = TRUE para sort() para inverter a ordem. Isso é útil para classificar resultados do maior para o menor, como pontuações de placares ou valores de vendas.
prices <- c(19.99, 5.49, 89.00, 34.50, 12.75)
sort(prices, decreasing = TRUE)Ordenação de vetores de caracteres
Vetores de caracteres são ordenados lexicograficamente (em ordem alfabética). R usa a localidade do sistema para definir a ordenação, portanto letras maiúsculas podem ser ordenadas antes de letras minúsculas, dependendo da configuração de localidade.
fruits <- c('banana', 'Apple', 'cherry', 'apricot', 'Blueberry')
sort(fruits)Comportamento da ordenação que diferencia maiúsculas de minúsculas
Na maioria das localidades, letras maiúsculas são ordenadas antes de letras minúsculas. Para ordenar sem diferenciar maiúsculas de minúsculas, converta primeiro para um mesmo formato usando tolower() ou toupper() antes de ordenar.
words <- c('Zebra', 'apple', 'Mango', 'banana')
# Case-sensitive (uppercase first)
sort(words)
# Case-insensitive approach
words[order(tolower(words))]Tratamento de valores NA com na.last
Por padrão, sort() remove valores NA. Use na.last = TRUE para colocar os NAs no final ou na.last = FALSE para colocá-los no início. Isso controla onde os valores ausentes ficam no resultado.
data <- c(5, NA, 2, NA, 8, 1)
# Default: NAs removed
sort(data)
# NAs at end
sort(data, na.last = TRUE)
# NAs at beginning
sort(data, na.last = FALSE)Ordenação de vetores lógicos
Na ordem crescente, vetores lógicos são ordenados com FALSE (0) antes de TRUE (1). Isso pode ser útil quando você quer agrupar valores TRUE/FALSE.
flags <- c(TRUE, FALSE, TRUE, FALSE, FALSE, TRUE)
sort(flags)
sort(flags, decreasing = TRUE)sort() preserva o tipo do vetor
sort() sempre retorna um vetor do mesmo tipo que a entrada. Ordenar inteiros retorna inteiros, doubles retornam doubles e caracteres retornam caracteres. O atributo de classe é preservado.
int_vec <- c(5L, 2L, 8L, 1L, 4L)
result <- sort(int_vec)
print(result)
print(class(result))
print(typeof(result))sort.int() para ordenação de inteiros
sort.int() é uma função de nível mais baixo, específica para ordenar vetores de inteiros ou doubles. Ela aceita os mesmos argumentos que sort(), mas é ligeiramente mais rápida para vetores numéricos grandes porque ignora parte do custo de despacho de métodos.
big_vec <- c(100L, 3L, 77L, 22L, 55L, 9L)
# sort.int works like sort for numeric/integer vectors
result <- sort.int(big_vec, decreasing = FALSE)
print(result)O vetor original não é alterado
Uma propriedade importante de sort(): ela não modifica o vetor original. Ela retorna um novo vetor ordenado. Você precisa atribuir o resultado se quiser manter a ordem ordenada.
temps <- c(22.5, 18.0, 30.1, 15.3, 27.8)
sorted_temps <- sort(temps)
cat('Original:', temps, '\n')
cat('Sorted: ', sorted_temps, '\n')Ordenação e indexação juntas
Às vezes você precisa tanto dos valores ordenados quanto das posições originais. Combine sort() com which() ou use order() (abordado na próxima lição) para obter os índices originais junto com os valores ordenados.
exam_scores <- c(78, 92, 65, 88, 71)
sorted <- sort(exam_scores)
cat('Sorted scores:', sorted, '\n')
# Find what rank each original score gets
ranks <- rank(exam_scores)
cat('Rank of each student:', ranks, '\n')Padrões práticos com sort()
Um padrão comum é ordenar valores únicos de um vetor ou obter os N maiores valores usando sort() combinado com head() ou tail().
sales <- c(120, 340, 95, 210, 340, 180, 95, 420)
# Unique values in order
sort(unique(sales))
# Top 3 largest
tail(sort(sales), 3)
# Bottom 3 smallest
head(sort(sales), 3)Verificação rápida
Qual argumento controla se os valores NA aparecem no início, no final ou são removidos ao usar sort()?
Principais conclusões sobre sort()
Principais conclusões sobre sort():
- Use
sort(x)para ordem crescente esort(x, decreasing=TRUE)para ordem decrescente - Vetores de caracteres são ordenados alfabeticamente; por padrão, maiúsculas e minúsculas fazem diferença
- Controle a posição dos NAs com
na.last = TRUE/FALSE/NA sort()não modifica o vetor original — sempre retorna um novo vetor- Use
tail(sort(x), n)ouhead(sort(x), n)para obter os N maiores ou menores valores sort.int()é uma variante mais rápida para vetores numéricos/inteiros
x <- c(3, 1, NA, 5, 2, NA, 4)
cat('Ascending (no NAs):', sort(x), '\n')
cat('Descending (NAs last):', sort(x, decreasing = TRUE, na.last = TRUE), '\n')Perguntas Frequentes
A aula “Ordenando vetores com sort()” é grátis?
Sim — o texto completo de “Ordenando vetores com sort()” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de R Academy, atualize para CoddyKit PRO. O curso de R Academy inclui 4 aulas no total.
O que vou aprender em “Ordenando vetores com sort()”?
Ordene vetores numéricos e de caracteres em ordem crescente ou decrescente. Você pratica R Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar R Academy?
Nenhuma experiência prévia é necessária. R Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Ordenando vetores com sort()”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de R Academy?
Sim. Cada aula de R Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Ordenando vetores com sort()
- order() para ordenação flexível
- Classificando valores com rank()
- Ordenando quadros de dados por coluna