#r
#r
Вопрос:
У меня есть вектор, т. Я хочу вычесть среднее и разделить на его отклонение. Исходя из моих ожиданий, среднее значение после этого будет равно 0. Однако получается некоторое число, близкое к 0. Я не знаю, что здесь происходит? Почему оно не равно 0? Это из-за какого-то «волшебного» алгоритма в R?
> t <- c(1,2,3,7)
> t
[1] 1 2 3 7
> mean(t)
[1] 3.25
> t - mean(t)
[1] -2.25 -1.25 -0.25 3.75
> (t - mean(t))/sd(t)
[1] -0.85552774 -0.47529319 -0.09505864 1.42587956
> mean((t - mean(t))/sd(t))
[1] -1.734723e-17
Комментарии:
1. Это число практически равно нулю. Это из-за точности с плавающей запятой. Напомним, что числа -0.85552774, например, не могут быть точно сохранены на компьютере. например, попробуйте сделать
a <- 0.1 0.2;
сейчас, попробуйтеa == 0.3
, это никогда не даст вам true, даже если вы знаете, чтоa is 0.3
2. См. R FAQ: hep.by/gnu/r-patched/r-faq/R-FAQ_82.html