Rnotebook没有显示数据帧的代码输出

时间:2017-12-17 11:30:50

标签: r knitr r-markdown rnotebook

当我尝试查看数据框结果时,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)
```

Output expected

预览前十行(这是没有显示的输出。没有任何事情发生)

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

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

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

当我通过pander功能时,它会显示出来。

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

Output shown using pander 1

这个也显示

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

Output shown using pander 2

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

我希望这很清楚,你可以重现这里显示的代码。任何有关此问题的帮助将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

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

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

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

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

要缩小这个问题是否与最新版本的pandoc有关,请尝试通过添加

检查生成的.md是否正确
 ---
 output:  
  html_notebook 
    keep_md: true
 ---

答案 1 :(得分:1)

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