我想简单地在Quarto中想象一个情节,但不断收到一个错误,我不明白.当我运行我的qmd文件时,我在这个块中得到一个错误:

ggplot(df, aes(x = X, y = Y)) +
  geom_bin2d(binwidth = c(5, 5)) +
  stat_bin2d(geom = "text", aes(label = ..count..), size = 2, binwidth = c(5, 5)) +
  scale_fill_gradient("Aantal schoten", low = "yellow", high = "red") +
  annotate_pitch(alpha = 0) +
  direction_label(x_label = 50) +
  theme_pitch() +
  theme(legend.key=element_blank()) 

错误:

Error in `ggplot()`:
! `data` cannot be a function.
ℹ Have you misspelled the `data` argument in `ggplot()`
Backtrace:
 1. ggplot2::ggplot(df, aes(x = X, y = Y))
 2. ggplot2:::ggplot.function(df, aes(x = X, y = Y))
                                                                                                             
Execution halted

我判断了我的全局环境,没有名为data的变量,这可能是问题所在.当我运行一个简单的类似文件时,不会出现这样的错误:

---
title: "test"
---

```{r}
library(ggplot2)
library(dplyr)
iris %>%
  ggplot(aes(x = Sepal.Length, y = Sepal.Width)) +
  geom_point()
```

所以我不明白为什么这个错误总是发生.我也try 在ggplot函数中使用data = df,但这不起作用.此外,在逐个块运行代码块时,代码块也可以工作.该错误仅在渲染文件时发生.那么,有人知道为什么会发生这个错误吗?

推荐答案

很可能你的data.frame的实际名称不是df,或者你在全局环境中创建了一个df变量,而不是在Quarto环境中.

注意,使用df作为data.frame的名称并不是一个好主意,因为df()是R中用于F分布密度的内置函数(因此使用函数的错误).

如果代码只是在编译时出错,那么您很可能没有将数据导入Quarto文档本身.文档在新的、全新的环境中呈现;因此,您的全局环境中的任何数据都不可用于文档.您需要确保Quarto文档是自给自足的;也就是说,确保.qmd文件中包含用于加载数据的read.table或等效函数.

R相关问答推荐

如何替换R中数据集列中的各种字符串

使用ggplot将平滑线添加到条形图

在位置周围设定一个半径并识别该半径内的其他位置

如何在emmeans中计算连续变量的对比度

将嵌套列表子集化为嵌套列表

单个轮廓重叠条的单独图例

在ggplot中为不同几何体使用不同的 colored颜色 比例

以更少间隔的较小表中的聚合离散频率表

如何在ggplot2中绘制具有特定 colored颜色 的连续色轮

R:用GGPLATE,如何在两个独立的变量中制作不同形状的散点图?

如何从向量构造一系列双边公式

如何使这些react 表对象相互独立?

将工作目录子文件夹中的文件批量重命名为顺序

通过初始的shiny 应用更新部署的shiny 应用的数据和参数,其中部署的应用程序显示为URL

多元正态分布的计算

从线的交点创建面

R:使用ApexCharge更改标签在饼图中的位置

如何在访问之前下载的输入时同时上传和处理所有指定的shiny 输入?

conditionPanel不考虑以下条件

当y为负值时,无法使stat_cor正确定位到底部?