下面的while循环需要将每个人的值降低到 1.它所做的是将函数中的公式作为公式,从中减去1,然后将尝试满足循环中所述的条件。一旦x的值为每个人一个,它将停止运行。这需要与上面的功能同时完成。我希望将它们都存储为函数,并使用purrr的map函数来完成此操作,但是,这两种方法都不起作用。仅在下面提供的功能上。最终,我想将新值存储为矢量,但是,现在,我已经在上面设置了打印设置,以查看其作用
while(abs(X-1) >= 0.000001) {
r<-if_else (X-1>0,
pop_nest$data["approx.r"]+0.00000001,
pop_nest$data["approx.r"]-0.00000001)
}
print(r)
x<-function(pop_nest) {
sum(exp(-pop_nest["approx.r"]*pop_nest["x"])*pop_nest["Ro"], na.rm = TRUE)
}
我也尝试过将while循环放入函数中,但是出现以下错误。
In addition: Warning messages:
1: In while (abs(X - 1) >= 1e-06) { :
the condition has length > 1 and only the first element will be used
Show Traceback
Rerun with Debug
Error: `true` must be length 400 (length of `condition`) or one, not 0
我正在寻找一些建议,以使此while循环在嵌套数据框中的每个个体上运行,以满足循环中所述的条件。除了使用while循环外,还有其他建议值得赞赏(即uniroot是否可以解决此问题)?
当我删除一个人并将其放入向量中时,可以获得我想要的结果(因此嵌套了数据框)。非常感谢您的投入!