Sweave + RweaveHTML: вывод cat не отображается в выводе - PullRequest
2 голосов
/ 31 июля 2011

У меня проблема с Sweave + RweaveHTML

Я хочу, чтобы вывод cat заканчивался в генерируемом html-файле.У меня есть случай, в котором это не так, и я не могу понять, почему: (

test = function()
{
   #bla bla;
   cat("Result is...")
}

А затем в файле Rnw я попробовал все это:

<<echo=FALSE, results=html, include=TRUE>>=
test()
@

<<results=html, include=TRUE>>=
test()
@

<<results=html>>=
test()
@

<<>>=
test()
@

НоЯ не получаю вывод cat в результирующем HTML-файле. Я почти уверен, что это должно сработать ...

Любые идеи о том, что я должен сделать, чтобы получить вывод stdout наокончательный HTML-файл?

Thx!

1 Ответ

1 голос
/ 04 ноября 2011

Драйвер RweaveHTML работает иначе, чем драйвер RweaveLatex, в том смысле, что для создания вывода результат из каждой строки кода обрабатывается с помощью универсальной функции HTML. Другие способы создания вывода не работают. Итак, чтобы получить вывод из функции, я знаю два способа; один - вернуть значение, которое будет обработано универсальным HTML, а другой - вызвать HTML напрямую. Следующая замена вашей test функции демонстрирует оба.

test <- function() {
   #bla bla;
   HTML("Result is...")
   "Return value is"
}

Также возможно заменить cat на HTML; тогда ваша оригинальная функция будет работать. Но это что-то вроде хака и может иметь непредвиденные последствия вы бы положили

cat <- HTML

в (возможно, скрытом) фрагменте Sweave в начале документа.

...