Ordenar dataframe por una columna
# Cargar datos del dataframe
id <- c(1,2,3,4,5,6,7,8,9)
valor <- c(7,1,12,4,5,16,71,38,19)
categoria <- c(rep("bajo",3),rep("medio",3),rep("alto",3))
datos <- data.frame(id=id, valor=valor, categoria=categoria)
head(datos, n=9)
# id valor categoria
# 1 1 7 bajo
# 2 2 1 bajo
# 3 3 24 bajo
# 4 4 4 medio
# 5 5 5 medio
# 6 6 16 medio
# 7 7 71 alto
# 8 8 38 alto
# 9 9 19 alto
datos <- datos[with(datos, order(datos$id)), ] # Orden directo
datos
# id valor categoria
# 1 2 1 bajo
# 2 4 4 medio
# 3 5 5 medio
# 4 1 7 bajo
# 5 3 12 bajo
# 6 6 16 medio
# 7 9 19 alto
# 8 8 38 alto
# 9 7 71 alto
Ordenar dataframe por una columna en orden inverso
datos <- datos[with(datos, order(-datos$id)), ] # Orden inverso
datos
# id valor categoria
# 1 7 71 alto
# 2 8 38 alto
# 3 9 19 alto
# 4 6 16 medio
# 5 3 12 bajo
# 6 1 7 bajo
# 7 5 5 medio
# 8 4 4 medio
# 9 2 1 bajo
Ordenar dataframe por una columna (Forma Simple)
#install.packages("dplyr") # Instalar de manipulación de dataframes "dplyr"
library(dplyr) # Cargar la librería de manipulación de dataframes "dplyr"
datos <- arrange(datos, valor) # Orden directo
Ordenar dataframe por una columna en orden inverso (Forma Simple)
library(dplyr) # Cargar la librería de manipulación de dataframes "dplyr"
datos <- arrange(datos, -valor) # Orden inverso
Ordenar un solo vector
vector <- datos$id
vector <-sort(vector, decreasing=FALSE) # Orden directo
vector
## [1] 1 4 5 7 12 16 19 38 71
Ordenar un solo vector en orden inverso
vector <-sort(vector, decreasing=TRUE) # Orden inverso
vector
## [1] 71 38 19 16 12 7 5 4 1
El código fuente lo podeis encontrar en GitHub:
https://github.com/diegocalvobarreno/ejemplos-en-R/blob/master/Ordenar-datos-en-R.R
Una pequeña corrección: Creo que el comando es arrange, del paquete plyr. Le falta la n a arrage.
Saludos y muchas gracias por el blog.
Muchas gracias por la corrección.
Hola buenos dias, como puedo ordenar un vector a traves de otro vector???
necesito que mi vector (genero) el cual contiene esta información
«macho» «hembra» «macho» «hembra» «macho» «hembra»
se quede de las siguiente manera:
[1] «hembra» «macho» «hembra» «hembra» «macho» «macho»
Hola tengo una duda, espero puedas ayudar de mucho favor, soy nuevo en R y estoy trabajando una base de datos, digamos que tengo una concatenación de valores 111,131,121,312,322, y me faltan 30 combinaciones, y quiero agregarle a cada una de esas combinaciones, una categoría que va de muy alto a muy bajo por ejemplo 322 = Muy alto, 111 = muy bajo y así sucesivamente dependiendo su combinación.
Y agregarla como una nueva columna con esas categorías como lo pones en tu ejemplo en mi caso podría ser concatenación y categoría.
Muchas gracias y saludos desde México.
Buenas tardes: Como podría ordenas filas (observaciones) de tipo factor, ejemplo
1. Panamá
2. Brasil
3. Ecuador
4. Nicaragua
5. Costa Rica
El orden oficial (que deseo) es:
1. Nicaragua
2. Panamá
3. Ecuador
4. Costa Rica
5. Brasil
Muchas gracias
Arrange(-nameCol)
De un conjunto de datos como puedo seleccionar el mayor de ese conjunto?
Eres un crack, muchas gracias, ocupé en específico tu segunda opción «Ordenar dataframe por una columna en orden inverso», solo hice el vector ID y todo muy bien, GRACIAS