我有这段代码,我想知道它是否可以在不使用while循环的情况下执行。
quantity <- vector()
while (length(quantity) < 2) {
Random <- runif(10, 0, 1)
quantity <- which(Random < 0.3)
}
quantity
答案 0 :(得分:2)
您可以定义一个递归函数。
set.seed(42)
foo <- function() {
random <- runif(10, 0, 1)
quantity <- which(random < .3)
if (length(quantity) >= 2) return(quantity)
else return(foo())
}
foo()
# [1] 3 8
检查:
set.seed(42)
quantity <- vector()
while (length(quantity) < 2) {
Random <- runif(10, 0, 1)
quantity <- which(Random < 0.3)
}
quantity
# [1] 3 8