Zuerst möchten Sie vielleicht formatC
statt round
verwenden um zwei Ziffern zu erhalten, auch wenn sie Null sind. Es gibt keine großartige Möglichkeit, dies in Sweave zu tun; Die beste Option besteht wahrscheinlich darin, eine neue Funktion mit einem kurzen Namen zu erstellen, der die von Ihnen gewünschte Formatierung ausführt. so etwas wie
p <- function(x) {formatC(x, format="f", digits=2)}
Das ist zumindest ein wenig Tipparbeit erspart:
The answer is $\Sexpr{p(x)}$.
Leider ohne mit einem neuen Sweave Fahrer über Ausmisten, ich glaube nicht, dass es etwas anderes (vielleicht, dies zu tun ist ein weiterer Grund, knitr
zu versuchen, die schnell an Boden gewinnt). Sweave macht das auf, was in Ihrer Sexpr
Anweisung ist, und ersetzt dann den Sexpr
Aufruf mit dem Ergebnis.
as.character(eval(parse(text = cmd), envir = .GlobalEnv))
Sie können jedoch nicht nur eine neue Version von as.character
schreiben; Abgesehen von dem Problem, dass es das Verhalten auf andere unerwartete Weise ändern könnte, ruft es aufgrund des Namespacings immer die Version in base
auf, selbst wenn es eine andere Version in der globalen Umgebung gibt.
IMHO könnten Sie einen [Hook] (http://yihui.name/knitr/hooks) dafür einstellen. Oder versuchen Sie [pander] (http://daroczig.github.com/pander/), was das automatisch macht. – daroczig
Möchten Sie die Ausgabe auf zwei Stellen begrenzen, oder wollen Sie immer zwei Ziffern, auch wenn sie es sind Null ('1.00')? Das erste Mal sollte es möglich sein, mit "Optionen (Ziffern = 2)" in Ihrem ersten Chunk zu setzen. – vaettchen
@vaettchen: Wenn Sie 'digits 'auf' 2' setzen, erhalten Sie 'pi * 100' als' 314', was eine ziemlich grobe Schätzung ist. – daroczig