Guardando valores: variables, vectores, matrices, listas y tablas de datos

En el post anterior hablamos sobre R y RStudio, con una introducción a los scripts y documentos de rmarkdown y el uso de proyectos de RStudio para mantener nuestro código ordenado. En este post nos adentraremos más en el uso de R. En concreto, aprenderemos como almacenar valores y datos en objetos en R.

Asignación de valores

En la sección de scripts del post anterior habíamos almacenado valores en una variable llamada num. El código era similar a este:

# Almacenar 10 números en la variable numeros
numeros <- c(1, 7, 2, 9, 0, 2, 4, 6, 8, 1)

Podemos almacenar prácticamente cualquier tipo de información en una variable (piensa en números, texto, coordenadas, mapa, colores, modelos). Cada tipo de información tendrá su forma específica de almacenarse. Además, al generar la variable en la que almacenamos la información, es necesario seguir ciertas reglas. A continuación algunas reglas generales para nombrar objetos.

El nombre de la variable puede contener números, pero debe de comenzar con una letra. Por ejemplo, mis_datos y mis_2_datos y mis_datos_2 son nombres aceptables. Por el contrario 2datos no lo es.

Ejecuta el siguiente código línea por línea:

# Asignaciones correctas
mis_datos <- 1
mis_2_datos <- 1
mis_datos_2 <- 1

# Asignación incorrecta
2datos <- 1
## Error: <text>:7:2: unexpected symbol
## 6: # Asignación incorrecta
## 7: 2datos
##     ^

La última línea resultará en un error, con R diciendo Error: unexpected symbol in "2datos". Esto sucede porque la variable no comienza con una letra.

R también distingue entre mayúsculas y minúsculas, por lo que es necesario nombrar y llamar nuestras variables de manera correcta. Por ejemplo, en las siguientes líneas de código la primera funciona y la segunda no. Sabes por qué sucede esto?

mis_datos
# Multiplicar una variable por 2
mis_datos * 2
## Error in eval(expr, envir, enclos): object 'mis_datos' not found
# Multiplicar una variable por 2
Mis_datos * 2
## Error in eval(expr, envir, enclos): object 'Mis_datos' not found

Atributos

Al evaluar este código, numeros aparece en nuestro ambiente como un valor, y vemos algo asi:

La información presentada es la siguiente:

  • Del lado izquierdo vemos el nombre de la variable (numeros)
  • El tipo de valores, en este caso numéricos indicados por num
  • La dimensión del objeto, donde [1:10] nos dice que hay 10 elementos
  • Vista previa de algunos (o todos) los elementos almacenados (1, 7, 2, 9, 0, 2, 4, 6, 8, 1)

Nosotros podemos acceder a todas estas caracetrísticas con diferentes comandos. Por ejemplo, para obtener los nombres de todas las variables almacenadas, podemos usar la función ls(), que nos da una lista de los objetos en nuestro ambiente.

ls()
## [1] "numeros"

Usando el nombre de la variable, podemos acceder a sus propiedades, como la clase y dmiensiones.

Para obtener la clase, usamos la función class():

class(numeros)
## [1] "numeric"

En este caso, nuestra variable números es de tipo numeric.

Para conocer la longitud del objeto, usamos la función length():

length(numeros)
## [1] 10

El resultado es 10, pues es el número de elementos que hemos almacenado en numeros.

También podemos almacenar texto en una variable, por ejemplo:

# Guardar texto en una variable llamada dias
dias <- c("Lunes", "Martes", "Miercoles", "Jueves", "Viernes")

Cómo reconoce R esta información? Podemos preguntarle usando class():

class(dias)
## [1] "character"

R reconoce el texto como objetos de tipo character, es decir, caracteres.

Previous