全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1061 1
2014-06-25
程序如下,运行没问题。现在想要重复运行100次,求各个量的均值。用replicate函数不知道该怎么用,因为data.frame()貌似确定了是一个格式,再输入Ls,运行显示结果是Ls没有定义。这个该怎么解决呢?
queue<-function(lambda, T, S){
  k<-0; wt<-0; wn<-0; ws<-0
  tp<-0; nA<-0; t<-0
  r<-runif(1); tA<--1/lambda*log(r)
  tD<-rep(Inf, S); SS<-rep(0, S+1)
  repeat{
    t1<-if(SS[1]==0) Inf else min(tD)
    i1<-if(SS[1]==0) 1 else which.min(tD)
    k<-k+1; wt[k]<-t; wn[k]<-SS[1]
    if (tA < T){
      ws[k]<-min(tA, t1)-t
      if (tA < t1){
        t<-tA; nA<-nA+1
        r<-runif(1); tA<-t-1/lambda*log(r)
        n<-SS[1]; SS[1]<-n+1
        for (i in 1:S){
          if (SS[1+i]==0){
            SS[1+i]<-1
            mu<-runif(1,0.0833,0.3333); tD[i]<-t+mu
            break
          }
        }
      }else{
        t<-t1; n<-SS[1]; SS[1]<-n-1
        if (n==1){
          SS[2:(S+1)]<-0; tD[1:S]<-Inf
        }else if (n<=S){
          SS[1+i1]<-0; tD[i1]<-Inf
        }else{
          mu<-runif(1,0.0833,0.3333); tD[i]<-t+mu
        }
      }
    }else{
      ws[k]<- if( t1==Inf) 0 else t1-t
      n<-SS[1]
      if (n>0){
        t<-t1; SS[1]<-n-1;
        if (n==1){
          SS[2:(S+1)]<-0; tD[1:S]<-Inf
        }else if (n<=S){
          SS[1+i1]<-0; tD[i1]<-Inf
        }else{
          mu<-runif(1,0.0833,0.3333); tD[i]<-t+mu
        }
      }else
        tp<-1
    }
    if (tp==1) break
  }
  data.frame(Ls=sum(ws*wn)/t, Ws=sum(ws*wn)/nA,
             Pwait=sum(ws[wn>=S])/t,nA,tA)
}
queue(lambda=6,T=7,S=3)

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-6-26 00:45:22
x<-replicate(100,queue(lambda=6,T=7,S=3),simplify="matrix")##执行100次,结果保存为矩阵
x<-as.numeric(x)                                                               
x<-matrix(x,nrow=5,byrow=FALSE)                                     ##将矩阵变为数值矩阵
rowMeans(x)                                                                     ##求平均
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群