2016-04-30 9 views
1

Gibt es eine Möglichkeit, die Ausgabe eines ausgewählten Teils der Abschrift in RStudio auszuprobieren? Es scheint, dass Sie entweder R-Code ausführen oder die gesamte RMD-Seite kompilieren müssen, um die Ausgabe zu sehen.Wie führe ich einen ausgewählten Markierungsblock in rududio (mit Messer) aus?

+0

Warum fügst du 'eval = FALSE' nicht zu unerwünschten Chunks hinzu und kompilierst den gesamten Rmd mit nur gewünschten (" ausgewählten ") Chunks? – PoGibas

+0

Die Frage bezieht sich auf Markdown-Chunks, die aus den Chunks bestehen. Zum Beispiel: 'Es gibt \ nrrow (my_data) \' personals.Wie wählst du sowas aus und siehst es als rmarkdown kompiliert – Cenoc

Antwort

1

Dies ist eine Windows-only-Lösung und nutzt die Zwischenablage anstelle der aktuellen Auswahl:

die folgende Funktion definieren:

preview <- function() { 
    output <- tempfile(fileext = ".html") 
    input <- tempfile(fileext = ".Rmd") 
    writeLines(text = readClipboard(), con = input) 
    rmarkdown::render(input = input, output_file = output) 
    rstudioapi::viewer(output) 
} 

Dann kopieren Sie den Abschlag Sie wollen und preview() laufen, um eine Vorschau . Beachten Sie, dass die Ausgabe von der Ausgabe im Abschlussdokument anders sein könnte, weil

  • der Code in der aktuellen Umgebung ausgewertet wird
  • nur die kopierte Abschlag bewertet, was bedeutet, dass das Snippet keinerlei Zusammenhang hat.

Eine Lösung ohne die Zwischenablage wird höchstwahrscheinlich rstudioapi::getActiveDocumentContext() beschäftigen. Es läuft darauf hinaus entlang der Linien einer modifizierten preview Funktion etwas nach unten

preview2 <- function() { 
    code <- rstudioapi::getActiveDocumentContext()$selection 
    # drop first line 
    # compile document (as in preview()) 
    # stop execution (THIS is the problem) 
} 

, die durch Lauf preview() vom Abschlag zu machen, gefolgt verwendet werden könnte:

preview2() 
The value of pi is `r pi`. 

Das Problem ist, ich sehe nicht, wie die Ausführung nach dem Aufruf von preview2() angehalten werden könnte, um zu verhindern, dass R versucht, The value of … zu parsen. Siehe this related discussion.