循环条件返回NA和缺少的值(R)
我有134个观察值存储在循环条件返回NA和缺少的值(R),r,R,我有134个观察值存储在loss\u scaled变量中,并在x\u sort中排序。我想估计每个j元素的参数,我需要循环,直到其中一个参数位于完整数据中的第j个和(j+1)个元素。参数估计公式在函数A和B中。问题是在循环部分,我认为条件返回NA,因为我已经尝试运行它,并且输出如下 Error in if (scale1 < k1 || scale1 > k2) { : missing value where TRUE/FALSE needed 非常感谢。请提供一个最小的可复
loss\u scaled
变量中,并在x\u sort
中排序。我想估计每个j
元素的参数,我需要循环,直到其中一个参数位于完整数据中的第j个和(j+1)个元素。参数估计公式在函数A
和B
中。问题是在循环部分,我认为条件返回NA,因为我已经尝试运行它,并且输出如下
Error in if (scale1 < k1 || scale1 > k2) { :
missing value where TRUE/FALSE needed
非常感谢。请提供一个最小的可复制示例,请参阅
x_sort=sort(loss_scaled)
len=length(loss_scaled)
k=0.372238898
A=function(m){
a1=log(x_sort)
a2=(log(x_sort))^2
val1=m*sum(a2[1:m])-sum(a1[1:m]^2)
return(val1)
}
B=function(m){
a1=log(x_sort)
a2=(log(x_sort))^2
val2= len*(sum(a1[1:m]))-m*(sum(a1))
return(val2)
}
scale1=x_sort[1]*prod((x_sort/x_sort[1])^(k^2))
shape1=len*(sum(log(x_sort/x_sort[1]))^(-1))
for (j in 1:(length(x_sort)-1)){
k1=x_sort[j]
k2=x_sort[j+1]
if(scale1 < k1 || scale1 > k2){
shape1=(k^2*B(j)+sqrt(k^4*B(j)^2+4*n*len*k^2*A(j)))/(2*A(j))
scale1=exp((len*k^2)/(j*shape1))*(prod(x_sort[1:j])^(1/j))
}
else{
break()
}
}