Seleccione la primera fila de cada grupo en DataFrame en R

En este artículo, discutiremos cómo seleccionar la primera fila de cada grupo en Dataframe utilizando el lenguaje de programación R.

El método duplicado() se utiliza para determinar cuáles de los elementos de un marco de datos son duplicados de otros elementos. El método devuelve un vector lógico que indica cuáles de las filas del marco de datos están duplicadas. 

Sintaxis:

duplicated(data-frame$col-name)

Las filas no duplicadas se toman con el método duplicado() complementado y se refieren a los métodos de indexación de marcos de datos, donde se toman todas las columnas y las filas son las que se filtran con el método duplicado(). Los números de fila del marco de datos original se conservan en la salida final. 

Ejemplo: Seleccionar la primera fila de cada grupo

R

# create first dataframe
data_frame1<-data.frame(col1=c(rep('Grp1',2),
                               rep('Grp2',2),
                               rep('Grp3',2)), 
                        col2=rep(c(1:3),2),
                        col3=rep(1:2,3) 
                        )
  
print("Original DataFrame")
print(data_frame1)
  
print("Modified DataFrame")
  
# computing sum over rest of columns
data_frame1[!duplicated(data_frame1$col1), ]

Producción:

[1] "Original DataFrame" 
  col1 col2 col3 
1 Grp1    1    1 
2 Grp1    2    2 
3 Grp2    3    1 
4 Grp2    1    2 
5 Grp3    2    1 
6 Grp3    3    2 
[1] "Modified DataFrame" 
  col1 col2 col3 
1 Grp1    1   1 
3 Grp2    3   1 
5 Grp3    2   1

El siguiente fragmento de código ilustra el uso de la función duplicada, aplicada en varias columnas. Las columnas se pueden agrupar usando el método c(). 

Ejemplo: Seleccionar la primera fila de cada grupo 

R

# create first dataframe
data_frame1<-data.frame(col1=c(rep('Grp1',2),
                               rep('Grp2',2),
                               rep('Grp3',2)), 
                        col2=rep(1,2),
                        col3=rep(1,3) 
                        )
  
print("Original DataFrame")
print(data_frame1)
  
# grouping by col3
print("Modified DataFrame")
  
# computing groups over col3 and col2
data_frame1[!duplicated(c(data_frame1$col3,data_frame1$col2)), ]

Producción:

[1] "Original DataFrame" 
col1 col2 col3 
1 Grp1    1    1 
2 Grp1    1    1 
3 Grp2    1    1 
4 Grp2    1    1 
5 Grp3    1    1 
6 Grp3    1    1 
[1] "Modified DataFrame" 
col1 col2 col3 
1 Grp1    1    1

Publicación traducida automáticamente

Artículo escrito por yashchuahan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *