*disclaimer
1157437
across()
データフレーム中の、どのカラムを選んで処理をするか条件を指定する
ヘルパー関数
where()
- 数値のカラムだけ集計(NAを除く)
mutate("Total" = rowSums(across(where(is.numeric)), na.rm=TRUE))
starts_with()
- 項目名の始まりの文字列で指定する
mutate("SumN" = rowSums(across(starts_with("N"), na.rm=TRUE)))
matches()
- 項目名を正規表現で指定
mutate("SumS" = rowSums(across(matches("S\\d"), na.rm=TRUE))) %>%
- Sの次に数字(\\d)
mutate(across(matches("^(M|N|Q|R)"), ~ .x / N, .names = "N_{col}"))
- M, N, Q, Rのいずれかで始まる文字列について
- その値を Nで割って、
- 新規カラムで、旧名の前に N_ を付けて追加する
References
- https://qiita.com/swathci/items/9bf403dca7c428fc3e7d#starts_with-ends_with%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%9F%E6%96%87%E5%AD%97%E5%88%97%E3%81%A7%E5%A7%8B%E3%81%BE%E3%82%8B%E7%B5%82%E3%82%8F%E3%82%8B%E5%88%97%E5%90%8D
- https://dplyr.tidyverse.org/reference/across.html
- https://datascience-blog.com/2020/06/02/202427
https://sugiura-ken.org/wiki/