Мы можем узнать все даты unique
и в каждой итерации добавить одну дату к filter
кадру данных с этими датами и вычислить значение p.Мы можем использовать map_dfr
, чтобы получить окончательный вывод в качестве фрейма данных.
library(tidyverse)
vals <- unique(df$date)
map_dfr(seq_along(vals),~
df %>%
filter(date %in% vals[1:.x]) %>%
summarise(date = .x, test_out = t.test(value~condition)$p.value))
# date test_out
#1 1 0.00595657
#2 2 0.18614978
#3 3 0.13357542
Мы можем перепроверить вышеуказанные значения вручную
df %>% filter(date %in% 1) %>% summarise(test_out = t.test(value~condition)$p.value)
# test_out
#1 0.00595657
df %>% filter(date %in% c(1, 2)) %>% summarise(test_out = t.test(value~condition)$p.value)
# test_out
#1 0.1861498
df %>% filter(date %in% c(1, 2, 3)) %>% summarise(test_out = t.test(value~condition)$p.value)
# test_out
#1 0.1335754
data
set.seed(123)
df <- data.frame(
date = rep(1:3,each=30),
condition = sample(1:2,90,rep=T),
value = rnorm(90,5,5)
)