我正在尝试创建一个带有两个参数的函数。在我的情况下,它将重复调用第一个参数
f()
直到 f 连续 3 次返回相同的值。然后它将调用第二个参数
g()
如果 g 返回与之前返回的 f 相同的值,则函数必须返回该值。否则它将返回并再次调用第一个参数 f() 并重复循环。
这就是我到目前为止所拥有的。
call_until = function(f, g) {
while(1) {
n = f %>% chunk(3) %>% filter(f, function(v) length(unique(v)) == 1)
x = n()[1]
if (x == g()) {
return(x)
}
}
}
例如,如果 f 连续 3 次返回 4,则转到 g。如果 g 等于 f 连续三次返回的值(在本例中为 4);所以如果 g == 4,那么 call_until 应该返回 4。