rep:invalide'times'参数出错

kel*_*him 6 r time-series montecarlo

当我尝试为10000次迭代运行以下代码时,我得到以下错误.代表中的错误(G1 [,2],G1 [,3]):无效的'times'参数.所以不知道如何更改代码来修复该错误.基本上只是想创建发电机性能的时间序列,使用时间失败的等式和一年中8736小时的修复时间,这样我就可以在发电机运行的时间内以小时为单位.起始条件是发电机在第一个小时运行.肯定有一个更优雅的解决方案来模拟这个我只是无法找到它.任何评论或帮助将不胜感激.

MTTF<-2940 # MEDIUM TIME TO FAIL(hours)
MTTR<-60 # MEDIUM TIME TO REPAIR (hours)
TTF<--MTTF*log(runif(100))# equation for Time to fail 
TTR<--MTTR*log(runif(100))# equation for Time to repair
mix<-rep(0,length(TTF)+length(TTR))
sw<-rep(0,length(TTF)+length(TTR))
for(i in 1:length(TTF)){
mix[2*i-1]<-TTF[i]
sw[2*i-1]<-1
mix[2*i]<-TTR[i]
}
cmix<-cumsum(mix)
ccmix<-cbind(cmix[1:which(cmix>8736)],sw[1:which(cmix>8736)])
ccmix[dim(ccmix)[1],1]<-8736


G1<-round(ccmix)
# transform binary values
G1[G1 == 1] <- 12 # is the capacity of the generator

G1 <- cbind(G1, c(G1[1,1], diff(G1[,1])))
a1 <- rep(G1[,2], G1[,3]) ## GENERATING 8736 Values
Run Code Online (Sandbox Code Playgroud)

因此,当打开时,所需的输出为8736值12,关闭时为0

Ade*_*ela 9

检查是什么G1[,3].错误可能由times参数中的负值引起

  • 我爱你们俩:) (3认同)
  • @Adela:干得好,我花了一段时间来复制它,但问题非常简单,确实是由负值引起的.`G1 [G1 == 1] < - 12`检查所有'G1`的值为'1`.如果左列的第一个值是"1"而左列的第二个值低于"12",那么它将产生负差.解决这个问题的一种方法是`G1 [,2] [G1 [,2] == 1] < - 12`. (2认同)