试图找到一组数字的所有组合,加起来我偶然发现了一个我无法解释的行为:
我从集合{0,0.1,...,0.9,1},
计算组合的数据帧foo <- expand.grid(a = seq(0, 1, 0.1),
b = seq(0, 1, 0.1),
c = seq(0, 1, 0.1))
总结各个组合值,
foo$sum <- apply(foo, 1, sum)
并检查总和是否等于1.
foo$t <- foo$sum == 1
奇怪的结果是并非所有等于1的总和都是这样评价的(即,由值0.6,0.3和0.1组成的所有组合不总和为1)。
> foo[161,]
a b c sum t
161 0.6 0.3 0.1 1 FALSE
> foo[171,]
a b c sum t
171 0.5 0.4 0.1 1 TRUE
为什么R不将1识别为1?我错过了什么?
> sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: x86_64-pc-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=de_DE.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=de_DE.UTF-8 LC_MESSAGES=en_US.UTF-8 LC_PAPER=de_DE.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=de_DE.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tools_3.0.2