Saltar al contenido principal
InicioTutorialesProgramación R

Tutorial de subconjuntos en R

Descubre cómo acceder a los datos de tu dataframe con subconjuntos. ¡Sigue nuestro tutorial y aprende a utilizar la función subset() de R hoy mismo!
feb 2024  · 4 min leer

La creación de subconjuntos en R es una útil función de indexación para acceder a los elementos objeto. Puede utilizarse para seleccionar y filtrar variables y observaciones. Puedes utilizar corchetes para seleccionar filas y columnas de tu dataframe.

Seleccionar filas

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 la deuda. Un aspecto que se debe tener en cuenta es la simplificación que se produce cuando seleccionas una sola columna.

Empieza a aprender R gratis

Introduction to R for Finance

BeginnerSkill Level
4 hr
76K learners
Learn essential data structures such as lists and data frames and apply that knowledge directly to financial examples.

Seleccionar filas de una columna concreta

Seleccionar las tres primeras filas de la columna de pago simplifica el resultado en un vector.

debt[1:3, 2]
100 200 150

Formato de Dataframe

Para mantenerlo como dataframe, añade solo drop=False como se muestra a continuación: 

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

Seleccionar una columna específica [Acceso directo]

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

debt$payment
100 200 150 50 75 100

Utilizar subset() para más potencia

Cuando quieras crear subconjuntos más complejos o un subconjunto basado en una condición, el siguiente paso es utilizar la función subset(). 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 nor robust
debt[1:3, ]

subset() Función

Una forma mejor de hacerlo es utilizar la función subset() para seleccionar las filas en las que la columna de nombre sea igual a Dan. Fíjate en que tiene que haber un doble signo igual, 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

Utilizar una función subset() en una columna numérica

También podemos crear subconjuntos a partir de 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 a Dataframes y creación de subconjuntos en Dataframes

Pasando al siguiente ejemplo, ¿qué ocurre si solo 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 dataframe, cash.
  • ¡Fíjate en que no debes poner company entre comillas!
  • == es el operador de igualdad. Comprueba si dos cosas son iguales y devuelve un vector lógico.

Ejemplo interactivo del método subset()

En el siguiente ejemplo, utilizarás el método subset() para seleccionar solo 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 a dataframes y la creación de subconjuntos de dataframes 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.

Temas

Cursos de R

Course

Introduction to R

4 hr
2.7M
Master the basics of data analysis in R, including vectors, lists, and data frames, and practice R with real data sets.
See DetailsRight Arrow
Start Course
Ver másRight Arrow
Relacionado

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

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 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

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 sobre cómo importar datos a R

Averigua cómo importar datos a R, incluidos archivos CSV, JSON, Excel, HTML, bases de datos, SAS, SPSS, Matlab y otros, utilizando los conocidos paquetes de R.
Abid Ali Awan's photo

Abid Ali Awan

20 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

See MoreSee More