如何修复 r: 错误: `mapping` 必须由 `aes()` 创建


使用R时可能遇到的错误是:

 Error: `mapping` must be created by `aes()`

当您在 ggplot2 中创建绘图时尝试使用aes()参数并在错误的位置使用它或在没有“映射”语法的情况下使用它时,就会出现此错误。

以下示例展示了如何在实践中纠正此错误。

如何重现错误

假设我们尝试使用 ggplot2 创建箱线图:

 library (ggplot2)

#createdata
df <- data. frame (y=c(2, 3, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 16, 19, 28),
                 x1=c(1, 2, 2, 3, 5, 6, 8, 8, 9, 9, 10, 11, 12, 15, 15),
                 x2=c(8, 7, 7, 6, 6, 4, 3, 5, 4, 6, 5, 4, 3, 2, 2))

#attempt to create boxplot for 'x1' variable
ggplot() +
  geom_boxplot(df, aes(x=x1))

Error: `mapping` must be created by `aes()`

我们收到错误,因为在geom_boxplot()函数中使用了aes()参数,而没有使用“映射”语法。

如何修复错误

有两种方法可以修复此错误。

方法一:使用“映射”语法

修复错误的一种方法是在aes()参数前面专门使用“映射”语法:

 library (ggplot2)

#create data
df <- data. frame (y=c(2, 3, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 16, 19, 28),
                 x1=c(1, 2, 2, 3, 5, 6, 8, 8, 9, 9, 10, 11, 12, 15, 15),
                 x2=c(8, 7, 7, 6, 6, 4, 3, 5, 4, 6, 5, 4, 3, 2, 2))

#create boxplot for 'x1' variable
ggplot() +
  geom_boxplot(df, mapping=aes(x=x1)) 

由于我们明确使用了映射语法,因此避免了任何错误。

方法2:在ggplot函数中使用’aes’

修复此错误的另一种方法是在ggplot()函数中使用aes()参数:

 library (ggplot2)

#createdata
df <- data. frame (y=c(2, 3, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 16, 19, 28),
                 x1=c(1, 2, 2, 3, 5, 6, 8, 8, 9, 9, 10, 11, 12, 15, 15),
                 x2=c(8, 7, 7, 6, 6, 4, 3, 5, 4, 6, 5, 4, 3, 2, 2))

#create boxplot for 'x1' variable
ggplot(df, aes(x=x1)) +
  geom_boxplot()

我们能够成功创建箱线图并避免任何错误,因为我们在ggplot()函数中使用了aes()参数。

其他资源

以下教程解释了如何修复 R 中的其他常见错误:

如何在 R 中修复:plot.new 尚未被调用
如何修复 R:ExtractVars 中的模板公式无效
如何在 R 中修复:替换长度为零

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注