Curso
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
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
companyentre 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
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.