Я попытался сделать t-тест, сравнивая значения между time1 / 2/3 .. и порогом.вот мой фрейм данных:
time.df1<-data.frame("condition" =c("A","B","C","A","C","B"),
"time1" = c(1,3,2,6,2,3) ,
"time2" = c(1,1,2,8,2,9) ,
"time3" = c(-2,12,4,1,0,6),
"time4" = c(-8,3,2,1,9,6),
"threshold" = c(-2,3,8,1,9,-3))
, и я попытался сравнить каждые два значения по:
time.df1%>%
select_if(is.numeric) %>%
purrr::map_df(~ broom::tidy(t.test(. ~ threshold)))
Однако я получил это сообщение об ошибке
Error in eval(predvars, data, env) : object 'threshold' not found
Итак, я попробовал другой способ (возможно, это неправильно)
time.df2<-time.df1%>%gather(TF,value,time1:time4)
time.df2%>% group_by(condition) %>% do(tidy(t.test(value~TF, data=.)))
к сожалению, я получил эту ошибку.Даже я ограничил условие только двумя уровнями (A, B)
Error in t.test.formula(value ~ TF, data = .) : grouping factor must have exactly 2 levels
Я хочу провести t-тест по каждому временному столбцу до порогового значения для каждого условия, а затем использовать broom::tidy
, чтобы получить результаты ваккуратный формат.Мои подходы, очевидно, не работают, любой совет очень важен для улучшения моих кодов.