R (tidyverse), select で除外する

select() 関数では、抽出する列を選択できますが、特定の列を除外するということもできます。使い方は、 select(-列名) と、列名にマイナスを付けるだけです。

> result_data
# A tibble: 3 x 5
  Id    Symbol Description   Sample1 Sample2
  <chr> <chr>  <chr>           <dbl>   <dbl>
1 id1   AAA    lorem ipsum a       1       4
2 id2   BBB    lorem ipsum b       2       5
3 id3   CCC    lorem ipsum c       3       6
>
>
> result_data %>% select(-Id, -Symbol, -Description)
# A tibble: 3 x 2
  Sample1 Sample2
    <dbl>   <dbl>
1       1       4
2       2       5
3       3       6

上記の例では、Id, Symbol, Description を取り除いて、データだけのオブジェクトを表示させています。抽出するサンプルが多い時は、全ての列の名前を記述するのが大変になります。その場合は、除外する列だけ、名前を書く方と便利です。

従来の R のように、 列の番号を指定して除外することも可能ですが、可読性という意味では、明示的に列名を指定する方が良いでしょう。

> result_data[, c(-1:-3)]
# A tibble: 3 x 2
  Sample1 Sample2
    <dbl>   <dbl>
1       1       4
2       2       5
3       3       6

 

投稿者:

Atsushi Doi

株式会社セルイノベーター 取締役、研究開発部部長。理学博士。山口大学大学院理工学研究科修了。東京大学医科学研究所ヒトゲノム解析センターの特任助手を経て、株式会社GNIに主任研究員として勤務。その後、株式会社セルイノベーターの立ち上げに参加し、現在に至る。専門は、バイオインフォマティクス、おもにシステムバイオロジー。