qplot:找不到对象错误

时间:2016-01-21 20:45:05

标签: r ggplot2

我是R的新手,只是测试水域,我正在尝试实现此book中给出的示例代码。这是代码:

qplot(carat, price, data = dsmall, colour = color)

这是我得到的错误:

Error in eval(expr, envir, enclos) : object 'color' not found

我复制粘贴了确切的代码,以确保我没有进行任何拼写错误,同样的错误仍然出现。我已经包含了ggplot2包。是否有任何我需要包含的包裹我缺少?

2 个答案:

答案 0 :(得分:2)

在R中,您可以通过名称指定参数。当您指定没有名称时,R通过位置匹配来懒惰地评估它们。由于未命名的参数不匹配,您将收到环境错误。

在这种情况下,您需要先指定数据或使用命名参数:

library(ggplot2)
data(diamonds)
qplot(caret, price, data= diamonds, colour= color)
  Error in eval(expr, envir, enclos) : object 'caret' not found

qplot(data= diamonds, x= carat, y= price, colour= color) # works
qplot(data= diamonds, carat, price, colour= color) # also works

答案 1 :(得分:2)

始终尝试使用最小的工作示例,并说明您呈现的代码是否完整,或者您是否遗漏了某些内容。

根据您的问题,您很难知道您所粘贴的内容是否与您的代码有关,或者您是否尝试过其他内容。

qplot(carat, price, data = dsmall, colour = color)行做了四件事:

  1. 它调用qplot并告诉它绘制一些数据。
  2. 告诉qplot将所提供数据集的克拉列中的值与同一数据集中价格列中的值进行对比。
  3. 提供符号 dsmall 作为要使用的qplot的数据源。必须在调用 qplot 时定义dsmall。
  4. 指定应使用提供的数据集中的颜色列来确定所绘制符号的颜色。
  5. 现在,R告诉你Error in eval(expr, envir, enclos) : object 'color' not found。这意味着,在提供的数据源中找不到列颜色。这让我相信你没有适当地准备 dsmall 数据源,因此你遇到了问题。

    尝试运行控制台中提供的以下代码:

    library(ggplot2)
    set.seed(1410)
    dsmall <- diamonds[sample(nrow(diamonds), 100), ]
    head(dsmall)
    qplot(carat, price, data = dsmall, colour = color)
    

    Resulting plot