@uri のこの記事、do()
の使い方がまとまっていてとてもいいです。
do()
の使い方がよくわからなくて、doしますか!? ダーッ!しますか!?みたいに頭が混乱していても、元気があれば何でもできそうな気さえしてきます。
ということで特に文句をつけるところはないですが、最後の例をpurrrで書くとこう、というのをいちおう書き残しておきます。
library(purrr)
iris %>%
split(.$Species) %>%
map2(., names(.), ~ ggplot(.x, aes(Sepal.Length, Petal.Length)) + geom_point() + ggtitle(.y))
今のところ、値とキーの両方にアクセスする便利な方法は用意されていないので、map2(., names(.), ~ f(.x, .y))
のような書き方をすることになります。将来的にはもうちょっとわかりやすい書き方ができるようになってほしいところ。
追記:
今はimap()
という関数があるのでこれを使いましょう。
library(purrr)
iris %>%
split(.$Species) %>%
imap(~ ggplot(.x, aes(Sepal.Length, Petal.Length)) + geom_point() + ggtitle(.y))