R (tidyverse), select

テーブルのデータから、必要な「列」だけを選択して取り出すには、 select()関数を使います。

select(対象のデータ, 列名1, 列名2, ...)

具体的には、下記のようになります。 select(result_data, Symbol, Sample1, Sample2) の部分です。

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

従来のデータフレームと異なり、列名をダブルクオーテーションで囲む必要がありません。(列名に空白や記号を含む場合は、バッククオート「`」で囲む必要があります。)

# 従来の書き方だと、可読性が今ひとつです。
result_data[, c("Symbol", "Sample1", "Sample2")]

また、select 関数は、指定した順番に取り出せるので、列を並び替える目的にも使えます。

output_data <- select(result_data, Id, Symbol, Description, Sample1, Sample2)

# 実際には、 %>% の処理と組み合わせて書くことが多いです。
# 1つ前の処理結果が対象のデータになるので、その指定を省略して記述できます。

result_data <- inner_join(input_data, meta_data) %>%
  select(Id, Symbol, Description, Sample1, Sample2)
 

投稿者:

Atsushi Doi

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

「R (tidyverse), select」への1件のフィードバック

コメントは停止中です。