A menudo necesito eliminar listas de columnas de un data.frame.eliminando una lista de columnas de un data.frame usando el subconjunto
que suelo hacer esto:
to.remove <- c("hp","drat","wt","qsec")
mtcars[,-which(names(mtcars) %in% to.remove)]
que funciona muy bien.
Pero me gustaría poder hacer esto de una manera más limpia usando subset
. Pero parece estar adjuntando data.frame y luego acceder a los nombres de columna como variables en lugar de cadenas.
Por ejemplo esto es lo que me gustaría ser capaz de hacer:
subset(mtcars,select=-to.remove)
¿Hay una manera de forzar subset
utilizar un vectores de cadenas en la declaración select
? ¿O hay otra mejor alternativa?
Niza uso de un operador binario creado con negate 1 –
@TylerRinker No puedo recordar más donde recogí esa función a partir. Debe haber sido SO o r-help. – joran
Muy bueno para aprender sobre Negate. Raramente uso cosas en 'funprog' y este es un gran uso para eso. – Jesse