dplyr::storms |>
dplyr::select(name, year, wind)列の抽出
列の抽出
dplyr::select
連続する列を抽出
- select(最初の列名:最後の列名)
dplyr::storms |>
dplyr::select(name, year:hour) # name 列、及びyear列からhour列までを抽出列の除外
- select( !列名 )
- 以下のように!と&を使う書き方の他に、select(-lat, -long) という書き方も可能
dplyr::storms |>
dplyr::select(!lat & !long) # lat 列と long 列を除外列名で条件づけて抽出
- 指定した文字列から始まる列名の列を抽出: select( starts_with(“文字列”) )
- 指定した文字列で終わる列名の抽出は ends_with(“文字列”)
- 指定した文字列を含む列名の列を抽出: select( contains(“文字列”) )
tidyr::billboard |>
dplyr::select(artist, track, starts_with("wk")) # artist, track 及び wk で始まる列名の列を抽出- dplyr::num_range(“abc”, 1:10) : abc1〜abc10までの列
tidyr::billboard |>
dplyr::select(artist, track, num_range("wk", seq(2, 50, by = 2))) # artist, track 及び wk1-wk50のうち偶数番号の列名の列を抽出- 指定した正規表現に合致する列名の列を抽出: select( matches(“正規表現”) )
tidyr::world_bank_pop |>
dplyr::select(matches("[0-9]+")) # 列名が数字のみの列を抽出- 指定した型の列を抽出: select(where( 型の判定関数 ))
tidyr::world_bank_pop |>
dplyr::select(where(is.numeric)) # 数値型の列を抽出列をベクトルとして抽出
dplyr::pull
dplyr::storms |>
dplyr::distinct(name) |> # name 列の重複分を削除
dplyr::slice(1:10) |> # 先頭10行分を抽出
dplyr::pull(name) # name列をベクトルとして抽出 [1] "Amy" "Blanche" "Caroline" "Doris" "Eloise" "Faye"
[7] "Gladys" "Hallie" "Belle" "Dottie"
列名の変更
dplyr::rename
- rename(“変更後の列名”= 変更前の列名)
- 左辺が変更後の列名
- ダブルクォーテーションで囲む
- 右辺が変更前の列名
- クォーテーションでは囲まない
- 左辺が変更後の列名
dplyr::storms |>
dplyr::select(name, year, wind) |>
dplyr::rename("名称" = name, "年" = year, "風速" = wind)複数列を一括でrename
- dplyr::rename_with(~関数, 列)
tidyr::billboard |>
dplyr::rename_with(
~paste0(
stringr::str_replace_all(.x, "wk", "week_") # wkをweek_に置き換え
),
dplyr::starts_with("wk") # wkから始まる列を選択
)dplyr::selectしつつ列名変更
- dplyr::selectとdplyr::renameは、dplyr::selectで列名を指定**することで一括実行できる
dplyr::storms |>
dplyr::select("名称" = name, "年" = year, "風速" = wind)