R ggplot2 Error: Must be Data Frame not S3 Object Class Uneval (2 Examples)

In this article, I’ll explain how to handle the ggplot2 error message “data` must be a data frame, or other object coercible by `fortify()`, not an S3 object with class uneval” in the R programming language.

Setting up the Examples

data(iris)                                              # Load iris data frame
head(iris)
#   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1          5.1         3.5          1.4         0.2  setosa
# 2          4.9         3.0          1.4         0.2  setosa
# 3          4.7         3.2          1.3         0.2  setosa
# 4          4.6         3.1          1.5         0.2  setosa
# 5          5.0         3.6          1.4         0.2  setosa
# 6          5.4         3.9          1.7         0.4  setosa
install.packages("ggplot2")                             # Install & load ggplot2
library("ggplot2")

Example 1: Error Replicating: `data` must be a data frame, or other object coercible by `fortify()`

ggplot(aes(iris, x = Sepal.Width, y = Petal.Length)) +  # False specification of data argument
  geom_point()
# Error: `data` must be a data frame, or other object coercible by `fortify()`, not an S3 object with class uneval
# Did you accidentally pass `aes()` to the `data` argument?

Example 2: Error Solving: `data` must be a data frame, or other object coercible by `fortify()`

ggplot(iris, aes(x = Sepal.Width, y = Petal.Length)) +  # Correct specification of data argument
  geom_point()

r graph figure 1 r ggplot2 error must be data frame not s3 object class uneval

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.
You need to agree with the terms to proceed

Menu
Top