【发布时间】:2016-01-22 09:21:15
【问题描述】:
我必须对变量 i 执行一个方程,直到它“大约等于”100,但我似乎无法让它工作。
大约等于,我的意思是 100 上 +/-2 的容差。
我有一个带有几个 if 语句的 while(TRUE) 循环,但我似乎无法让 if 正常工作。
这是我目前拥有的:
PercentageIncrement <- function(RainPerc,Duration) {
i = RainfallDepthChange(Duration)
print(paste0("Output: ", i))
while(TRUE) {
i = i+(RainPerc*2)
if (i > 98) {
if (i < 102) {
break()
}
}
print(paste0("Output: ", i))
}
}
我已经上传了整个函数以提供一些上下文。目前,如果我使用以下输入运行此函数:
PercentageIncrement(14.29,7)
我得到以下输出:
[1] "Output: 14.2857142857143"
[1] "Output: 42.8657142857143"
[1] "Output: 71.4457142857143"
这完全正确,只是它缺少第四个输出。在这种情况下,有这些输入,输出应该是 100,但其他输入会在 98 和 102 之间变化。
我该如何解决这个问题?
谢谢
【问题讨论】:
-
你有奇怪的
if条件。为什么不简单地if(i > 98 & i < 102)? -
这仍然只输出到 71.4.... 并且不包括 100
-
我不是说它会解决问题。
-
i > 98 & i < 102的确切条件是什么?你不想if (i > 102)吗? -
完全不一样。
标签: r if-statement while-loop equality