我想创建一个自动knitr报告,它将为我的数据框中的每个数字字段生成直方图.我的目标是做到这一点,而不必指定实际字段(此数据集包含70多个字段,我还希望重用脚本).

我try 了几种不同的方法:

  • 将绘图保存到对象p,然后在循环后调用p
  • 创建绘图数组PLOTS <- NULL,并在循环PLOTS <- append(PLOTS, p)中添加绘图
  • 甚至try 将每个文件保存到.png个文件,但不必处理保存和重新访问每个文件的开销

恐怕我无法理解这些复杂的情节.

问题

如何使以下区块将循环中的每个绘图输出到报告中?目前,我能达到的最好效果是将最终绘图的输出保存到一个对象,并在循环外调用该对象.

R在RStudio中使用knitr标记块:

```{r plotNumeric, echo=TRUE, fig.height=3}
suppressPackageStartupMessages(library(ggplot2))
FIELDS <- names(df)[sapply(df, class)=="numeric"]
for (field in  FIELDS){
  qplot(df[,field], main=field)  
}
```

从这一点上,我希望进一步定制情节.

推荐答案

qplot包在print里.

如果qplot在一个循环之外,knitr会帮你做到这一点,但是(至少我安装的版本)在循环内部没有检测到这一点(这与R命令行的行为一致).

R相关问答推荐

通过绘图 Select 线串几何体并为其着色

R中具有gggplot 2的Likert图,具有不同的排名水平和显示百分比

编辑文件后编辑RhandsonTable

过滤器数据.基于两列的帧行和R中的外部向量

使用strsplit()将向量操作为数据框

在组中添加值增加和减少的行

计算时间段的ECDF(R)

当我们有多个特殊字符时,使用gsub删除名称和代码'

根据列A中的差异变异列,其中行由列B中的相对值标识

解析R函数中的变量时出现的问题

Ggplot2中geom_tile的动态zoom

判断函数未加载R中的库

整理曲线图、曲线图和点图

R预测包如何处理ARIMA(Auto.arima函数)中的缺失值

如何根据其他列中的两个条件来计算数据帧中的行之间的差异?

名字的模糊匹配

计算多变量的加权和

抽样变换-REXP与RWEIBUR

我已经运行了几个月的代码的`Palette()`中出现了新的gglot错误

GOGPLATE geom_boxploy色彩疯狂