Вставить график 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") 
@
Другие вопросы по тегам