我正在寻找一种方法,可以在R tidyverse环境中为2个列表元素的所有组合计算多个t检验。
我想基于yl和vs的每种组合,根据传输率测试Miles /(US)加仑的均值。我的工作示例是以下代码:
mtcars %>%
filter(cyl==8 & vs == 0) %>%
mutate(am = as.factor(am)) %>%
# independent t-test
t.test(mpg ~ am,data = .,paired = FALSE)%>%
broom::tidy() %>%
mutate(cyl = 8) %>%
mutate(vs = 0) %>%
select(cyl,vs,everything())
我写了这段代码:
cyl_list <- list(unique(mtcars$cyl)) # 6 4 8
vs_list <- list(unique(mtcars$vs)) # 0 1
complete_t_test <- function(cyl_par,vs_par){
mtcars %>%
filter(cyl=={cyl_par} & vs == {vs_par}) %>%
mutate(am = as.factor(am)) %>%
# independent t-test
t.test(mpg ~ am,paired = FALSE) %>%
broom::tidy() %>%
mutate(cyl = {cyl_par}) %>%
mutate(vs = {vs_par}) %>%
select(cyl,everything())}
我在想类似purrr::map2(cyl_list,vs_list,complete_t_test)
的东西
但这没用。