У меня небольшая проблема в программировании R для Sweave, и здесь часто упоминается твиттер-группа #rstats, поэтому я решил задать этот вопрос SO-толпе. Я аналитик, а не программист, так что будьте спокойны с моим первым постом.
Вот проблема: я пишу отчет об опросе в Sweave с использованием R и хотел бы сообщить о предельной прибыли в строке, используя \Sexpr{}
. Например, вместо того, чтобы сказать:
Только 14% респондентов сказали «Х».
Я хочу написать отчет так:
Только \ Sexpr {p.mean (переменная)} $ \% $ респондентов ответили 'X'.
Проблема в том, что Sweave преобразует результаты выражения в \Sexpr{}
в символьную строку, что означает, что выходные данные из выражения в R и выходные данные, которые появляются в моем документе, отличаются. Например, выше я использую функцию 'p.mean':
p.mean<- function (x) {options(digits=1)
mmm<-weighted.mean(x, weight=weight, na.rm=T)
print(100*mmm)
}
В R вывод выглядит так:
p.mean(variable)
>14
но когда я использую \Sexpr{p.mean(variable)}
, я получаю необоснованную строку символов (в данном случае: 13.5857142857143) в моем документе. Я попытался ограничить вывод своей функции digits=1
в глобальной среде, в самой функции и в различных командах. Кажется, он содержит только то, что печатает R, а не преобразование символов, которое является результатом выражения и которое в конечном итоге печатается в файле LaTeX.
as.character(p.mean(variable))
>[1] 14
>[1] "13.5857142857143"
Кто-нибудь знает, что я могу сделать, чтобы ограничить цифры, напечатанные в файле LaTeX, либо перепрограммировав функцию R, либо установив значение в Sweave или \Sexpr{}
?