In primo luogo, è forse desidera utilizzare formatC
invece di round
per ottenere due cifre anche quando sono zero. Non c'è un ottimo modo per farlo in Sweave; l'opzione migliore è probabilmente semplicemente creare una nuova funzione con un nome breve che faccia la formattazione desiderata; qualcosa come
p <- function(x) {formatC(x, format="f", digits=2)}
Questo almeno risparmiare un po 'di battitura:
The answer is $\Sexpr{p(x)}$.
Purtroppo, senza pasticciare in giro con un nuovo driver Sweave, non credo che ci sia niente altro da fare (forse questo è un altro motivo per provare knitr
, che sembra guadagnare terreno velocemente). Sweave sta facendo questo su cosa c'è dentro la tua istruzione Sexpr
e poi sostituendo la chiamata Sexpr
con il risultato.
as.character(eval(parse(text = cmd), envir = .GlobalEnv))
Tuttavia, non è possibile scrivere una nuova versione di as.character
; a parte il problema che potrebbe modificare il comportamento in altri modi imprevisti, a causa del namespace, chiama sempre la versione in base
anche se esiste un'altra versione nell'ambiente globale.
IMHO è possibile impostare un [gancio] (http://yihui.name/knitr/hooks) per quello. Oppure prova [pander] (http://daroczig.github.com/pander/) che lo fa automaticamente :) – daroczig
Vuoi limitare l'output a due cifre max o vuoi sempre due cifre, anche se sono zero ('1.00')? Il primo che dovresti essere in grado di ottenere con l'impostazione di 'opzioni (cifre = 2)' nel tuo primo blocco. – vaettchen
@vaettchen: impostando 'cifre 'su' 2', si otterrebbe 'pi * 100' come' 314', che è una stima piuttosto approssimativa. – daroczig