R 运行函数100次
R 运行函数100次,r,function,loops,R,Function,Loops,a是我的数据帧。 如何通过更新pi\u hat,theta\u hat,lambda\u hat的值来运行ziu hat函数100次?每次显示pi_hat,theta_hat,lambda_hat Zi <- function(x){ x <- zi_hat=(pi_hat*theta_hat*exp(-theta_hat*a))/(pi_hat*theta_hat*exp(-theta_hat*a)+(1-pi_hat)*lambda_hat*exp(-lambda_hat*a
a
是我的数据帧。
如何通过更新pi\u hat
,theta\u hat
,lambda\u hat
的值来运行ziu hat
函数100次?每次显示pi_hat
,theta_hat
,lambda_hat
Zi <- function(x){
x <- zi_hat=(pi_hat*theta_hat*exp(-theta_hat*a))/(pi_hat*theta_hat*exp(-theta_hat*a)+(1-pi_hat)*lambda_hat*exp(-lambda_hat*a))
pi_hat=(1/n)*sum(zi_hat)
theta_hat=sum(zi_hat)/(sum(zi_hat*a))
lambda_hat=(n*sum(zi_hat))/(n*sum(a)-sum(zi_hat)*sum(a))
c(pi_hat,theta_hat,lambda_hat) #print out the updated data#
if (?>100) break
}
Zi你可以试试这个
Zi <- function(x){
counter = 1
while(counter <= 100)
{
x <- zi_hat=(pi_hat*theta_hat*exp(-theta_hat*a))/(pi_hat*theta_hat*exp(-theta_hat*a)+(1-pi_hat)*lambda_hat*exp(-lambda_hat*a))
pi_hat=(1/n)*sum(zi_hat)
theta_hat=sum(zi_hat)/(sum(zi_hat*a))
lambda_hat=(n*sum(zi_hat))/(n*sum(a)-sum(zi_hat)*sum(a))
c(pi_hat,theta_hat,lambda_hat) #print out the updated data#
counter = counter + 1
}
}
Zi谢谢@cccmir。很好的例子。
它必须分别返回zi、pi_hat、lambda_hat和theta_hat
Zi <- function(pi_hat,theta_hat,lambda_hat){
counter = 1
while(counter <= 10000)
{
zi_hat<-(pi_hat*theta_hat*exp(-theta_hat*a))/(pi_hat*theta_hat*exp(-theta_hat*a)+(1-pi_hat)*lambda_hat*exp(-lambda_hat*a))
pi_hat=(1/n)*sum(zi_hat)
theta_hat=sum(zi_hat)/(sum(zi_hat*a))
lambda_hat=(n*sum(zi_hat))/
(n*sum(a)-sum(zi_hat)*sum(a))
counter = counter + 1
}
return(lambda_hat)
}
Zi查看中的循环或while