如何修复 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 中修复:替换长度为零