R函数可能的舍入误差

时间:2018-03-07 17:51:40

标签: r

我正在尝试编写一个设置较低级别截止的函数"

trunc1 <- function(x,threshold) ifelse(x<=threshold,0,x)
df<-data.frame(a=seq(0,1,0.1),b=seq(0.05,1.05,0.1))

我跑的时候:

trunc1(df$a,0.5)

我得到了

0.0 0.0 0.0 0.0 0.0 0.0 0.6 0.7 0.8 0.9 1.0

这是我的期望。然而,

trunc1(df$a,0.6)

返回

0.0 0.0 0.0 0.0 0.0 0.0 0.6 0.7 0.8 0.9 1.0

我对此感到惊讶,因为0.6&lt; = 0.6 ifelse函数应该返回0而不是0.6。我知道这应该很简单。

x<-seq(0,1,0.1)<=0.6
names(x)<-seq(0,1,0.1)

返回

   0   0.1   0.2   0.3   0.4   0.5   0.6   0.7   0.8   0.9     1 
TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE 

版本                _
平台x86_64-apple-darwin15.6.0
拱x86_64
os darwin15.6.0
system x86_64,darwin15.6.0
状态
专业3 未成年人4.3
2017年
年 月11日 第30天 svn rev 73796
语言R
version.string R版本3.4.3(2017-11-30) 昵称风筝吃树

0 个答案:

没有答案