Я видел очень похожие вопросы, но до сих пор не могу понять эту простую проблему.
Я хочу запустить парные t-тесты для группирующей переменной и сохранить результаты в фреймворке данных. Команда tidy
в пакете broom
делает это, но когда я запускаю приведенный ниже код, вывод будет одинаковым для каждого момента времени. Я знаю, что могу сделать это с помощью цикла, но я хочу использовать здесь tidy
и понимать, что происходит.
Вот воспроизводимый пример:
library(dplyr)
library(broom)
df <- data.frame (time1=rep(1:4,30),
sbp=runif(120, 100, 150),
sbp1=runif(120, 120, 170))
R>head(df)
time1 sbp sbp1
1 1 146.9411 151.4842
2 2 102.7216 139.3380
3 3 125.7126 167.1806
4 4 126.0086 146.2177
5 1 149.9213 139.7968
6 2 117.6843 135.2726
z<-df %>%
arrange(time1) %>%
group_by(time1) %>%
do(tidy(t.test(df$sbp,df$sbp1,paired=TRUE)))
Результирующий результат одинаков для каждого момента времени:
R>head(z)
Source: local data frame [4 x 7]
Groups: time1 [4]
time1 estimate statistic p.value parameter conf.low conf.high
(int) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl)
1 1 -22.48413 -11.69648 1.660608e-21 119 -26.29047 -18.67779
2 2 -22.48413 -11.69648 1.660608e-21 119 -26.29047 -18.67779
3 3 -22.48413 -11.69648 1.660608e-21 119 -26.29047 -18.67779
4 4 -22.48413 -11.69648 1.660608e-21 119 -26.29047 -18.67779
Я уверен, что есть простое решение, но не уверен, что это такое, любые предложения были бы отличными. Спасибо