R:运行while循环,直到向量的所有元素都小于阈值
在R中,我希望while循环继续,直到特定向量“theta_diff”(在每次迭代中在while循环中更新)中的每个元素降低到特定阈值“epsilon”以下。 目前,我可以通过在while循环测试条件中使用OR条件来实现这一点(theta_diff是一个2元素向量): 我想知道是否有更聪明的方法来做到这一点?我尝试了all(),但它实现了AND逻辑而不是OR逻辑,因此即使其中一个theta_diff元素满足条件,while循环也会停止R:运行while循环,直到向量的所有元素都小于阈值,r,loops,vector,while-loop,logical-operators,R,Loops,Vector,While Loop,Logical Operators,在R中,我希望while循环继续,直到特定向量“theta_diff”(在每次迭代中在while循环中更新)中的每个元素降低到特定阈值“epsilon”以下。 目前,我可以通过在while循环测试条件中使用OR条件来实现这一点(theta_diff是一个2元素向量): 我想知道是否有更聪明的方法来做到这一点?我尝试了all(),但它实现了AND逻辑而不是OR逻辑,因此即使其中一个theta_diff元素满足条件,while循环也会停止 while(all(theta_diff>epsilo
while(all(theta_diff>epsilon))
{
}
搜索更智能选项的主要灵感在于:根据程序的不同,θ(u)差向量的维数可能会发生变化,我想使while循环条件独立于θ(u)差向量的长度。我可以想出两个选项(至少一个
theta_diff
元素大于epsilon
):
any(theta\u diff>epsilon)
max(theta_diff)>epsilon
all(theta\u diff>epsilon)
min(theta_diff)>epsilon
有时使用
重复
比在时使用更具可读性。为什么不考虑:
repeat {
## blablabla
if (all(theta_diff > epsilon)) break
}
也就是说,做……直到……
repeat {
## blablabla
if (all(theta_diff > epsilon)) break
}