在Knitr文档中嵌入ggplot2图形:无法找到函数ggplot

MCP*_*tor 1 r ggplot2 knitr

我正在处理一份文件,并正在使用knitrggplot2.我是knitrTeX 本人的新手,因此对我正在做的事情并不过分熟悉.

当我打开RStudio来完成工作时,我首先运行以下两个命令:

require("knitr")
require("ggplot2")
Run Code Online (Sandbox Code Playgroud)

然后我点击编译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")
@
Run Code Online (Sandbox Code Playgroud)

我得到的错误是找不到ggplot函数,这很奇怪,因为如果我只是在控制台中运行上面的代码,图表只会生成查找,所以我知道包已加载并可供使用.

有什么想法吗?

谢谢,

Ben*_*min 7

使用.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") 
@
Run Code Online (Sandbox Code Playgroud)