Nombres de filas y columnas en R
Las funciones rownames
y colnames
permiten obtener y establecer nombres de filas y columnas para matrices o data frames. La función dimnames
es similar, ya que permite obtener o establecer tanto los nombres de columna como de fila de un objeto.
Obtener o establecer nombres de fila con rownames
La función rownames
permite recuperar los nombres de las filas de un data frame o matriz. La sintaxis de la función es la siguiente:
# Obtener nombres de fila
rownames(x)
# Establecer los nombres a "value" (por lo general, un vector o NULL)
rownames(x) <- value
En el siguiente bloque de código creamos un data frame de ejemplo con dos columnas y diez filas. El data frame tiene el siguiente aspecto:
df <- data.frame(col1 = 1:10, col2 = 11:20)
df
col1 col2
1 1 11
2 2 12
3 3 13
4 4 14
5 5 15
6 6 16
7 7 17
8 8 18
9 9 19
10 10 20
Puedes comprobar los nombres de las filas por defecto con la función rownames
. Como los nombres de fila aún no se han establecido, los nombres por defecto son el índice de cada fila.
rownames(df)
"1" "2" "3" "4" "5" "6" "7" "8" "9" "10"
No obstante, la función rownames
también puede utilizarse para establecer los nombres de las filas. Para ello, deberás asignar un vector con tantos elementos como filas.
rownames(df) <- paste("Fila", 1:10)
rownames(df)
"Fila 1" "Fila 2" "Fila 3" "Fila 4" "Fila 5" "Fila 6" "Fila 7" "Fila 8" "Fila 9" "Fila 10"
Ahora, si compruebas el conjunto de datos de ejemplo verás que las filas tienen el nombre que estableciste con el código anterior.
df
col1 col2
Fila 1 1 11
Fila 2 2 12
Fila 3 3 13
Fila 4 4 14
Fila 5 5 15
Fila 6 6 16
Fila 7 7 17
Fila 8 8 18
Fila 9 9 19
Fila 10 10 20
Obtener o establecer nombres de columna con colnames
La función colnames
se comporta igual que rownames
pero para nombres de columnas. La sintaxis es la siguiente:
# Obtener nombres de columna
colnames(x)
# Establecer los nombres de columna como "value" (por lo general un vector o NULL)
colnames(x) <- value
Si quieres comprobar los nombres de las columnas de tu objeto, sólo tienes que introducir el nombre de tu objeto en la función.
colnames(df)
"col1" "col2"
También puedes personalizar los nombres de las columnas de tu objeto asignándoles nuevos valores.
colnames(df) <- c("Columna 1", "Columna 2")
colnames(df)
"Columna 1" "Columna 2"
Ahora puedes comprobar que tu data frame tiene los nuevos nombres de columna:
df
Columna 1 Columna 2
Fila 1 1 11
Fila 2 2 12
Fila 3 3 13
Fila 4 4 14
Fila 5 5 15
Fila 6 6 16
Fila 7 7 17
Fila 8 8 18
Fila 9 9 19
Fila 10 10 20
La función dimnames
La función dimnames
puede utilizarse para recuperar los nombres de fila y columna de un objeto. La salida es una lista en la que el primer elemento son los nombres de las filas y el segundo los nombres de las columnas.
dimnames(df)
[[1]]
[1] "Fila 1" "Fila 2" "Fila 3" "Fila 4" "Fila 5" "Fila 6" "Fila 7" "Fila 8" "Fila 9" "Fila 10"
[[2]]
[1] "Columna 1" "Columna 2"
Puedes acceder a cada uno de ellos accediendo a cada elemento de la lista como en el ejemplo siguiente.
# Nombres de fila
dimnames(df)[[1]]
# Nombres de columna
dimnames(df)[[2]]
"Fila 1" "Fila 2" "Fila 3" "Fila 4" "Fila 5" "Fila 6" "Fila 7" "Fila 8" "Fila 9" "Fila 10"
"Columna 1" "Columna 2"
Si quieres cambiar los nombres de fila y columna puedes asignar un nuevo valor con dimnames(x)[[1]] <- value
o dimnames(x)[[2]] <- value
, pero se recomienda utilizar las funciones rownames
y colnames
en su lugar.
Eliminar nombres de filas y columnas
En ocasiones queremos eliminar los nombres de las columnas y/o filas de una matriz o data frame. Para ello tendrás que asignar las columnas y/o filas a NULL
.
# Eliminar nombres de fila
rownames(df) <- NULL
# Eliminar nombres de columna
colnames(df) <- NULL
# Comprobamos el data frame
df
Ahora el data frame no tiene nombres de fila ni de columna.
1 1 11
2 2 12
3 3 13
4 4 14
5 5 15
6 6 16
7 7 17
8 8 18
9 9 19
10 10 20