列を選択する
dplyr::select()
はデータフレームから指定した列を抽出する関数です。
select(.data, ...)
引数 | 説明 |
---|---|
.data | 対象とするデータフレーム |
… | 選択したい列の条件 |
例えば、irisのデータから、Sepal.LengthとSpeciesの列を抽出したい場合は、以下のようになります。
> select(iris, Sepal.Length, Species) %>% head(3)
Sepal.Length Species
1 5.1 setosa
2 4.9 setosa
3 4.7 setosa
select()内で使える特別な関数
dplyr::select()
には、一緒に使うと便利な関数があります。
starts_with()
ends_with()
contains()
mathces
num_range()
all_of()
any_of()
one_of
where()
everything()
last_col()
starts_with()
で指定した文字列で始まる列を抽出する
starts_with()
> select(iris, starts_width("Sepal"))
ends_with()
で指定した文字列で終わる列を抽出する
ends_with()
> df %>% select(Name, ends_with("[C]"))
everything()
を使って列を並び替える
select()
とeverything()
を使えば、列を並び替えることが出来ます。先に(左側に)表示したい列名を指定し、
残りはeverything()
で指定します。
上記のstarts_with()
やends_with()
なんかも当然使えます。
> select(iris, ends_with("Length"), Species, everything())
# A tibble: 150 x 5
Sepal.Length Petal.Length Species Sepal.Width Petal.Width
<dbl> <dbl> <fct> <dbl> <dbl>
1 5.1 1.4 setosa 3.5 0.2
2 4.9 1.4 setosa 3 0.2
3 4.7 1.3 setosa 3.2 0.2
4 4.6 1.5 setosa 3.1 0.2
5 5 1.4 setosa 3.6 0.2
6 5.4 1.7 setosa 3.9 0.4
7 4.6 1.4 setosa 3.4 0.3
8 5 1.5 setosa 3.4 0.2
9 4.4 1.4 setosa 2.9 0.2
10 4.9 1.5 setosa 3.1 0.1
# … with 140 more rows
参考
select_all()
select_if()
select_at()