Tengo un problema al programar R para Sweave, y el grupo #rstats twitter a menudo apunta aquí, así que pensé en plantear esta pregunta al público de SO. Soy un analista, no un programador, así que vaya fácil en mi primera publicación.Programando R/Sweave para una salida Sexpr correcta
Aquí está el problema: Estoy redactando un informe de encuesta en Sweave con R y me gustaría informar los retornos marginales en línea usando \Sexpr{}
. Por ejemplo, en lugar de decir:
Solo el 14% de los encuestados dijo "X".
quiero escribir el informe de la siguiente manera:
Sólo \ Sexpr {p.mean (variable)} $ \ $% de los encuestados dijo 'X'.
El problema es que Sweave convierte los resultados de la expresión en \Sexpr{}
a una cadena de caracteres, lo que significa que la salida de la expresión en R y el resultado que aparece en mi documento son diferentes. Por ejemplo, por encima de utilizo la función 'p.mean':
p.mean<- function (x) {options(digits=1) mmm<-weighted.mean(x, weight=weight, na.rm=T) print(100*mmm) }
En R, la salida se ve así:
p.mean(variable) >14
pero cuando se utiliza \Sexpr{p.mean(variable)}
, Obtengo una cadena de caracteres no redondeada (en este caso: 13.5857142857143) en mi documento. He tratado de limitar la salida de mi función a digits=1
en el entorno global, en la función misma y en varios comandos. Solo parece contener lo que imprime R, no la transformación de caracteres que es el resultado de la expresión y que finalmente se imprime en el archivo LaTeX.
as.character(p.mean(variable)) >[1] 14 >[1] "13.5857142857143"
¿Alguien sabe qué puedo hacer para limitar los dígitos impresos en el archivo de látex, ya sea mediante la reprogramación de la función R o con un ajuste en Sweave o \Sexpr{}
?
Gracias, Aleksandar.Reescribí la función como esta: p.mean <- function (x) { \t mmm <-weighted.mean (x, peso = peso, na.rm = T) \t retorno (round (100 * mmm)) \t} Especifiqué la variable de ponderación porque estoy intentando minimizar la programación, ya que escribo. Debido a que todos los conjuntos de datos con los que trabajo tienen su variable de peso etiquetada como 'peso', esto hace que mis escritos sean un poco más eficientes. – deoksu