Cómo realizar una VLOOKUP (similar a Excel) en R

La función BUSCARV en Excel le permite buscar un valor en una tabla haciendo coincidir una columna.

Por ejemplo, en la siguiente hoja de cálculo de Excel podemos buscar el nombre del equipo de un jugador usando VLOOKUP para hacer coincidir el nombre del jugador y devolver el equipo del jugador:

Podemos replicar esta función usando base R o el paquete dplyr:

Usando Base R:

fusionar (df1, df2, by = " merge_column ")

Usando dplyr:

inner_join (df1, df2, by = " merge_column ")

Los siguientes ejemplos muestran cómo usar cada una de estas funciones en R para replicar la función BUSCARV de Excel.

VLOOKUP usando Base R

El siguiente código muestra cómo realizar una función similar a BUSCARV en base R usando la función merge () :

#create first data frame 
df1 <- data.frame (player = LETTERS [1:15],
                  equipo = rep (c (' Mavs ', ' Lakers ', ' Rockets '), cada uno = 5))

#create second data frame  
df2 <- data.frame (player = LETTERS [1:15],
                  puntos = c (14, 15, 15, 16, 8, 9, 16, 27, 30, 24, 14, 19, 8, 6, 5))

# fusionar los dos marcos de datos
 fusionar (df1, df2, by = " player ")

   puntos del equipo del jugador
1 A Mavs 14
2 B Mavs 15
3 C Mavs 15
4 D Mavs 16
5 E Mavs 8
6 F Lakers 9
7 G Lakers 16
8 H Lakers 27
9 I Lakers 30
10 J Lakers 24
11 K cohetes 14
12 L cohetes 19
13 M cohetes 8
14 N cohetes 6
15 O Cohetes 5

Observe que esto devuelve los mismos resultados que la función BUSCARV del ejemplo introductorio. También tenga en cuenta que puede especificar varias columnas para fusionar usando el argumento by .

VLOOKUP usando dplyr

biblioteca (dplyr)

#create first data frame 
df1 <- data.frame (player = LETTERS [1:15],
                  equipo = rep (c (' Mavs ', ' Lakers ', ' Rockets '), cada uno = 5))

#create second data frame  
df2 <- data.frame (player = LETTERS [1:15],
                  puntos = c (14, 15, 15, 16, 8, 9, 16, 27, 30, 24, 14, 19, 8, 6, 5))

# fusionar los dos marcos de datos usando inner_join
 inner_join (df1, df2, by = " player ")

   puntos del equipo del jugador
1 A Mavs 14
2 B Mavs 15
3 C Mavs 15
4 D Mavs 16
5 E Mavs 8
6 F Lakers 9
7 G Lakers 16
8 H Lakers 27
9 I Lakers 30
10 J Lakers 24
11 K cohetes 14
12 L cohetes 19
13 M cohetes 8
14 N cohetes 6
15 O Cohetes 5

Tenga en cuenta que esto devuelve los mismos resultados que la función BUSCARV en Excel. También tenga en cuenta que puede especificar varias columnas para fusionar usando el argumento by .

Además, si desea que se muestren las no coincidencias, puede usar la función left_join .

Recursos adicionales

Cómo calcular sumas acumulativas en R
Cómo estandarizar datos en R
Cómo agregar filas a un marco de datos en R

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

Hay dos términos importantes en el campo de la estadística inferencial entre los que debe conocer la diferencia: estadística y…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!