Soltar colunas de quadro de dados por nome

Tenho uma série de colunas que gostaria de remover de um quadro de dados. Eu sei que podemos apagá-las individualmente usando algo como:

df$x <- NULL

Mas eu esperava fazer isto com menos comandos.

Além disso, sei que poderia deixar cair colunas usando indexação inteira como esta:

df <- df[ -c(1, 3:6, 12) ]

Mas estou preocupado que a posição relativa das minhas variáveis possa mudar.

Dada a potência do R, pensei que talvez houvesse uma maneira melhor do que deixar cair cada coluna uma a uma.

Solução

Você pode usar uma simples lista de nomes :


DF 
Comentários (6)

Há também o comando subset, útil se você souber quais colunas você quer:


df 
Comentários (10)

Você poderia usar %em% assim:

df[, !(colnames(df) %in% c("x","bar","foo"))]
Comentários (3)