Saltar al contenido principal

Tutorial de Subconjuntos en R

Descubre cómo acceder a los datos de tu marco de datos con el subconjunto. Aprende a hacer subconjuntos utilizando paréntesis o la función subconjunto() de R.
Actualizado 2 dic 2024  · 4 min de lectura

El subconjunto en R es una útil función de indexación para acceder a los elementos de los objetos. Puede utilizarse para seleccionar y filtrar variables y observaciones. Los dos métodos principales para subconjuntar datos en R son los corchetes [] , que son un método de indexación general, y la función subset() , que es un método de nivel superior y más fácil de usar. 

Si quieres saber más sobre el subconjunto de datos y otras técnicas de programación en R, empieza hoy mismo con nuestro curso Introducción a R. Te sorprenderá lo rápido que lo coges. Si tienes más experiencia, nuestra R Intermedia es otra gran opción. 

Seleccionar filas

He aquí un ejemplo de subconjunto en un marco de datos llamado debt.

debt[3:6, ]
      name  payment
3      Dan      150
4      Rob       50
5      Rob       75
6      Rob      100

Aquí, seleccionamos las filas 3 a 6 de debt.

Tu camino hacia el dominio de R

Empieza desde cero y adquiere los conocimientos básicos de R para la ciencia de datos.
Empieza a Aprender Gratis

Seleccionar filas de una columna concreta

Otra cosa que debes estudiar es la simplificación que se produce cuando seleccionas una sola columna. Seleccionar las tres primeras filas de sólo la columna payment simplifica el resultado en un vector.

debt[1:3, 2]
100 200 150

Formato del marco de datos

Para mantenerlo como un marco de datos, sólo tienes que añadir drop=False como se muestra a continuación: 

debt[1:3, 2, drop = FALSE]
    payment
1       100
2       200
3       150

Seleccionar una columna concreta

Para seleccionar una columna concreta, también puedes escribir el nombre del marco de datos, seguido de $, y luego el nombre de la columna que quieres seleccionar. En este ejemplo, seleccionaremos la columna payment del marco de datos. Al ejecutar este script, R simplificará el resultado como un vector.

debt$payment
100 200 150 50 75 100

Utilizar la función subconjunto()

Cuando quieras crear subconjuntos más complejos o un subconjunto basado en una condición, el siguiente paso es utilizar la función subconjunto(). Por ejemplo, ¿qué pasaría si quisieras consultar la deuda de alguien llamado Dan? Podrías simplemente utilizar los corchetes para seleccionar su deuda y sumarla, pero no es una forma muy sólida de hacer las cosas, especialmente con posibles cambios en el conjunto de datos.

# This works, but is not informative
debt[1:3, ]

subset() en una variable categórica

Una forma mejor de hacerlo es utilizar la función subset() para seleccionar las filas en las que la columna nombre sea igual a Dan. Fíjate en que tiene que haber un doble signo igual, lo que se conoce como operador relacional.

# This works, but is not informative nor robust
debt[1:3, ]

# Much more informative!
subset(debt, name == "Dan")
      name     payment
1      Dan         100
2      Dan         200
3      Dan         150

subset() sobre una variable numérica

También podemos subconjuntar columnas numéricas. Si quisiéramos ver las filas en las que los pagos equivalen a 100$, harías lo siguiente:

subset(debt, payment == 100)
      name  payment
1      Dan      100
6      Rob      100

Acceso y subconjunto de marcos de datos

Pasando al siguiente ejemplo, ¿qué ocurre si sólo te interesan los flujos de caja de la empresa A?

subset(cash, company == "A")
      company  cash_flow  year
1           A       1000     1
2           A       4000     3
3           A        550     4

Recuerda:

  • El primer argumento que pasas a subset() es el nombre de tu marco de datos, cash.

  • ¡Fíjate en que no debes poner company entre comillas!

  • El == es el operador de igualdad. Comprueba si dos cosas son iguales y devuelve un vector lógico.

Ejemplo interactivo del método subconjunto()

En el siguiente ejemplo, utilizarás el método subset() para seleccionar sólo las filas de cash correspondientes a la empresa B. Y después, las filas de subset() que tengan flujos de caja con vencimiento a 1 año.

# Rows about company B
subset(cash, company == "B")

# Rows with cash flows due in 1 year
subset(cash, year == 1)

Cuando ejecutas el código anterior, se obtiene el siguiente resultado:

  company cash_flow year
4       B      1500    1
5       B      1100    2
6       B       750    4
7       B      6000    5
  company cash_flow year
1       A      1000    1
4       B      1500    1

Pruébalo tú mismo.

Para obtener más información sobre el acceso y el subconjunto de marcos de datos en R, consulta este vídeo de nuestro curso Introducción a R para Finanzas.

Este contenido ha sido extraído del curso Introducción a R para Finanzas de DataCamp, impartido por Lore Dirick.

Reflexiones finales sobre los subconjuntos

Parte de la diversión de R es que ofrece distintos métodos para realizar tareas similares. El subconjunto no es una excepción, ya que tanto los corchetes [] como la función subset() consiguen lo mismo. Puedes elegir entre los dos, según prefieras un control de bajo nivel o una simplicidad de alto nivel.

Considera la posibilidad de mejorar tus conocimientos con nuestra carrera de Científico de Aprendizaje Automático en R. Profundizarás en el conocimiento de las funciones básicas de R, pero también te equiparás con técnicas avanzadas para abordar problemas de aprendizaje automático.

Temas

Cursos R

curso

Introduction to R

4 hr
2.8M
Master the basics of data analysis in R, including vectors, lists, and data frames, and practice R with real data sets.
Ver detallesRight Arrow
Comienza El Curso
Ver másRight Arrow
Relacionado

tutorial

Tutorial de tablas de contingencia en R

En este tutorial, aprenderás a crear tablas de contingencia y a probar y cuantificar las relaciones visibles en ellas.
Łukasz Deryło's photo

Łukasz Deryło

10 min

tutorial

Tutorial sobre el uso de funciones en R

Descubra qué son las funciones R, los diferentes tipos de funciones en R y cómo crear sus propias funciones en R.
Javier Canales Luna's photo

Javier Canales Luna

11 min

tutorial

A Loops in R Tutorial - Uso y Alternativas

Un tutorial sobre bucles en R que examina las construcciones disponibles en R para realizar bucles. Descubra alternativas utilizando la función de vectorización de R.
Carlo Fanara's photo

Carlo Fanara

32 min

tutorial

Tutorial de ordenación en R con order()

En este tutorial, aprenderás a ordenar utilizando order(). Veremos cómo ordenar vectores utilizando distintos parámetros, ordenar dataframes y mucho más.

Olivia Smith

6 min

tutorial

Creación de una lista en R

Practica Listas en R utilizando el material del curso Introducción a R de DataCamp.
Ryan Sheehy's photo

Ryan Sheehy

3 min

tutorial

Tutorial de regresión lineal en R

En este tutorial aprenderás los fundamentos de un modelo estadístico muy popular: la regresión lineal.

Eladio Montero Porras

15 min

See MoreSee More