Wie erfasst man die Ausgabe von system ()

Diese Frage wurde motiviert vonRmarkdown gibt die Ergebnisse des Systembefehls nicht in die HTML-Datei aus. Aus irgendeinem Grund ist die Ausgabe vonsystem() in R (odersystem2()) kann nicht von @ erfasst werdsink() odercapture.output(), also momentan gibt es keine Möglichkeit für knitr, um die Ausgabe aufzuzeichnen. Zum Beispiel in der R-Konsole:

> system('ls')
DESCRIPTION
NAMESPACE
R
README.md
inst
man

aber in einem knitr document, die Ausgabe wird nicht angezeigt, dacapture.output(system('ls')) istcharacter(0), d. h. die Ausgabe kann nicht erfasst werden. Natürlich kann ichcat(system('ls', intern = TRUE), sep = '\n') wie ich in der Antwort auf diese Frage erwähnt habe, aber das ist irgendwie umständlich. Ich frage mich, ob es eine Möglichkeit ist, die Ausgabe von @ zu erfassesystem() ohne zu benutzenintern = TRUE undcat().

Aktualisiere: sehenhttps: //github.com/yihui/knitr/issues/120 für einen Hack, den ich bereitgestellt habe, um das Problem zu lösen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage