2015-12-16

Cómo omitir variables de un data frame en R basadas en un vector de caracteres usando dplyr

Title

Problema

De un data frame deseamos eliminar usando dplyr aquellas variables cuyos nombres suministramos en un vector de caracteres. Por ejemplo, del siguiente vector deseamos eliminar la variable B.

set.seed(201512)
df <- data.frame(A = runif(10), B = runif(10))
         A           B
1  0.5235130 0.032229763
2  0.2625372 0.059565071
3  0.6049460 0.792932236
4  0.5136619 0.809743021
5  0.5668388 0.001533767
6  0.4876062 0.155949532
7  0.2354488 0.490415100
8  0.5688439 0.165787477
9  0.5964628 0.807970900
10 0.4615434 0.380846012

Solución

Empleamos la función one_of, que sólo funciona dentro de la función select. Con ella seleccionamos, en este caso omitimos al ir precedida del signo negativo, aquellas variables suministradas en un vector de caracteres (omitir).

library(dplyr)    
omitir <- c("B")# Vector de caracteres
df %>% select(-one_of(omitir))
           A
1  0.5235130
2  0.2625372
3  0.6049460
4  0.5136619
5  0.5668388
6  0.4876062
7  0.2354488
8  0.5688439
9  0.5964628
10 0.4615434

Referencias

Entradas relacionadas

No hay comentarios:

Publicar un comentario

Nube de datos