2016-05-24 8 views
2

Ich dachte, dass Sie den Browser() Befehl in RStudio verwenden können, um durch Zeilen im Code zu gehen. In vielen Fällen funktioniert das. In R-Skripten scheint es jedoch nicht zu funktionieren. Hier ist ein minimales Beispiel (einfach den folgenden Code in test.r kopieren):RStudio "nächste Zeile" -Befehl im Browser() funktioniert nicht

print("1") 
browser() 
print("2") 
wrong # Produces error, which can not be tracked using browser 
print("3") 

(R-3.3.0, RStudio 0.99.489).
Jede Hilfe ist willkommen!

Dank @Batanichek, das folgende Skript löst das Problem:

{ 
print("1") 
browser() 
print("2") 
wrong 
print("3") 
} 

Antwort

2

Wenn ich Sie richtig verstehe

Sie alle Skript übergeben können in {}

wie

{ 
+ print("1") 
+ browser() 
+ print("2") 
+ wrong # Produces error, which can not be tracked using browser 
+ print("3") 
+ } 
[1] "1" 
Called from: top level 
Browse[1]> n 
debug at #4: print("2") 
Browse[1]> n 
[1] "2" 
debug at #5: wrong 
Browse[1]> n 
Error: object 'wrong' not found 

dann run wird bei browser()

zu stoppen Oder wenn Quelle

source('~/.active-rstudio-document') 
[1] "1" 
Called from: eval(expr, envir, enclos) 
Browse[1]> n 
debug at ~/.active-rstudio-document#4: print("2") 
Browse[2]> n 
[1] "2" 
debug at ~/.active-rstudio-document#5: wrong 
Browse[2]> n 
Error in eval(expr, envir, enclos) : object 'wrong' not found 
+0

Ja, es stoppt. Aber dann geht es mit dem ganzen Skript weiter, anstatt Schritt für Schritt durchzugehen. Ich glaube 'Browse [1]> n' funktioniert nicht. – Christoph

+0

hmm .. für mich funktioniert es Schritt für Schritt RStudio 0.99.896, R-3.2.5 – Batanichek

+0

Ok. Das funktioniert. Aber als test.R Skript funktioniert es nicht. Funktioniert es auch, wenn Sie es als .R-Skript "Quelle" (= Strg + Umschalt + S) ausführen? – Christoph