R 代表中的错误:无效';泰晤士报';论点

R 代表中的错误:无效';泰晤士报';论点,r,time-series,montecarlo,R,Time Series,Montecarlo,当我尝试运行以下代码10000次迭代时,我得到以下错误。rep(G1[,2],G1[,3])中的错误:无效的“times”参数。因此,我不知道如何更改代码来修复该错误。基本上,我只想使用一年中8736小时的故障时间和维修时间的方程式来创建发电机性能的时间序列,这样我就可以得到发电机运行时的时间序列。起动条件为发电机在第一个小时内运行。当然,有一个更优雅的解决方案来模拟这一点,我只是无法找到它。如有任何意见或帮助,将不胜感激 MTTF<-2940 # MEDIUM TIME TO FAIL(

当我尝试运行以下代码10000次迭代时,我得到以下错误。rep(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

MTTF检查什么是
G1[,3]
时间
参数中的负值可能会导致错误

也许有更好的方法从可用数据生成时间序列我不明白您想要实现的,您能从短输入创建所需输出的示例吗?
1:which(cmix>8736)
当然,使用上述公式从生成器生成每小时数据有更好的方法。我只想在发电机上有8736小时的值,这样我就知道发电机运行4555小时,然后不运行160小时,然后再次运行等等。可能有更好的方法来做到这一点,但有了Adela的答案,你可以修复脚本,使其正常工作。如果您希望有人全面查看您的代码(看看您是否可以更高效地编写代码),请尝试我们的姐妹网站。没有负面价值。我运行了您的代码,并出现了另一个警告。我可能会使用
cmix[which(cmix>8736)]
而不是
cmix[1:which(cmix>8736)]
。然而,
G1[,3]
(最后一个)中存在负值,可能我的整个方法都是错误的。我来检查一下code@Adela:干得好,我花了一段时间复制它,但问题很简单,确实是由负值引起的<代码>G1[G1==1]