Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rmarkdown和Renv的再现性问题_R_Ggplot2_R Markdown_Tidyverse_Renv - Fatal编程技术网

Rmarkdown和Renv的再现性问题

Rmarkdown和Renv的再现性问题,r,ggplot2,r-markdown,tidyverse,renv,R,Ggplot2,R Markdown,Tidyverse,Renv,我最近注意到,相同的R标记文档在不同的条件下运行时生成了不同的图(例如,不同的项目)。作为一个玩具例子,考虑下面的文件: --- title: "Example" output: html_document --- ```{r plot, warning=FALSE, echo=FALSE} library("tidyverse") tibble(mu = c(-9.4, -9.3, -9.2, -9, -8.9, -8.8, -8.7, -8.5, -8.4, -8.3, 0),

我最近注意到,相同的R标记文档在不同的条件下运行时生成了不同的图(例如,不同的项目)。作为一个玩具例子,考虑下面的文件:

---
title: "Example"
output:
  html_document
---

```{r plot, warning=FALSE, echo=FALSE}
library("tidyverse")
tibble(mu = c(-9.4, -9.3, -9.2, -9, -8.9, -8.8, -8.7, -8.5, -8.4, -8.3, 0),
       N = c(1, 2, 1, 1, 1, 3, 1, 1, 1, 1, 3)) %>%
  ggplot() +
  geom_point(aes(x=mu, y=N)) + 
  geom_bar(aes(x=mu, y=N), stat="identity", fill="grey", colour="black", width=0.1) +
  theme(panel.background=element_blank(),
        axis.title=element_text(size=20),
        axis.text=element_text(size=15))
```
它应该会产生一个像下面这样的情节,有时我会成功并得到它:

然而,其他时候,我得到了另一个版本,这是胡说八道:

我注意到在加载tidyverse包之后,有些版本是不同的。例如,在第一个示例中,ggplot为3.2.1,而在后面的示例中,ggplot为3.3.0。这之后有一个不同的版本号,因为它在R项目中使用Renv单独维护


好的,可能是不同的版本号吗?即使考虑到这些不同的版本(我很久以前就知道这个包),我也很难理解在任何ggplot版本的代码中如何生成第二个plot。如果不是版本号的话,是否有任何关于可能导致此问题的提示?

问题在于它有时会猜测一个方向,有时会猜测另一个方向。(您的坏图有水平条。)您可以使用
geom_bar
调用中的
orientation=“x”
强制垂直条

我认为这是一个错误,它似乎选择方向不确定(但见下面的评论)。我在我的系统上看到了同样的事情。我只使用了
ggplot2
3.3.0版;唯一的区别是我以前运行过的代码的历史记录


编辑添加:经过大量测试后,我无法再现不可再现性:-)
ggplot2
有一些复杂的方向猜测规则;对于数据的微小变化,它们是不稳定的,但对于固定数据,它们似乎是稳定的。我猜我无意中更改了数据集的字符,但没有意识到。

问题是它有时会猜测一个方向,有时会猜测另一个方向。(您的坏图有水平条。)您可以使用
geom_bar
调用中的
orientation=“x”
强制垂直条

我认为这是一个错误,它似乎选择方向不确定(但见下面的评论)。我在我的系统上看到了同样的事情。我只使用了
ggplot2
3.3.0版;唯一的区别是我以前运行过的代码的历史记录

编辑添加:经过大量测试后,我无法再现不可再现性:-)
ggplot2
有一些复杂的方向猜测规则;对于数据的微小变化,它们是不稳定的,但对于固定数据,它们似乎是稳定的。我猜我无意中更改了数据集的字符,但没有意识到这一点