Einfache for-Schleife in R die Herstellung von "Ersatz-hat Länge null" in R
Ich bin ein Neuling in R, und also, was schien zu funktionieren in C und Python, überraschend bricht in R.
Ich versuche berechnet das Produkt der ersten 1000 Fibonacci-zahlen. Hier ist der vollständige code:
#PRRODUCT OF FIBONACCI NUMBERS
Fibonacci<-rep(0, 1000)
Fibonacci[0]<-1
Fibonacci[1]<-1
Product<-1
for (i in 2:1000)
{
Fibonacci[i]<-(Fibonacci[i-1])+(Fibonacci[i-2])
Product<-Fibonacci[i]*Product
}
Fibonacci[1000]
Product
Dieser gibt die folgende Fehlermeldung zurück:
Error in Fibonacci[i] <- (Fibonacci[X - 1]) + (Fibonacci[X - 2]) :
replacement has length zero
Ich bin geneigt zu denken, dass ich missverstanden Betrieb mit unterschiedlichen Elementen ein array (vielleicht ist die ich-2 in die Vektor-Beschreibung ist nicht korrekt), aber ich habe nicht gefunden, etwas über die vergangene Stunde und eine Hälfte, die hätte mir geholfen, ihn zu korrigieren.
So, keine Einblicke in die Ursachen des Problems wäre sehr geschätzt.
Vielen Dank im Voraus.
Eine einfache debugging-Technik ist das einfügen
Ich hatte ein ähnliches problem, nahm Ihren Rat an, es funktioniert nicht, weil wir sind immer die Fehler, also keine print() passiert.
print(i)
am Anfang der Schleife. Das hätte Ihnen gesagt, wo der Fehler aufgetreten ist, so dass Sie herausfinden konnte, was das problem ist.Ich hatte ein ähnliches problem, nahm Ihren Rat an, es funktioniert nicht, weil wir sind immer die Fehler, also keine print() passiert.
InformationsquelleAutor user2585222 | 2013-07-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Arrays in R sind 1-basiert.
(der Rest wie in deiner Frage)
Das problem ist
Fibonacci[0]
was ist eine 0-Länge numerisch. Wenni = 2
dieser Ausdruck hat einen rechtsnumeric(0)
:Danke!!! Ich hatte keine Ahnung! Ich drehte ein ähnliches problem für 2 Stunden, bis ich schließlich Gegoogelt es und fand diese. Riesige Hilfe.
InformationsquelleAutor Matthew Lundberg