【问题标题】:Rnotebook not showing code output for data framesRnotebook 不显示数据帧的代码输出
【发布时间】:2018-05-30 23:31:42
【问题描述】:

当我尝试查看数据框结果时,我在 Rnotebook 中的代码块输出没有出现(好像没有运行)。我必须将它通过 pander() 函数才能看到输出打印出来。这与knitr有关吗?我之所以提到这一点,是因为我在开头将选项设置为以下内容:

```{r setup, include = FALSE}
knitr::opts_chunk$set(echo = TRUE, eval = TRUE)
```

我尝试直接在块中设置选项,但得到相同的不需要的结果。有没有我没有正确配置的设置?我还必须提到,这是一种在某种程度上不一致的行为。也就是说,我可能会停止工作,一段时间后代码输出会以某种方式出现。

这是我尝试运行以将粘贴复制到 Rnotebook 的工作代码示例。

设置笔记本工作区选项

```{r setup, include = FALSE}
knitr::opts_chunk$set(echo = TRUE, eval = TRUE)
```

加载相应的库和包

```{r}
library(easypackages)
libraries("dplyr",
          "ggplot2",
          "caret",
          "tidyverse",
          "tidytext",
          "ROCR",
          "pander",
          "knitr",
          "broom")
```

以下是一些示例数据:

```{r}
library(readr)
attibm <- read_csv("https://raw.githubusercontent.com/vincentarelbundock/Rdatasets/master/csv/datasets/mtcars.csv", 
    col_types = cols(Attrition = col_character()))
```

看结构。 (此输出按预期显示)

```{r}
glimpse(attibm)
```

预览前十行(这是未显示的输出。没有任何反应)

```{r}
head(attibm)
```

此输出也不显示。 (什么都没有发生)

```{r}
attibm %>% 
  summarise_if(is.integer, mean)
```

当我通过 pander 函数时,它会显示出来。

```{r}
attibm %>% 
  summarise_if(is.integer, mean) %>% 
  pander()
```

这个也显示了

```{r}
pander(head(attibm))
```

我已经检查了发布的问题:Output of numbers in R notebook,但我无法看到与此案例的联系。

我希望这足够清楚,并且您可以重现此处显示的代码。对此问题的任何帮助将不胜感激。

【问题讨论】:

  • 我也发现了这个线程 stackoverflow.com/questions/47839559/…,但在我的情况下,我没有收到错误消息,所以我没有提供 Traceback 错误日志。
  • 嗨,我已经用 markdown + rmarkdown + pandocv2 的开发版本测试了你的代码(我不得不从开发 github 页面更新 rmarkdown,因为它不再与 pandoc v2 兼容)。无论如何,它产生的所有结果都很好。尝试保存中间 md 文件,看看发生了什么。顺便说一句,您在示例中发布了 easypackage,谢谢,我不知道!
  • 感谢@Cedric,为这个指针。我在实例 install.packages("rmarkdown") 之后重新安装了 rmarkdown,因为我找不到从哪里获取开发版本。我还从here 下载了最新版本的 pandoc,但没有任何改变。你能告诉我你从哪里得到你提到的版本以及你是如何安装它们的(使用 devtools 吗?)。很高兴知道您还发现了方便的 easypackages 包。
  • 我发现最新版本的 pandoc 不能很好地使用 [rmarkdown]((yihui.name/en/2017/11/pandoc-2)。您可以通过devtools::install_github('rstudio/rmarkdown') 安装开发版本。
  • 安装开发版library(devtools) install_github("rstudio/rmarkdown")。我并不是说你应该这样做,只有当你有最新版本的 pandoc 时,你可以通过require(rmarkdown) ;pandoc_version() 获得。如果你有我在我的电脑上下载的版本 2,那么你需要 rmarkdown 的开发版本。 @dshkol 你的信息是在我打字的时候来的,所以我们说的一样!

标签: r knitr r-markdown rnotebook


【解决方案1】:

我遇到了类似的问题,data.frame 和 DT:data.table 不会显示任何输出。
这个post 帮助了我。 我发现问题的原因是我在 .rmd 文件名中输入错误,包括非 ASCII 字符!一旦我删除它,问题就解决了。 希望这对其他人也有帮助

【讨论】:

    【解决方案2】:

    最新版本的 markdown 不再兼容 pandocv2。 您可以使用

    检查您的 pandoc 版本
    library(rmarkdown); pandoc_version()
    

    如果是pandoc版本需要markdown的开发版,可以在那里下载

    library(devtools); install_github("rstudio/rmarkdown")
    

    要缩小这是否是最新版本 pandoc 的问题,请尝试通过添加来检查生成的 .md 是否正确

     ---
     output:  
      html_notebook 
        keep_md: true
     ---
    

    【讨论】:

    • 嗨@Cedric,这确实有帮助,但也有你给出的关于 yaml 标头的指示。您能否更新答案以包含此内容?再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多