Вставить график ggplot2 в документ Knitr: невозможно найти функцию ggplot
Я работаю над документом и использую оба knitr
а также ggplot2
, Я новичок в knitr
и сам TeX и поэтому не слишком знаком со всем, что я делаю.
Когда я открываю RStudio для выполнения работы, я сначала запускаю следующие две команды:
require("knitr")
require("ggplot2")
Затем я нажимаю на Компиляция PDF. У меня есть следующий код, который выдает ошибку:
<<histogram, echo=FALSE, fig.align='center'>>=
summary(los$hosp_svc)
summary(los$Pt_Age)
binsize = diff(range(los$Pt_Age)/30)
ggplot(los, aes(x = Pt_Age)) +
geom_histogram(binwidth = binsize, fill = "red",
alpha = 0.315, colour = 'black') +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank()) +
xlab("Patient Age in Years") +
ylab("Frequency/Count") +
ggtitle("Histogram of Patient Age")
@
Ошибка, которую я получаю, состоит в том, что функция ggplot не может быть найдена, что странно, потому что, если я просто запускаю приведенный выше код в консоли, график генерирует просто find, поэтому я знаю, что пакет загружен и доступен для использования.
Какие-нибудь мысли?
Спасибо,
1 ответ
При работе с файлами.Rnw (или файлами.Rmd) обязательно включите любые library
звонки в вашем скрипте (см. ниже). Когда вы нажимаете кнопку "Скомпилировать PDF", код R в вашем скрипте передается в новый экземпляр R, чтобы предотвратить искажение результатов в текущей среде. Это может показаться немного странным, но это хорошо для воспроизводимости. Поэтому объекты, которые не были созданы явно с помощью вашего сценария, и пакеты, которые не были явно вызваны в вашем сценарии, будут забыты, как только вы нажмете "Скомпилировать PDF".
<<histogram, echo=FALSE, fig.align='center'>>=
library(ggplot2)
summary(los$hosp_svc)
summary(los$Pt_Age)
binsize = diff(range(los$Pt_Age)/30)
ggplot(los, aes(x = Pt_Age)) +
geom_histogram(binwidth = binsize,
fill = "red",
alpha = 0.315,
colour = 'black') +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank()) +
xlab("Patient Age in Years") +
ylab("Frequency/Count") +
ggtitle("Histogram of Patient Age")
@