【发布时间】: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