2015-06-29 5 views
19

modalità debug in R a volte butta fuori il seguente errore:R: Errore in fBody [[i]]: tale indice al livello 4

 Error in fBody[[i]] : no such index at level 4 

Cosa provoca questo? E come evitarlo?

+0

Non sono sicuro che abbiamo abbastanza informazioni per dare una consulenza adeguata. Che tipo di debugger stai usando? Modalità di debug di RStudio, forse? Stai chiamando browser(), debugonce(), stai recuperando la traccia dopo un crash o qualche altro metodo? Un esempio riproducibile farebbe molto. –

+0

Sto usando RStudio debugSource(). Sfortunatamente sarebbe difficile per me costruirmi un esempio in questo momento, proverò a farne uno dopo però. – Massyanya

+0

Non è necessario un esempio. Questo è un problema molto comune in RStudio. – SmallChess

risposta

21

Questo è un bug in RStudio. Lo capisco spesso mentre scrivo il mio codice R. Questo è tutto quello che faccio sempre e lavoro:

  1. Restarted RStudio
  2. Cancella tutti i breakpoint (c'è un menù per questo)
  3. Tagliare l'intero codice sorgente, il file che si desidera eseguire il debug. Salva il file vuoto.
  4. Incollare il codice sorgente. Salvarla.

Il bug ha qualcosa a che fare con la posizione dei punti di interruzione. Per qualche ragione, RStudio è confuso con i nuovi breakpoint con qualcos'altro. Tagliando e incollando il codice sorgente, stiamo costringendo RStudio a "dimenticare" i vecchi breakpoint e avviare l'aggiornamento. È come dare un nuovo file a RStudio.

Ora è possibile eseguire nuovamente una sessione di debug.

Gli sviluppatori di RStudio, per favore risolvono questo errore stupido.

+1

Nota che è passato più di un anno da quando è stata fatta la domanda e il bug è ancora presente. –

+1

Bug ancora presente in RStudio 1.0.136. Questa soluzione funziona ancora per fortuna. –

+2

nella nuova versione, sembra semplicemente cancellare i breakpoint e il re-sourcing è sufficiente –

2
  1. Salva file senza breakpoint
  2. Sessione -> Restart R

di solito funziona per me ...