【问题标题】:Plot output using knitr is missing panel使用 knitr 绘制输出缺少面板
【发布时间】:2014-11-15 23:33:20
【问题描述】:

我有一个包含 3 列的数据框。 Days 列是一个因子向量,包含 2 个因子“weekdays”和“weekend”

使用此代码,我创建了一个包含 2 个面板的 2 个因子的图:

xyplot(Avg_Steps ~ Interval | Days, groups = Days, data = agg_subdata_avg, type = "l", layout = (c(1,2)))

但是,当在 R markdown 文件中使用相同的代码并使用 knitr 创建 HTML 输出时,顶部面板不会显示。造成这种差异的原因是什么?

{r, echo = TRUE, fig.width=6, fig.height = 6}
library(lattice)
xyplot(Avg_Steps ~ Interval | Days, groups = Days, data = agg_subdata_avg, type = "l", layout =      (c(1,2)))

【问题讨论】:

    标签: html r plot markdown knitr


    【解决方案1】:

    使用您提供的代码复制您描述的行为的一种方法是首先过滤掉“agg_subdata_avg”中“Days”列中包含“weekend”的所有行,然后继续绘图。

    只是为了仔细检查两个级别是否都表示,您可以尝试将此行插入您的 Rmd 文件中 xyplot 函数旁边,然后重新编织:

    print(unique(agg_subdata_avg$Days))
    

    至于为什么代码可以在 R 控制台中完美运行但在创建 HTML 文件时失败,很可能 [1] 这两个数据框是实际上并不等同(是否有可能您对其中一个进行了更改而不是对另一个进行了更改?)。

    如果这些都没有帮助,那么您最好的选择可能是提供更多信息:R、knitr 等的版本,并可能添加一个可重现的示例。

    [为了它的价值,我尝试编写一个包含您的代码的文件,并且一切都按预期工作。]

    [1] 或者,更准确地说:“每当这种事情发生在我身上,都是因为”......

    【讨论】:

      【解决方案2】:

      我现在从“可重复研究”课程中完成相同的作业。 我得到了相同的结果:两个面板中只有一个显示在 html 文件中。

      事实证明,在创建 R markdown 文件的过程中,我使用了选项 cache = TRUE,虽然我没有删除它,但我第一次创建了不正确的旧图。

      【讨论】:

        【解决方案3】:

        之前的提示很有用:“print(unique(agg_subdata_avg$Days))”。

        我遇到了同样的问题,发现根本原因是语言环境设置。 课程作业需要用因子值填充一个新列(“工作日”、“周末”)。比较日期值时,您必须检查如何填充数据。

        【讨论】:

          猜你喜欢
          • 2013-06-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多