Functional Programming Tools • purrr
dplyr 0.8からgroup_map
が追加されたことにより、nest()->map()->unnese()の流れからそちらに移行することになるか?
base::split()
vs. group_by()
and nest()
Pros and cons of split() vs nest() with map() workflows - tidyverse - RStudio Community
[ ] splitとgroup_by and nestの練習 @Yuho T map_lgl()
, map_dbl()
, map_int()
, map_chr()
map()
がリストを返すのに対し、型の決まったベクトル(論理、実数、整数、文字)を返す。base::sapply()
, base::vapply()
の大体ができる。特にsapply()
は長さがゼロだとリストを返したりするので、確実に決まった型のベクトルで操作することができる利点がある。
numericな列を選択してShapiro検定で正規性を検討、p<0.05の列をリスト化 主にtableone
パッケージでの変数リスト作成用に。
# sapplyで添字利用
iris %>% .[sapply(., is.numeric)] %>%
purrr::map(~ broom::tidy(shapiro.test(.x))) %>%
purrr::map_lgl(~ .$p.value < 0.05) %>%
.[. == TRUE] %>%
names %>%
dput
# map_lgl()利用
iris %>%
.[purrr::map_lgl(., is.numeric)] %>% # 以下略
使えるときは一番単純な手段で行うべし、的にはこのdplyr::select_if()
がベストか。
# dplyr::select_if()利用
iris %>%
dplyr::select_if(is.numeric) %>% # 以下略
keep()
, discard()
Keep or discard elements using a predicate function. — keep • purrr
imap()
rerun
サンプルデータ作るのに死ぬほど便利そう。 rerun function | R Documentation