R: Независимые t-тесты для нескольких групп - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть набор данных с именем 'dat' с 5 столбцами: month;mean0;sd0;mean1;SD1.Это выглядит следующим образом (но с цифрами):

месяц среднее0 SD0 среднее1 SD1

1
2
3
..
48

Я хотел бы использовать независимый (не спаренный) t-тест для сравнения среднего значения 0 и среднего значения 1 для каждого месяца между 1 и 48. В идеале выходные данные должны быть помещены в другой фрейм данных, называемый «dat1», со столбцами для: t-statisitc, степени свободы (DF);и р-значение.Примерно так:

месяц t-статистика D-значение p
1
2
3
..
48

Я пытался использовать dplyr ипакеты метлы, но, кажется, не могут понять это.Любая помощь будет оценена.

1 Ответ

0 голосов
/ 20 сентября 2018

Вам понадобятся значения n для обоих sd.Функция tsum.test из пакета BSDA поможет вам выполнить t-тест без необходимости написания собственной функции.

Остается вопрос о целесообразности большогоколичество сравнений таким образом.Эта ссылка предоставляет информацию об этом.

С этим предупреждением, вот как сделать то, что вы хотите с некоторыми произвольными данными:

dat <- data.frame(m1=c(24,11,34),
                  sd1=c(1.3,4.2,2.3),
                  n1=c(30, 31, 30),
                  m2=c(18,8,22), 
                  sd2=c(1.8, 3.4, 1.8),
                  n2=c(30,31,30))

# user function to do t-test and return desired values
do.tsum <- function(x) {
    # tsum.test is quirky, so you have to break out each column's value
    results <- tsum.test(x[1],x[2],x[3],x[4],x[5],x[6],alternative='two.sided')
    return(c(results$statistic, results$parameters, results$p.value))
}

# use apply to do the tsum.test on each row (1 for rows, 2 for cols)
# then, transpose the resulting matrix and use the data.frame function
t.results <- data.frame(t(apply, 1, do.tsum))s

# unfortunately the p-value is returned without no column name (it returns 'm1')
# use the names function to change the third column name.
names(t.results)[3] <- 'p.value'

Вывод выглядит следующим образом:

          t       df      p.value
1 14.800910 52.78253 1.982944e-20
2  3.091083 57.50678 3.072783e-03
3 22.504396 54.83298 2.277676e-29
...