12 NOMBRES

A continuación, se enumera algunos aspectos que es necesario tener en cuenta al nombrar los objetos, así como sus elementos constitutivos.

  1. Todos los nombres deben comenzar con un carácter no numérico, es decir, con una letra (un nombre que comience por un punto genera un objeto oculto).

  2. No se admiten espacios.

  3. En adición a los números y las letras, los únicos caracteres especiales que se admiten como parte de los nombres son el punto (.) y el guion bajo (_). Los usuarios de R usan con mayor frecuencia el punto que el guion bajo para unir palabras.

  4. Se admiten caracteres del alfabeto latino, tales como la ñ y las vocales con tilde.

  5. Se distingue entre mayúsculas y minúsculas.

Dependiendo de la forma en que estén estructurados los datos (vectores, matrices, arreglos, data frames o listas) es posible —y en ocasiones hasta obligatorio— nombrar los elementos individuales y/o los componentes de cada una de las dimensiones.

La principal estructura de base de datos en R es el data frame, siendo esta la que se usa como argumento principal en la mayoría de los procedimientos estadísticos. Se trata de una estructura rectangular con individuos, observaciones o ítems en filas y con variables (que pueden ser de diferentes tipos) en columnas. En los data frames, cada columna tiene obligatoriamente un nombre. Cuando se genera un data frame por importación el nombre de la columna puede leerse de la información contenida en la primera fila, o puede definirse automáticamente como V1, V2, …, VK, siendo K el número de columnas. Este comportamiento queda definido por la función usada para la importación y sus argumentos (cf. capítulo 6). Las filas (individuos u observaciones) también tienen nombres; por defecto, son los enteros desde 1 hasta n, siendo n el número de observaciones. Aunque es mucho menos común, podría asignarse también un nombre a cada uno de los elementos del data frame.

Las matrices admiten nombres para las filas y para las columnas, así como para cada uno de los elementos individuales. Asimismo, los arreglos, admiten nombres tanto para los componentes de sus diferentes dimensiones, como para cada uno de sus elementos. Los vectores, al ser estructuras unidimensionales, únicamente admiten nombres para sus diferentes elementos.

La función names se usa tanto para la asignación de nombres como para su recuperación. Al evaluar esta función con un objeto atómico (un vector, una matriz o un arreglo) como único argumento, se obtiene por resultado el nombre de cada uno de los elementos individuales, en caso de que les haya sido asignado un nombre a los mismos (situación poco usual). Cuando el argumento es una lista, el resultado es el nombre de cada uno de los elementos de mayor jerarquía, en caso de que a estos les haya sido asignado un nombre. Cuando el argumento es un data frame, el resultado es el nombre de las columnas.

12.1 Asignación de nombres

Para asignación de nombres se combina la función names con el operador de asignación.

Considérese el siguiente vector:

a <- c(1, 2, 3)

Es posible asignarle nombre a cada uno de los elementos del anterior vector así:

names(a) <- c("uno", "dos", "tres")

Mediante el mismo procedimiento podrían nombrarse los elementos de una matriz o de un arreglo, así como los objetos de mayor jerarquía de una lista. Al realizar un procedimiento análogo sobre un data frame, se modifican los nombres de las columnas.

Para nombrar los diferentes elementos dimensionales de una matriz o un arreglo, esto es, para ponerles encabezado a las filas, columnas u otras dimensiones, se utiliza el argumento dimnames en la definición de la estructura o la función dimnames, si la estructura ya ha sido creada. El valor del argumento debe ser una lista, en la que cada uno sus elementos de mayor jerarquía contenga los nombres de los encabezados en cada dimensión.

Considérese el arreglo tridimensional, letras, definido anteriormente (cf. sección 8.3):

Tiempo1
v1 v2 v3
unidad1 a x d
unidad2 c m b
unidad3 f j u
unidad4 d l y
Tiempo2
v1 v2 v3
unidad1 b h r
unidad2 j o s
unidad3 h w n
unidad4 l p q
n.dim1 <- c("unidad1", "unidad2", "unidad3", "unidad4")
n.dim2 <- c("v1", "v2", "v3")
n.dim3 <- c("tiempo1", "tiempo2")
nombres.dimensiones <- list(n.dim1, n.dim2, n.dim3)
dimnames(letras) <- nombres.dimensiones
print(letras)
#> , , tiempo1
#> 
#>         v1  v2  v3 
#> unidad1 "a" "x" "d"
#> unidad2 "c" "m" "b"
#> unidad3 "f" "j" "u"
#> unidad4 "d" "l" "y"
#> 
#> , , tiempo2
#> 
#>         v1  v2  v3 
#> unidad1 "b" "h" "r"
#> unidad2 "j" "o" "s"
#> unidad3 "h" "w" "n"
#> unidad4 "i" "p" "q"

Para asignar nombres a las filas de un data frame se usa el argumento row.names, mediante el cual se alimenta un vector con los correspondientes nombres. Si se realiza un proceso de importación en el que los nombres de los ítems estén en alguna de las columnas de la base de datos (usualmente en la primera), se indica su número o nombre como valor del argumento row.names. Si al momento de crear o importar el data frame, se omite lo referente al nombre de las filas, estas quedan nombradas por defecto con los enteros entre 1 y n, siendo n el número de observaciones.