Ответ 1
Update:
- .R файлы:
source
опцияprint.eval=TRUE
приведет к печатанию результата оценки, как в интерактивной командной строке.
source("Script.R", print.eval=TRUE)
- .Rnw файлы:
knitr
по умолчанию имитирует поведение интерактивной командной строки по.print
ING. Обратите внимание, чтоknitr
может быть указан как Sweaving engine также для виниловых папок R.
Это мой оригинальный ответ. Но обратите внимание, что это обходное решение IMHO полностью устарело (и это всегда было полезно только для небольшой ленивой ниши).
Это знаменитый FAQ 7.22: Почему графическая/решетчатая графика не работает?.
Для сетчатой графики, такой как ggplot2 или решетка, вам нужно распечатать графический объект, чтобы на самом деле его нарисовать.
Интерактивно в командной строке это делается автоматически. Всюду (внутри файлов, которые должны быть получены, циклы, функции, Sweave chunks) вам нужно распечатать его явно.
print (qplot (1 : 10, 1 : 10))
В качестве альтернативы вы можете переопределить qplot
для печати:
qplot <- function (x, y = NULL, z = NULL, ...) {
p <- ggplot2::qplot (x = x, y = y, z = z, ...)
print (p)
}
(это изменяет метки оси на x и y).
Я использую этот подход в виньетках, где я хочу писать код точно так же, как пользователь в интерактивном сеансе будет его печатать.