4.3: Administrar el espacio de trabajo
- Page ID
- 151447
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)
( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\id}{\mathrm{id}}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\kernel}{\mathrm{null}\,}\)
\( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\)
\( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\)
\( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)
\( \newcommand{\vectorA}[1]{\vec{#1}} % arrow\)
\( \newcommand{\vectorAt}[1]{\vec{\text{#1}}} % arrow\)
\( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vectorC}[1]{\textbf{#1}} \)
\( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)
\( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)
\( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)Supongamos que estás leyendo este libro, y lo que estás haciendo es sentarte con él una vez a la semana y trabajar todo un capítulo en cada sesión. No solo eso, has estado siguiendo mis consejos y escribiendo todos estos comandos en R. Hasta ahora durante este capítulo, habrías escrito bastantes comandos, aunque los únicos que realmente involucraron la creación de variables fueron los que escribiste durante la Sección 4.1. Como resultado, actualmente tienes tres variables; buscador
, amante
y guardián
. Estas tres variables son el contenido de tu espacio de trabajo, también conocido como el entorno global. El espacio de trabajo es un concepto clave en R, por lo que en esta sección hablaremos mucho sobre qué es y cómo administrar sus contenidos.
Listado de los contenidos del espacio de trabajo
Lo primero que debes saber hacer es examinar los contenidos del espacio de trabajo. Si estás usando Rstudio, probablemente encontrarás que la forma más fácil de hacerlo es usar el panel “Medio ambiente” en la esquina superior derecha. Da click en eso, y verás una lista que se parece mucho a la que se muestra en las Figuras 4.5 y 4.6. Si estás usando la línea commmand, entonces la función objects ()
puede ser útil:
objects()
## [1] "keeper" "lover" "seeker"
Por supuesto, en la verdadera tradición R, la función objects ()
tiene muchas capacidades elegantes que estoy pasando por alto en este ejemplo. Además, también hay varias otras funciones que puedes usar, incluyendo ls ()
que es prácticamente idéntica a objects ()
, y ls.str ()
que puedes usar para obtener una descripción bastante detallada de todas las variables en el espacio de trabajo. De hecho, el paquete lsr
en realidad incluye su propia función que puedes usar para este propósito, llamada who ()
. El motivo para usar la función who ()
es bastante sencillo: en mi trabajo diario encuentro que la salida producida por el comando objects ()
no es lo suficientemente informativa, porque lo único que imprime es el nombre de cada variable; pero el La función ls.str ()
es demasiado informativa, porque imprime mucha información adicional que realmente no me gusta mirar. La función who ()
es un compromiso entre ambos. Primero, ahora que tenemos instalado el paquete lsr
, necesitamos cargarlo:
library(lsr)
## Warning: package 'lsr' was built under R version 3.5.2
y ahora podemos usar la función who ()
:
who()
## -Name - -Class - -Size --
## keeper numeric 1
## lover numeric 1
## seeker numeric 1
Como puedes ver, la función who ()
enumera todas las variables y proporciona alguna información básica sobre qué tipo de variable es cada una y cuántos elementos contiene. Personalmente, encuentro esta salida mucho más fácil más útil que la salida muy compacta de la función objects ()
, pero menos abrumadora que la extremadamente detallada función ls.str ()
. A lo largo de este libro me verás usando mucho la función who ()
. No tienes que usarlo tú mismo: de hecho, sospecho que te resultará más fácil mirar el panel de entorno de Rstudio. Pero a los efectos de escribir un libro de texto me pareció útil tener una bonita descripción basada en texto: de lo contrario habría alrededor de otras 100 capturas de pantalla más o menos agregadas al libro. 48
Eliminación de variables del espacio de trabajo
Al revisar esa lista de variables, se me ocurre que realmente ya no las necesito. Los creé originalmente solo para hacer un punto, pero ya no sirven para ningún propósito útil, y ahora quiero deshacerme de ellos. Te voy a mostrar cómo hacer esto, pero primero quiero advertirte — no hay opción de “deshacer” para la eliminación de variables. Una vez que se elimina una variable, se va para siempre a menos que la guardes en el disco. Te voy a mostrar cómo hacerlo en la Sección 4.5, pero con toda claridad no tenemos necesidad de estas variables en absoluto, para que podamos deshacernos de ellas de manera segura.
En Rstudio, la forma más sencilla de eliminar variables es usar el panel de entorno. Asumiendo que estás en la vista de cuadrícula (es decir, Figura 4.6), marque las casillas junto a las variables que desea eliminar, luego haga clic en el botón “Borrar” en la parte superior del panel. Al hacer esto, Rstudio mostrará un cuadro de diálogo pidiéndole que confirme que realmente desea eliminar las variables. Siempre vale la pena comprobar que realmente lo haces, porque como Rstudio está en dolores de señalar, no puedes deshacer esto. Una vez que se elimina una variable, se va. 49 En cualquier caso, si haces clic en “yes”, esa variable desaparecerá del espacio de trabajo: ya no aparecerá en el panel de entorno, y no aparecerá cuando uses el comando who ()
.
Supongamos que no accedes a Rstudio, y aún quieres eliminar variables. Aquí es donde la función remove rm ()
viene muy bien. La forma más sencilla de usar rm ()
es simplemente escribir una lista (separada por comas) de todas las variables que quieres eliminar. Digamos que quiero deshacerme de buscador
y amante
, pero me gustaría mantenerme guardián
. Para ello, todo lo que tengo que hacer es escribir:
rm( seeker, lover )
No hay salida visible, pero si ahora inspecciono el espacio de trabajo
who()
## -Name - -Class - -Size --
## keeper numeric 1
Veo que solo queda la variable keeper
. Como puedes ver, rm ()
puede ser muy útil para mantener ordenado el espacio de trabajo.