Fehler in der rep: invalide 'mal' argument
Wenn ich versuche, führen Sie den folgenden code für 10000 Iterationen erhalte ich die folgende Fehlermeldung.Fehler in rep(G1[, 2], G1[, 3]) : 'invalid' - mal' - argument. So don T wissen, wie man den code ändern um diesen Fehler zu beheben. Möchte im Grunde nur zum erstellen von Zeitreihen für die generator-Leistung unter Verwendung der Gleichung für die Zeit, die zum Ausfall und Reparaturzeit für 8736 Stunden im Jahr, so dass ich Zeit habe die Serie in Stunden, wenn der generator in Betrieb ist, wenn nicht. Die Ausgangslage ist, dass der generator in Betrieb ist auf die erste Stunde. Sicher gibt es eine elegantere Lösung für die Simulation dieses ich bin einfach nicht in der Lage, es zu finden. Jeder Kommentar oder Hilfe wird sehr geschätzt.
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
Also die gewünschte Ausgabe sind 8736 Werte von 12 bei ist und 0, wenn Sie AUSGESCHALTET ist
Ich habe nicht bekommen, was Sie zu erreichen versuchen, können Sie legen ein Beispiel für die gewünschte Ausgabe aus kurzen input ?
1:which(cmix > 8736)
<- Das ist schon seltsam, da wird wieder ein Vektor und 1:c(1,2,3), werden nur 1:1 ...sorry, aber ich bekomme nicht das Ziel alle diese und ich bin mir ziemlich sicher, dass Sie Ihre Fehler kommen aus einer XY-problem. Deinen code zeigen, ein Versuch, ein problem zu lösen, aber das problem selbst ist unklar.Sicher, es ist ein besserer Ansatz für die Generierung von stündlichen Daten aus dem generator mit der obigen Gleichungen. Nur haben wollen 8736 Stundenwerte auf die generation, so dass ich weiß, dass der generator in Betrieb ist für 4555 Stunden dann nicht in Betrieb für 160 Stunden dann wieder in Betrieb und so weiter..
Kann es einen besseren Weg, dies zu tun, aber mit Adela die Antwort, die Sie beheben können Sie das Skript so, dass es funktioniert. Wenn Sie möchten, dass jemand den Blick auf Ihren code ausführlich (um zu sehen, ob Sie es schreiben können effizienter), versuchen, unsere Schwester-website Code Überprüfen.
InformationsquelleAutor kelamahim | 2016-02-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen, was
G1[,3]
ist. Fehler kann verursacht werden, durch negative Werte intimes
argumentGut, ich führe den code und eine andere Warnung aufgetreten ist. Ich würde wahrscheinlich
cmix[which(cmix>8736)]
stattcmix[1:which(cmix>8736)]
. Allerdings ist der negative Wert in derG1[,3]
(die Letzte)Vielleicht ist mein ganzer Ansatz ist falsch. Überprüfen Sie den code
Netter job, es dauerte eine Weile, um zu replizieren, aber das problem ist ziemlich einfach und ist in der Tat, verursacht durch negative Werte.
G1[G1==1] <- 12
prüft alleG1
für Werte von1
. Wenn der erste Wert in der linken Spalte ist1
und der zweite Wert in der linken Spalte ist unten12
wird es daher produzieren eine negative Differenz. Ein Weg, um zu lösen, istG1[,2][G1[,2] == 1] <- 12
.Ich Liebe Euch beide 🙂
InformationsquelleAutor Adela