我已经通过两种方式计算了一组数据的样本方差,甚至通过统计教科书中的公式来计算分配。我已将它们分配给var.1
和var.2
,并返回相同的值。但是,当我使用var.1==var.2
相互检查时,我收到了FALSE
的回复。有人可以向我解释原因吗?这是一些可重现的代码:
> dat <- data.frame("x"=c(180.5,181.3,181.7,
182.1,180.9,182.1,181.6,
180.3,182.6,181.7,181.6,180.5))
> print(dat)
x
1 180.5
2 181.3
3 181.7
4 182.1
5 180.9
6 182.1
7 181.6
8 180.3
9 182.6
10 181.7
11 181.6
12 180.5
> var.1 <- sum((dat$x-mean(dat$x))^2)/(12-1)
> var.2 <- ((sum(dat$x^2))-((sum(dat$x)^2)/12))/(12-1)
> print(var.1)
[1] 0.5244697
> print(var.2)
[1] 0.5244697
> var.1 == var.2
[1] FALSE
此外,identical(var.1,var.2)
会返回FALSE
,但all.equal(var.1,var.2)
会返回TRUE
:
> identical(var.1,var.2)
[1] FALSE
> all.equal(var.1,var.2)
[2] TRUE
我已经查看了这些功能的文档,但我仍然很困惑。有人可以详细说明吗?