Поведение по умолчанию с t.test
в R - использовать полные случаи, следовательно, игнорируя все строки с хотя бы одним пропущенным значением.
Вот воспроизводимый пример.Рассмотрим следующие данные:
set.seed(1)
dat <- data.frame(MileminDur=c("22:11:50","23:11:50", NA, "23:11:51", rep("23:15:00", 11)),
athelete=sample(c(TRUE, FALSE, NA), 15, replace=TRUE))
print(dat)
MileminDur Athelete
22:11:50 TRUE
23:11:50 FALSE
NA FALSE
23:11:51 NA
23:15:00 TRUE
23:15:00 NA
23:15:00 NA
23:15:00 FALSE
23:15:00 FALSE
23:15:00 TRUE
Ваш набор данных состоит из 15 строк, и у вас есть 9 "полных дел".Завершенные случаи в статистическом смысле означают любое наблюдение (строки), где все поля / переменные имеют значение, которое не равно NA
.
Ваша первая задача - преобразовать переменную MileminDur
в числовое значение.Это можно сделать с помощью следующего кода:
now <- as.POSIXct(format(Sys.Date()))
dat$MileminDur <- as.numeric(strptime(dat$MileminDur, format = "%H:%M:%S") - now,
units="secs")
head(dat,5)
MileminDur athelete
79910 TRUE
83510 FALSE
NA FALSE
83511 NA
83700 TRUE
Теперь вы можете выполнить t.test:
t.test(dat$MileminDur ~ dat$athelete)
, который возвращает:
Welch Two Sample t-test
data: dat$MileminDur by dat$athelete
t = 0.9355, df = 4.0314, p-value = 0.4021
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-1391.713 2812.713
sample estimates:
mean in group FALSE mean in group TRUE
83652.5 82942.0
ПосколькуПоведение по умолчанию с t.test
- игнорирование строк с пропущенными значениями, по сути это то же самое, что удаление строк с помощью NA
s вручную:
# remove any row where there's one or more NA values
dat <- dat[complete.cases(dat), ]
t.test(dat$MileminDur ~ dat$athelete)
Тот же вывод:
Welch Two Sample t-test
data: dat$MileminDur by dat$athelete
t = 0.9355, df = 4.0314, p-value = 0.4021
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-1391.713 2812.713
sample estimates:
mean in group FALSE mean in group TRUE
83652.5 82942.0