En el curso de Estadística para el Análisis Político 2 vamos a trabajar con datos. Los datos en una computadora están organizados y guardados de una manera particular, la cual se llama estructura de datos.
El estudio de las estructuras de datos no es común entre lxs politólogxs y quienes se dedican a las políticas públicas. Sin embargo, si antes has usado archivos de datos (una base de datos en Excel, por ejemplo), ya has lidiado con estructuras de datos. En particular, si estás familiarizado con las hojas de cálculo, estás lidiando con datos organizos en una tabla o frame (o matriz), que es una estructura de datos.
Las estructuras de datos son muy importantes en programación. En general, una estructura de datos sirve como un repositorio de datos e informa cómo están organizados los datos.
R tiene una estructura de datos nativa que permite la creación de estructuras de datos más complejas. Aquí revisaremos las estructuras de datos comunes a las que te vas a enfrentar y te mostraremos cómo usarlas.
NOTA: Dado que el énfasis aquí está en estas estructuras de datos y en las funciones particulares que usan, los datos serán muy simples. [De hecho, tú mismx vas a tipear los datos, en realidad.]
Vamos a RStudio y veamos qué estructuras de datos nos ofrece R.
Luego de abrir RStudio, de crear un R Notebook y de haberle puesto el título que deseamos, escribimos el siguiente código en el script:
#LISTAS
##Primer Caso
numerosEnLista1=list(1,2,"3")
numerosEnLista1
## [[1]]
## [1] 1
##
## [[2]]
## [1] 2
##
## [[3]]
## [1] "3"
#Segundo Caso
numerosEnLista2=list('primero'=1,'segundo'=2,'tercero'="3")
numerosEnLista2
## $primero
## [1] 1
##
## $segundo
## [1] 2
##
## $tercero
## [1] "3"
#VECTORES
##Primer Caso
numerosEnVector1=c(1,2,"3")
numerosEnVector1
## [1] "1" "2" "3"
##Segundo Caso
numerosEnVector2=c('primero'=1,'segundo'=2,'tercero'="3")
numerosEnVector2
## primero segundo tercero
## "1" "2" "3"
Luego de correr el código, verás a dos de las estructuras de datos más importantes y más comúnmente usadas: la lista y el vector.
Una LISTA puede guardar diferentes tipos de datos: texto, números (reales o enteros), otras listas y otras estructuras de datos.
Si hacemos la analogía con una hoja de cálculo, una lista podría ser tanto una columna o una fila en Excel (ya que, recuerda: una lista puede contener diferentes tipos de datos).
Un VECTOR, a diferencia de una lista, requiere que todos sus valores sean de la misma clase o el mismo tipo.
Por ello, en el código que corrimos arriba, si bien los datos colocados en el vector son números, R por defecto ha coercionado a que esos números sean interpretados como caracteres.
¿Por qué? Porque el último valor que pusimos en el vector, el número 3, lo pusimos entre comillas. Al haber hecho ello, R lee “3” como caracter. Y, dado que el vector requiere que todos sus valores sean del mismo tipo, este único carácter coerciona a los otros elementos del vector (números) a ser interpretados como caracteres.
Creemos ahora un vector cuyos elementos sean números, para poder sacar la media. Insertemos este código:
unVector=c(1,2,3)
mean(unVector) #Se usa 'mean' para sacar la media
## [1] 2
Luego de correrlo, vemos que hemos obtenido la media –cuyo valor es 2– sin ningún problema.
¿Qué pasaría si quisiéramos sacar la media de, digamos, numerosEnVector1? Hagamos el intento. Insertemos este código:
mean(numerosEnVector1)
## Warning in mean.default(numerosEnVector1): argument is not numeric or
## logical: returning NA
## [1] NA
Evidentemente, obtenemos “NA” como respuesta, ya que R está leyendo los valores no como números, sino como caracteres. Y la media es una función solo aplicable a números.