En primer lugar, tal vez desee utilizar formatC
en lugar de round
para obtener dos dígitos, incluso cuando son cero. No hay una gran manera de hacer esto en Sweave; la mejor opción es, probablemente, simplemente crear una nueva función con un nombre corto que tenga el formato que desee; algo así como
p <- function(x) {formatC(x, format="f", digits=2)}
Eso, al menos, ahorra un poco de escribir:
The answer is $\Sexpr{p(x)}$.
Por desgracia, sin curioseaba con un nuevo controlador Sweave, no creo que haya nada más que hacer (tal vez esto es otra razón para probar knitr
, que parece estar ganando terreno rápidamente). Sweave está haciendo esto en lo que está dentro de su declaración Sexpr
, y luego reemplazando la llamada Sexpr
con el resultado.
as.character(eval(parse(text = cmd), envir = .GlobalEnv))
Sin embargo, no se puede simplemente escribir una nueva versión de as.character
; aparte del problema de que podría cambiar el comportamiento de otras formas inesperadas, debido al espacio de nombres, siempre llama a la versión en base
, incluso si hay otra versión en el entorno global.
En mi humilde opinión podría establecer un [gancho] (http://yihui.name/knitr/hooks) para eso. O pruebe [pander] (http://daroczig.github.com/pander/) que lo hace automáticamente :) – daroczig
¿Desea limitar la salida a dos dígitos como máximo, o siempre quiere dos dígitos, incluso si son cero ('1.00')? Lo primero que debería poder lograr con la configuración de 'options (digits = 2)' en su primer fragmento. – vaettchen
@vaettchen: estableciendo 'dígitos' en '2', obtendría 'pi * 100' como' 314', que es una estimación bastante aproximada. – daroczig