Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 带有模拟研究功能的循环内部数据帧不起作用_R_Function_Loops - Fatal编程技术网

R 带有模拟研究功能的循环内部数据帧不起作用

R 带有模拟研究功能的循环内部数据帧不起作用,r,function,loops,R,Function,Loops,我正在做我的模拟研究循环。但它并没有给出一个好的输出。我希望能够再次调用输出。 这是循环中的函数 #generate data gen<-function(n,lambda,b0,b1){ u<- runif(n,0,1) s1<- rexp(n,lambda) x<- rnorm(n,0,1) t1= -log(1-sqrt(u))/(exp(-b0 - b1*x)) #inverse method s<- 1*(t1<

我正在做我的模拟研究循环。但它并没有给出一个好的输出。我希望能够再次调用输出。 这是循环中的函数

#generate data
gen<-function(n,lambda,b0,b1){
  
  u<- runif(n,0,1)
  s1<- rexp(n,lambda)
  x<- rnorm(n,0,1)
  
  t1= -log(1-sqrt(u))/(exp(-b0 - b1*x)) #inverse method
  
  s<- 1*(t1<s1)
  t= pmin(t1,s1)
  
  data1<-data.frame(x,t,t1,s1,s)
  return(data1)
}
LLF<- function(para){

  b0=para[1]
  b1=para[2]
  
  z1= log(2*(exp(-b0 - b1*x))) - (exp(-b0 - b1*x))*t + log(1-exp(-exp(-b0 - b1*x)*t))
  
  j=sum(z1)
  return(j)
}
#生成数据

gen由于您希望将数据保存到数据帧中,因此我假设您希望
jj
包含结果。根据您的代码,您可能希望执行以下操作:

#before the loop starts:
jj <- data.frame("name1" = numeric(), "name2" = numeric())

#inside the loop:
jj[i, ] <- c(mle$estimate[1],mle$estimate[2]))
#循环开始前:

jj由于您希望将数据保存到数据帧中,因此我假设您希望
jj
包含结果。根据您的代码,您可能希望执行以下操作:

#before the loop starts:
jj <- data.frame("name1" = numeric(), "name2" = numeric())

#inside the loop:
jj[i, ] <- c(mle$estimate[1],mle$estimate[2]))
#循环开始前:

那么你希望jj是一个带有结果的data.frame?现在,您正在使用捕获mle$estimate[1]和[2]的新data.frame覆盖jj变量,同时丢弃其他所有内容。(从技术上讲,您也在保存mle、x、y和data2,但在每个步骤中都会覆盖它们。因此,基本上,您的代码只保存最后一次迭代,因为之前的所有迭代都会被覆盖。
maxLik()
来自哪里?我怎么能不覆盖它呢?maxLik()来自库(maxLik)那么,您希望jj是一个带有结果的data.frame吗?现在,您正在使用捕获mle$estimate[1]和[2]的新data.frame覆盖jj变量,同时丢弃所有其他变量。(从技术上讲,您也在保存mle、x、y和data2,但在每个步骤中都会覆盖它们。因此,基本上,您的代码只保存最后一次迭代,因为之前的所有迭代都会被覆盖。
maxLik()
来自哪里?我怎么能不覆盖它呢?maxLik()来自库(maxLik)谢谢你,真管用!谢谢你,真管用!