14  VISUALIZACIÓN DE OBJETOS

Cada vez que se realiza una asignación, se crea un objeto en el ambiente de trabajo de R (cf. sección 2.9). Todos los objetos creados durante una sesión de trabajo estarán disponibles hasta que se eliminen1 o hasta que finalice la sesión.

14.1 Listado y estructura de objetos

Para averiguar qué objetos están presentes en el ambiente de trabajo, se usa la función ls (o equivalentemente objects). Esta función se usa sin argumentos.

El resultado presenta un listado de los objetos que se hayan creado en el ambiente de trabajo durante la sesión de R.

Así, por ejemplo, en una sesión de R en la que se haya estado estudiando la sección 8, ejecutando todos los scripts que allí aparecen, debería obtenerse un listado como el siguiente:

ls()
 [1] "a"        "aprobado" "b"        "c"        "df"       "df2"     
 [7] "edad"     "id"       "letras"   "lista1"   "lista2"   "m"       
[13] "m1"       "m2"       "nombre"   "nombres"  "score"    "v1"      
[19] "v2"       "vector"   "X"        "XtX"     

Cuando nos referimos a un listado, estamos usando el término en su acepción cotidiana. El resultado no es un objeto de la clase list, sino un vector de tipo character, con los nombres de los objetos presentes en el ambiente de trabajo.

La función str (nemotécnicamente, structure) presenta de manera compacta la estructura de cualquier objeto en R, indicando el nombre (en caso de que este exista) de cada uno de sus componentes atómicos, su clase, su tamaño y sus primeros valores. Puesto que esta función se aplica sobre algún objeto específico, sí requiere argumento.

Consideremos nuevamente la lista lis2 presentada en la sección 13.1.2.2.

str(lis2)
List of 5
 $ nombre: chr [1:3] "Pablo" "Víctor" "Sandra"
 $ rh    : chr [1:3] "O-" "AB+" "O-"
 $ edad  : num [1:3] 28 53 49
 $ score : num [1:2, 1:3] 2 -1 0 9 5 1
 $ lis1  :List of 4
  ..$ nombre1: chr [1:3] "Pablo" "Víctor" "Sandra"
  ..$ rh1    : chr [1:3] "O-" "AB+" "O-"
  ..$ edad1  : num [1:3] 28 53 49
  ..$ score1 : num [1:2, 1:3] 2 -1 0 9 5 1

La función ls.str combina las funciones ls y str, listando la estructura de todos los objetos en el ambiente de trabajo. Esto puede dar lugar a un resultado bastante denso y difícil de visualizar. En este caso, tampoco se usa argumento.

ls.str()

14.1.1 Listado y estructura de objetos en RStudio

El resultado que genera la función ls.str, es decir, el listado y la estructura de los objetos, está disponible permanentemente en RStudio en un formato gráfico e interactivo, en la pestaña Environment, que por defecto está ubicada en el panel superior derecho de RStudio.

Para acceder de manera directa a la pestaña en la que se listan los objetos disponibles en el ambiente de trabajo, se usa la combinación de teclas Ctrl-8.


En la parte superior derecha de la pestaña Environment aparece un recuadro de búsqueda que facilitaría ubicar algún objeto, en caso de que se tuviera un listado muy grande.

Los objetos se organizan en tres grupos: Data, Values y Functions.

  • Data: Allí aparecen los data frames, las matrices y las listas, ordenados alfabéticamente con base en su nombre.

  • Values: Se listan los vectores atómicos y arreglos de más de dos dimensiones, ordenados alfabéticamente por nombre.

  • Functions: Allí aparecerían, ordenadas por nombre, las funciones definidas por el usuario (cf. sección 21) que se hubieran cargado en el ambiente de trabajo (en el presente ejemplo no aparece ninguna).

Los objetos recursivos (data frames y listas) están antecedidos por un círculo con un triángulo señalando hacia la derecha , que indica que la información de estos objetos se encuentra colapsada.

Al hacer clic sobre estos íconos, el triángulo queda señalando hacia abajo y se muestran los componentes del objeto recursivo.

Al frente de todos los objetos listados bajo el encabezado Data (data frames, matrices y listas) aparece un ícono de visualización:

  • Una rejilla de datos para data frames y matrices

  • Una lupa para listas

La diferencia entre estos íconos refleja la manera en que se visualizan estos objetos.

Cuando se hace clic en alguno de estos íconos2, se invoca la función View, con el nombre del objeto como argumento.

Así, al hacer clic en el ícono de visualización o en el espacio del data frame df, se invoca la siguiente instrucción3:

View(df)

Cuando el argumento de View es una matriz o un data frame, se carga su contenido en una rejilla similar a una hoja de cálculo. Esto explica el aspecto del ícono de visualización para estos objetos.

Pueden visualizarse varios objetos en simultánea. Cada uno se cargará en una pestaña aparte. Las pestañas de visualización de objetos se ubican por defecto en el panel superior izquierdo de RStudio.

A continuación se presenta la rejilla de visualización para el data frame df:

Las rejillas de visualización data frames y matrices cuentan con una serie de herramientas básicas que facilitan la revisión e interacción con el contenido:

  • Un recuadro de búsqueda

  • Organización ascendente con base en el número de fila o en el valor de alguna variable (haciendo clic sobre el encabezado de la correspondiente columna).

  • Organización descendente con base en el valor de alguna variable (haciendo clic sobre el nombre de la correspondiente variable).

  • Filtrado con base en algún criterio.

En bases de datos muy grandes, puede resultar conveniente el uso de la combinación de teclas Ctrl-Fin para posicionarse al final, mientras que la combinación Ctrl-Inicio lleva al inicio.

Cuando se invoca la función View4 con una lista como argumento, también se visualiza su contenido, pero no en una rejilla como la que permite visualizar el contenido de matrices y data frames. En estos casos se usa una visualización acorde con su estructura anidada. Esto explica por qué el ícono de visualización de las listas es diferente al de matrices y data frames.

Así se visualiza la lista lis2, construida en la sección 13.1.2.2:

View(lis2)


Esta visualización permite apreciar cada uno de los componentes de las lista, su posición, su nombre (si lo tiene), su tipo, su tamaño, así como sus primeros valores.

Al desplazar el cursor por encima de los diferentes componentes aparece el ícono en la parte derecha de la correspondiente fila. Al seleccionar este ícono, se envía a consola la instrucción que permitiría extraer el correspondiente componente, acorde con lo ilustrado en la sección 13.1.3. En este caso, sin embargo, la instrucción no se ejecuta automáticamente; para hacerlo, sería necesario presionar Enter.

View

View es —como su nombre lo indica— una función de visualización.

Es posible que el usuario acostumbrado a editar libremente en las hojas de Excel se sienta limitado con esta herramienta.

No obstante, esta condición evita accidentes o modificaciones involuntarias sobre las bases de datos, asegurando su integridad.

Desde luego, en muchas ocasiones puede ser necesario editar las bases de datos, pero esto suele hacerse a través de código R, lo que le confiere trazabilidad al proceso.

data.entry

Mediante la función data.entry es posible visualizar y/o modificar objetos en un editor tipo hoja de cálculo.

Puesto que las modificaciones que se realicen por este medio no quedan registradas en el código, se pierde la trazabilidad del proceso. Los cambios que se realicen por esta vía no aparecerían en futuras sesiones de trabajo, lo que daría lugar a resultados inconsistentes.

Por lo anterior, se desaconseja el uso de data.entry. Siempre que sea necesario editar las bases de datos, deberá hacerse a través del correspondiente código.

Cuando el argumento de función View es uno de los objetos listados bajo el encabezado Values (vectores o arreglos de más de dos dimensiones), se muestra el objeto en el mismo formato en el que se muestran las listas. Esta no es la manera más práctica de visualizar tales objetos.

14.2 Print

La función print envía el contenido de cualquier objeto a la consola. Esta es la función que se ejecuta internamente cuando se invoca un objeto por su nombre.

Así, las siguientes instrucciones son equivalentes5:

print(df)
df
   id  v1     v2
1 a23 2.4 4+3.0i
2 f31 7.9 2-0.8i
3 j33 1.1 1+1.1i
4 m54 8.5 3-5.0i

La función print es la más práctica para visualizar el contenido de vectores y arreglos de más de dos dimensiones, es decir, el contenido de los objetos listados bajo el encabezado Values de la pestaña Environment en RStudio.

Esta función no se envía automáticamente a consola señalando el objeto en la pestaña Environment de Rstudio; es necesario escribirla en consola:

print(nombre)
[1] "Pablo"  "Víctor" "Sandra"
letras
, , 1

     [,1] [,2] [,3]
[1,] "a"  "x"  "d" 
[2,] "c"  "m"  "b" 
[3,] "f"  "j"  "u" 
[4,] "d"  "l"  "y" 

, , 2

     [,1] [,2] [,3]
[1,] "b"  "h"  "r" 
[2,] "j"  "o"  "s" 
[3,] "h"  "w"  "n" 
[4,] "i"  "p"  "q" 

En objetos muy grandes puede ser conveniente mostrar únicamente los primeros o los últimos elementos, para lo cual se usan las funciones head o tail, respectivamente.


  1. Aunque la eliminación de objetos del ambiente de trabajo no es usual, puede realizarse mediante la función rm (o remove).↩︎

  2. Puede hacerse clic en el ícono, en el nombre del objeto o en su descripción: en cualquier espacio de la correspondiente fila, excepto sobre el ícono circular azul.↩︎

  3. Y no es que se invoque internamente, de manera oculta, sino que literalmente se envía la instrucción a la consola y se ejecuta.↩︎

  4. Ya sea directamente o haciendo clic sobre la correspondiente fila de la pestaña Environment.↩︎

  5. Cuando se trabaja en modo interactivo, es decir, desde la consola, las dos instrucciones son equivalentes; no obstante, cuando se usa dentro de una función (cf. sección 21) debe usarse el print explícito, es decir, la primera forma.↩︎