fbpx

En esta entrada, hablaremos sobre lo que es un dataframe en R. Es de las entradas más importantes de este curso básico de R! Para empezar, los dataframes son como las hojas de cálculo en Excel, es la estructura de datos con la que se hace prácticamente todo.

En esta entrada veremos

  • Primero, cómo crear data frames en R.
  • Segundo, cómo seleccionar columnas en un data frame en R.
  • Por último, cómo ordenar por alguna de las columnas de un data frame en R-

Además, esta entrada viene acompañada de un video que sigue un curso de R en YouTube. También, hay una práctica con código en R. Así, puedes copiar el código de la página y pegarlo en tu sesión de RStudio.

Ahora sí! Empecemos

Qué es un Data Frame en R?

En primer lugar, son estructuras de datos para trabajar con datos de diferentes tipos. Por ejemplo, en otras entradas del curso básico de R, hemos utilizado variables en R para guardar un tipo de variables (números, texto o tipo lógico)

Luego, los vectores en R almacenan una o más variables pero siempre del mísmo tipo. Por último, entendimos que una matriz en R puede verse como como la unión de varias columnas o vectores pero siempre del mismo tipo.

Si queremos utilizar una estructura de datos tabular (como una matriz) pero que permita manipular distintos tipos de datos, los Data Frames son la respuesta!

Así, en un dataframe podemos tener una columna con caracteres, otra con números y otra con variables lógicas.

Por lo tanto, son importante para hacer gráficas, análisis y modelos que tienen muchas variables estadísticas

Ejemplo de Data Frames en R

Para practicar, vamos a utilizar los datos de las peliculas de Shrek, como en la entrada de vectores en R. En este caso, teníamos vectores con la información del nombre, puntuación que da internet y saber si la película es posterior a 2005.

Aquí, lo que queremos hacer ahora es unir esos vectores en un mismo DataFrames! El código en R:

# vectores sobre peliculas de Shrek
nombre <- c("Shrek", "Shrek 2", "Shrek Tercero", "Shrek: Felices por siempre")
puntuacion <- c(7.9, 7.2, 6.1, 6.3)
posterior_2005 <- c(FALSE, FALSE, TRUE, TRUE)

Cómo crear un DataFrame en R?

Hay varias formas de crear un DataFrame. Sin embargo, la que pienso es la más sencilla es utilizando vectores. Para esto utilizamos la función data.frame() y pasamos como argumento los vectores que queremos que sean las columnas, de la siguiente forma:

funcion data.frame en r

Estos vectores tienen que tener la misma cantidad de datos porque sino va a dar un error!

Código para crear un DataFrame en R

Veamos el código:

# crear dataframe de vectores
peliculas_df <- data.frame(nombre,
                           puntuacion,
                           posterior_2005)

Podemos ver el contenido con la función head()

# mostrar dataframe
head(peliculas_df)

Luego, podemos cambiar el nombre de las columnas con la función names()

# cambiar nombre de dataframe
names(peliculas_df) <- c('NOMBRE',
                         'PUNTUACION',
                         'POSTERIOR_2005')

# mostrar dataframe (sí, otra vez)
peliculas_df

Cómo seleccionar elementos de un DataFrame en R?

Para empezar, seleccionar elementos de un data frame es muy parecido a como lo hacíamos con matrices en R. En efecto, podemos seleccionar un elemento, filas/renglones o columnas como de costumbre.

La única diferencia importante, es que también podemos utilizar el símbolo de peso o de dólar.

Imagen de dolar gigante

Vamos al código luego de esta imagen del símbolo de peso o dólar gigante!

Código para seleccionar elementos de un dataframe en R

Podemos empezar seleccionando solo un elemento, para ello, escogemos una fila y una columna. Además, utilizar el nombre para seleccionar la columna.

# seleccionar un elemento del dataframe
peliculas_df[3, 2]
peliculas_df[3, 'PUNTUACION']

Por otro lado, podemos escoger dos elementos y escribimos cada uno como un vector. Ó también, podemos escoger la columna con números o sus nombres.

# seleccionar más de un elemento del dataframe
peliculas_df[c(3,4), c(2,3)]
peliculas_df[c(3,4), c('PUNTUACION', 'POSTERIOR_2005')]

Ahora, para seleccionar una fila o renglón específico, escribimos su número y luego una coma

# seleccionar una fila o renglón del dataframe
peliculas_df[3,]

Por último, para seleccionar las columnas, tenemos que escribir primero la coma y luego el número o nombre de la columna.

# seleccionar una columna del dataframe
peliculas_df[, 2]
peliculas_df[, 'PUNTUACION']
peliculas_df$PUNTUACION

AQUÍ es donde viene la diferencia que te decía. Esto también se puede hacer con un símbolo de peso o dólar, justo después del dataframe y luego el nombre de la columna sin comillas!

Tantas formas de hacer lo mismo…

Ahora, ya sé que es una locura. Pero, te lo cuento porque me ha pasado que veo código de otra persona y pienso que no tengo ni poderosa idea de lo que veo… Así, es bueno saber que existen estas formas de escribir código…

Cómo ordenar un DataFrame en R?

Digamos que, queremos ordenar el dataframe por una columna, ya sea en orden alfabético o numérico. En el ejemplo ordenamos por puntuación.

Tenemos que hacer dos pasos:

1. Guardar los índices ordenados, que obtenemos con la función order()

funcion orden en r

2. Seleccionar el dataframe con los índices obtenido en el paso uno

funcion order asiganada en r

Código para ordenar un DataFrame en R

Podemos ver el índice del dataframe con la función order()

# mostrar el indice de la columna de puntuacion con order
order(peliculas_df$PUNTUACION)

Para ordenar por puntuación, de menor a mayor, tenemos que agregar la opción decreasing = FALSE

# funcion order (menor a mayor)
orden_menor_mayor <- order(peliculas_df$PUNTUACION,
                           decreasing = FALSE)

# mostrar el dataframe ordenado
peliculas_df[orden_menor_mayor, ]

Para ordenar por puntuación, de mayor a menor, tenemos que agregar la opción decreasing = TRUE

# funcion order (mayor a menor)
orden_mayor_menor <- order(peliculas_df$PUNTUACION,
                    decreasing = TRUE)

# mostrar el dataframe ordenado
peliculas_df[orden_mayor_menor, ]

Es importante decirte que esto no va a modificar el dataframe original. Así, solo muestra el orden por pantalla. Por lo tanto, si quieres guardar un nuevo dataframe con este orden, tenemos que pedirlo.

Para eso, creamos un nuevo dataframe, yo le voy a poner df_ordenado y le asignamos el dataframe ordenado…

# guardar el dataframe ordenado
df_ordenado <- peliculas_df[orden_mayor_menor, ]

Excelente! Hemos terminado

Para terminar, en esta entrada vimos cómo: crear, seleccionar elementos y ordenar por columnas un dataframe en R .

Espero que te sea utilidad en tu camino para aprender R!

Te mando un saludo dónde quiera que estés!

Puedes mirar todas entradas de curso de R !