Sono un principiante in R, e quindi quello che sembrava funzionare bene in C e Python, si rompe sorprendentemente in R. Sto provando a calcolare il prodotto dei primi 1000 numeri di Fibonacci. Ecco il codice completo:Semplice per loop in R che produce "sostituzione ha lunghezza zero" in R
#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
Ciò restituisce il seguente errore:
Error in Fibonacci[i] <- (Fibonacci[X - 1]) + (Fibonacci[X - 2]) :
replacement has length zero
sono incline a pensare che abbia fraintesi operando con diversi elementi di un array (forse l'i-2 nel vettore la descrizione non è corretta), ma non ho trovato nulla nell'ultima ora e mezza che mi avrebbe aiutato a correggerlo. Quindi, qualsiasi comprensione della causa del problema sarebbe più apprezzata.
Grazie in anticipo.
Una tecnica semplice debug è quello di inserire 'di stampa (i)' all'inizio del ciclo. Questo ti avrebbe detto dove si è verificato l'errore in modo da poter capire qual è il problema. –
Ho avuto un problema simile, ho seguito il tuo consiglio, non funziona perché stiamo ricevendo l'errore, quindi non avviene la stampa(). – Benzle