我想找到" p"的价值。在下面(介于0和1之间),知道以下等式:
RI_26 = min(IR,na.rm=FALSE)
RI_min = 100-(sse*SUM/((1+p)*Dotation2017*100))^(1/p)
其中 RI_26 是我26区域的资源索引的最小值。在我的情况下这是一个常数。在RI_min中, sse和Dotations2017 是2个常数, p 是未知的。我知道 RI_26应该等于RI_min 。
解决它很容易,但是 SUM (存在于RI_min中)也是未知的,因为它是的函数p 如下:
`sum.function = function(p){
SUM <- c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
for(i in 1:length(Canton))
if(IR[i] < 100) {
SUM[i] <- (100-IR[i])^(1+p)*Pop[i]
SUM[27] <- SUM[27]+SUM[i]
}
SUM <- round(SUM,0)
return(SUM[27])
}
SUM = sum.function(p)
SUM返回一个数字(或向量1X1)。为了解决这个问题,我想找到满意的p值:
为此,我想做一个循环,从p = 0开始,然后将p的值增加0.01,直到达到1.当约束为True时,循环应该返回p_star的值(RI_26 / RI_min = 1.00)。
我不知道如何做到这一点,但它看起来像下面的代码:
p.function = function(){
for(...)
if(RI_26/RI_min = 1.000000) {
p_star <- p
}
return(p_star)
}
因此当RI_26 / RI_min = 1.000000时,函数将返回p_star的值。我想在我的函数中写一下:p。函数递增&#34; p&#34;并得到我想要的结果?有什么想法吗?
答案 0 :(得分:1)
for (i in seq(0, 1, by = 0.1)) {
"Your code here"
}