Я хочу запустить несколько вложенных t.test
и ttestBF
(используя tidyr::nest()
), но мне не удается ни привести в порядок, ни удалить объект S4: BFBayesFactor
, который выходит из функции ttestBF
.
Пример данных:
set.seed(354654)
d = tibble(value = rnorm(100),
category = sample(1:5, replace = TRUE, 100),
group = sample(c('A', 'B'), replace = TRUE, 100)) %>%
arrange(category)
Я запускаю этот фрагмент кода для t.test
, и он прекрасно работает:
library('tidyverse')
library('broom')
d %>%
group_by(category, group) %>%
nest() %>%
spread(key = group, value = data) %>%
mutate(
t_test = map2(A, B, ~{t.test(.x$value, .y$value) %>% tidy()}),
A = map(A, nrow),
B = map(B, nrow)
) %>%
unnest()
Однако, если я попробую это :
d %>%
group_by(category, group) %>%
nest() %>%
spread(key = group, value = data) %>%
mutate(
t_test_bf = map2(A, B, ~{ttestBF(.x$value, .y$value, nullInterval = c(0, Inf)) %>% tidy() }),
A = map(A, nrow),
B = map(B, nrow)
) %>%
unnest()
Я получаю: Error: No tidy method for objects of class BFBayesFactor
. Если я удаляю вызов tidy()
, то:
t_test_bf = map2(A, B, ~{ttestBF(.x$value, .y$value, nullInterval = c(0, Inf)) })
я все равно получаю следующую ошибку:
Error: All nested columns must have the same number of elements.
Любая идея о том, как снять вывод ttestBF
?