T.test в Rполучение нескольких значений p

Я пытаюсь выполнить T.test между двумя наборами данных.

Это "Набор данных1"

TIME        5    10      15      20      25
Specimen no.                        
1          15.2 30.5     41     12.5         16.2
2          13.1 16.2    12.5    Na       13.2
3          16.11 45.7   11.4    18.9    11.7
4          11.2  Na    9.11    20.7      19

И еще «Набор данных2»

TIME        5   10        15      20    25

Specimen no.                        
1       11.8    34.8    14.2    19.9    23.4
2         NA    6.4     29.2    32.7    17.1
3       10.0    35.5    38.5    28.3    27.3
4       18.7    NA      11.5    14.6    18.9

Я просто хочу сравнить каждый 5-секундный интервал от набора данных1 до набора данных2, используя t.test. Как мне получить этот список значений p

Пока у меня только это

t.test(dataset1[[2]],dataset2[[2]])$p.value...

Очевидно, это неправильно... потому что я не знаю, как я могу получить доступ к определенным столбцам из набора данных1 и набора данных2... У меня также есть значения NA, которые могут привести к сообщениям об ошибках.


person Geller Bing    schedule 06.10.2013    source источник


Ответы (1)


Если номера столбцов dataset1 и dataset2 равны, вы можете написать цикл for следующим образом:

pval = rep(0, ncol(dataset1))
for(i in 1:ncol(dataset1)){
    pval[i] = t.test(dataset1[, i], dataset2[, i], na.action = na.omit)$p.value
}

Здесь dataset1[, i] означает столбец i, а na.omit удалит NAs, а затем выполнит тест.

person cogitovita    schedule 06.10.2013
comment
Привет, cogitovita, спасибо за ответ, но по какой-то причине я получаю это сообщение об ошибке: Ошибка в if (stderr ‹ 10 * .Machine$double.eps * max(abs(mx), abs(my))) stop( данные в основном постоянны): отсутствует значение там, где требуется TRUE/FALSE. Кроме того: Предупреждающие сообщения: 1: В mean.default(x): аргумент не является числовым или логическим: возвращается NA 2: В mean.default(y): аргумент не числовой или логический: возврат NA - person Geller Bing; 06.10.2013