Когда я пытаюсь запустить следующий код для 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
Таким образом, желаемый результат - 8736 значений 12, когда включено, и 0, когда выключено.
1:which(cmix > 8736)
‹- Это странно, так как вернет вектор, а 1:c(1,2,3) будет только 1:1 ... извините, но я не понимаю цель всего этого, и я почти уверен ваша ошибка связана с проблемой XY. Ваш код показывает попытку решить проблему, но сама проблема неясна. - person Tensibai   schedule 18.02.2016