【发布时间】:2015-06-15 01:28:33
【问题描述】:
我正在运行下面的代码。函数 Ax 返回值 1。但 ifelse 语句无法识别 Ax==1。
我尝试过使函数的输出为双精度,并且所有数值都加倍。这没有奏效。
我希望:
1) 获得帮助解决此特定案例
2) 获取有关如何在未来避免此问题的提示
Axfun<-function(beta,gamma,a,b,g,H0stud,Wh,Wi){
((b*beta + g*gamma)*(1 + 2*g*gamma)*(1 + gamma + b*((-beta)*(1 + gamma) + a*(-1 + beta)*(1 + g*gamma)))*H0stud*Wi)/
((-1 + b*beta)*(1 + gamma)*((-g)*gamma*(1 + 2*g*gamma)*Wi + b*beta*((-1 + g*gamma*(-2 + H0stud) + H0stud)*Wh - (1 + g*gamma)*H0stud*Wi)))
}
Ax<-Axfun(2^1,
2^0,
2^0,
2^-3,
2^-1,
1,
1,
0.4)
ifelse(Ax>=1, 0, Ax)
【问题讨论】:
-
查看
?all.equal,例如all.equal(Ax, 1),允许tolerance内部存在差异。 -
也是The R Inferno的第1圈
标签: r if-statement double logic