データフレームのカラムを名前でドロップ

データフレームから削除したい列がいくつかあります。個別に削除するには、次のような方法があります。

df$x <- NULL

しかし、私はより少ないコマンドでこれを行うことを望んでいました。

また、このように整数のインデックスを使ってカラムをドロップできることも知っています。

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

しかし、変数の相対的な位置が変わってしまうのではないかと心配しています。

Rの強力さを考えると、各列を1つずつ落とすよりも良い方法があるのではないかと考えました。

ソリューション

シンプルな名前のリストを使用することができます。


DF 
解説 (6)

また、subsetコマンドもあり、欲しいカラムが決まっている場合に便利です。


df 
解説 (10)

このように%in%を使うことができます。

df[, !(colnames(df) %in% c("x","bar","foo"))]
解説 (3)