期待される結果を完全には理解していませんが、これが答えの出発点になるかもしれません。 map()
frompurrr
は.x
式の引数で使用されます。
これは、あなたがただでやろうとしていると私が思うことを達成する1つの方法ですpurrr
.
mtcars %>%
split(as.character(.$cyl)) %>%
map(~t.test(.x$mpg))
でも、purrr::by_slice()
相性抜群dplyr::group_by()
。
library(purrr)
library(dplyr)
mtcars %>%
dplyr::select(cyl, mpg) %>%
group_by(as.character(cyl)) %>%
by_slice(~ t.test(.x$mpg))
purrr
または、 を使用して完全にスキップすることもできますdplyr:::summarise()
。
library(purrr)
library(dplyr)
mtcars %>%
dplyr::select(cyl, mpg) %>%
group_by(as.character(cyl)) %>%
summarise(t_test = data_frame(t.test(.$mpg)))
ネストされたものdata.frame
がわかりにくい場合は、結果の簡単な要約をbroom
取得するのに役立ちます。data.frame
purrr
+ broom
+tidyr
library(broom)
library(tidyr)
mtcars %>%
group_by(as.character(cyl)) %>%
by_slice(~tidy(t.test(.x$mpg))) %>%
unnest()
dplyr
+broom
library(broom)
mtcars %>%
dplyr::select(cyl, mpg) %>%
group_by(as.character(cyl)) %>%
do(tidy(t.test(.$mpg)))
コメントへの応答を含めるように編集されました
パイプを使用すると、すぐに夢中になります。purrr
ウォルトは彼の答えで素晴らしい仕事をしたと思いますが、私は-tyの答えを提供したことを確認したかった. pipeR
の使用が過度に混乱しないことを願っています。
library(purrr)
library(dplyr)
library(broom)
library(tidyr)
library(pipeR)
mtcars %>>%
(split(.,.$cyl)) %>>%
(split_cyl~
names(split_cyl) %>>%
(
cross_d(
list(against=.,tested=.),
.filter = `==`
)
) %>>%
by_row(
~tidy(t.test(split_cyl[[.x$tested]]$mpg,split_cyl[[.x$against]]$mpg))
)
) %>>%
unnest()