2017-10-16

Eliminar columnas con nombres duplicados de un data frame en R

Problema

Queremos eliminar las columnas con nombres duplicados de un data frame en R.

df <- data.frame(a = 1:2, b = 1:2, 
                 c = 1:2, a = 2:3, 
                 a = 2:3, b = 2:3, 
                 check.names = F)
  a b c a a b
1 1 1 1 2 2 2
2 2 2 2 3 3 3

Solución

  • Base
  • df[, !duplicated(df)] # o bien
    df[, unique(df)]
    
     a b c
    1 1 1 1
    2 2 2 2
    
  • dplyr
  • Empleamos funciones del paquete base pero evitamos los corchetes para hacerla más legible.

    library(dplyr)
    df %>% subset(select = !duplicated(names(.))) # o bien
    df %>% subset(select = unique(names(.)))
    

No hay comentarios:

Publicar un comentario

Nube de datos