Selecionando colunas no quadro de dados R com base naqueles * não * em um vetor

Estou familiarizado com a capacidade de extrair colunas de um quadro de dados R (ou matriz) da seguinte forma:

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

Mas pode-se usar um! ou outra ferramenta para selecionartodos, exceto as colunas listadas?

Para o fundo, eu tenho um quadro de dados com alguns vetores de coluna e gostaria de evitar:

Digitando a maioria dos nomes quando eu poderia apenas remover uma minoriaUsando o muito mais curtodf.2 <- df[, c(1,3,5)] porque quando meu arquivo .csv muda, meu código vai para o inferno, já que a numeração não é mais a mesma. Sou novo em R e acho que aprendi da maneira mais difícil não usar vetores numéricos para dfs maiores que podem mudar.

Eu tentei:

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

E assim que eu estava digitando isso, descobri que isso funciona:

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

Existe uma maneira melhor do que esta última?

questionAnswers(6)

yourAnswerToTheQuestion