Поскольку у меня уже были подобные проблемы здесь , я просто задал другой вопрос: stats::t.test
возвращает p-value < 2.2e-16
. Но из математики я получаю p_value <- 2 * pt(-abs(t), df) # [1] 1.929352e-17
. Что не так?
Я только начал отладку, как было предложено:
debug(stats:::t.test.default)
vals <- data.frame(a = c(4, 2, 4, 7, 3, 4, 8, 8, 3, 0, 1, 5, 4, 6, 4, 8, 7,
9, 6, 6, 3, 6, 7, 4),
b = c(5, 7, 6, 13, 12, 6, 14, 16, 4, 2, 7, 7, 4, 8, 9, 9,
11, 13, 12, 8, 3, 8, 7, 7))
stats::t.test(x = vals)
# One Sample t-test
# data: vals
# t = 13.214, df = 47, p-value < 2.2e-16
Затем вы шагаете до линии 98,

, где pval
оценивается как 1.929352e-17
, что я и ожидал.
Это остается неизменным до строки 112, где установлен класс class(rval) <- "htest"
.

Что не так? Меняют ли классы значения? К сожалению, я не знаю, как понять / отладить код за строкой 112.