Selección de columnas en el marco de datos R basado en aquellas * no * en un vector

Estoy familiarizado con la posibilidad de extraer columnas de un marco de datos R (o matriz) así:

df.2 <- df[, c("name1", "name2", "name3")]

Pero, ¿se puede usar una!&nbsp;u otra herramienta para seleccionartodas menos esas columnas enumeradas?

Para el fondo, tengo un marco de datos con bastantes vectores de columnas y me gustaría evitar:

Escribiendo la mayoría de los nombres cuando solo podía eliminar una minoríaUsando el mucho más cortodf.2 <- df[, c(1,3,5)]&nbsp;porque cuando mi archivo .csv cambia, mi código se va al diablo porque la numeración ya no es la misma. Soy nuevo en R y creo que aprendí la manera difícil de no usar vectores numéricos para df más grandes que podrían cambiar.

Lo intenté:

df.2 <- df[, !c("name1", "name2", "name3")]
df.2 <- df[, !=c("name1", "name2", "name3")]

Y justo cuando estaba escribiendo esto, descubrí que esto funciona:

df.2 <- df[, !names(df) %in% c("name1", "name2", "name3")]

¿Hay alguna forma mejor que esta última?