El Data frame es el objeto más importante en R. Los data frames son estructuras de datos de dos dimensiones (rectangulares) que pueden contener datos de diferentes tipos, por lo tanto, son heterogéneas. Esta estructura de datos es la más usada para realizar análisis de datos. Podemos entender a los data frames como una versión más flexible de una matriz. Mientras que en una matriz todas las celdas deben contener datos del mismo tipo, los renglones de un data frame admiten datos de distintos tipos, pero sus columnas conservan la restricción de contener datos de un sólo tipo.
En términos generales, los renglones en un data frame representan casos, individuos u observaciones, mientras que las columnas representan atributos, rasgos o variables. En terminología de bases de datos son registros y campos, respectivamente.
Para crear un data frame usamos la función data.frame(). Esta función nos pedirá un número de vectores igual al número de columnas que deseemos. Todos los vectores que proporcionemos deben tener el mismo largo.
Esto es muy importante: Las columnas de un Data frame son tratados como vectores.
Más adelante se hará evidente porque esta característica de un data frame es sumamente importante y también, cómo podemos sacarle provecho.
Además, podemos asignar un nombre a cada vector, que se convertirá en el nombre de la columna. Como todos los nombres, es recomendable que este sea claro, no ambiguo y descriptivo.
Midf<-data.frame(
id = 1:4,
nombre = c("Alexa", "Jazmin", "Ana", "Pedro"),
edad = c(19,22,21,23),
carrera = c("LAF","IBN","IIS","LMC")
)
Midf
Averigüemos las clases de nuestros objetos:
class(Midf)
class(Midf$id)
class(Midf$nombre)
class(Midf$edad)
class(Midf$carrera)
Nota: como los vectores de cadenas de caracteres los convirtió a Factores, esto siempre es cierto cuando se crea un Data frame. Si Rsudio no lo convierte es importante convertirlo para poder trabajar estadisiticamente con la variable sin problema
Midf$nombre <- factor(Midf$nombre, labels=c("Alexa", "Jazmin", "Ana", "Pedro"))
Midf$carrera <- factor(Midf$carrera, labels=c("LAF","IBN","IIS","LMC"))
str(Midf$carrera)
class(Midf)
class(Midf$id)
class(Midf$nombre)
class(Midf$edad)
class(Midf$carrera)
Podemos usar dim() en un data frame:
dim(Midf)
El largo de un data frame es igual a su número de columnas:
length(Midf)
names() nos permite ver los nombres de las columnas:
names(Midf)
Una función particularmente útil para realizar un análisis estadístico inicial sobre un Data frame es summary(df), por ejemplo:
summary(Midf)
Similarmente, la función str(df), da una estructura general de un Data frame. Prueba:
str(Midf)
Las funciones head(df) y tail(df) despliegan los primeros y últimos 6 renglones, respectivamente, de un Data frame, por ejemplo:
tail(Midf)
Si se desea cambiar la cantidad de renglones a mostrar, se agrega un argumento a la función, así:
head(Midf, 2)
Si manejamos indexación, el proceso para acceder a valores dentro de un Data frame es el mismo que el que usamos en matrices.Si usamos un índice con un sólo número, extraemos una columna completa, con todos sus renglones:
Midf[2]
Si usamos un vector obtenemos varias columnas:
Midf[c(1,3)]
Para devolver un renglón o una columna completa, respectivamente:
Midf[1, ]
Midf[ ,4]
Para excluir elementos podemos usar el signo menos (-), por ejemplo todo el data frame excepto a columna 3:
Midf[ , -3]
Otra manera en la que podemos extraer subconjuntos es usando nombres. Para usar este método, se escribe el signo $ después del nombre de un objeto de la siguiente forma: objeto\(nombre. Tal como lo hicimos con las listas. Este método permite extraer un sólo elemento a la vez, el elemento extraido siempre será una columna. ```{r} Midf\)edad
Si deseamos el valor de un renglón para cierta columna:
```{r}
Midf$carrera[4]
También podemos usar la nomenclatura de [[ ]], prueba:
Midf[[3]]
Midf[[1]][1]