0
我有两列包含数据。在比较这些列时,我得到了FALSE
这一行的返回值,这种难倒我。两个看起来相等的值在等于比较时给出FALSE
dat[82,"UG_accept_avg_total.x"]
## [1] 1.842105
dat[82,"UG_accept_avg_total.y"]
## [1] 1.842105
dat[82,"UG_accept_avg_total.x"]==dat[82,"UG_accept_avg_total.y"]
## [1] FALSE
我读答案this question这解释了为什么会出现我的问题,但答案没有帮助我很多,因为:
all.equal(dat[82,"UG_accept_avg_total.x"],dat[82,"UG_accept_avg_total.y"])
## "Mean relative difference: 1.427714e-07"
isTRUE(all.equal(dat[82,"UG_accept_avg_total.x"],dat[82,"UG_accept_avg_total.y"]))
## [1] FALSE
我可能只是小数点后剃掉一些数字,因为3可能就足够了,但是检查我的数据集中的所有数据字段(超过250000)来执行此操作会浪费一些资源。有没有人有更好的建议?有没有办法降低isTRUE(all.equal(x,y))的“敏感度”?
'all.equal'有一个'tolerance'说法。增加这项工作吗? – 2013-02-22 15:15:03
只是去显示:阅读帮助页面实际上是有用的:-) – 2013-02-22 16:39:42