如何修复:ggplot2 不知道如何处理不相等的类数据
在 R 中您可能遇到的错误是:
Error: ggplot2 doesn't know how to deal with data of class uneval
当您尝试使用ggplot2一次绘制两个数据框,但无法使用geom_line()函数中的data参数时,通常会发生此错误。
本教程准确解释了如何修复此错误。
如何重现错误
假设 R 中有两个数据框,分别显示特定时间和不同日期的销售数量:
#create first data frame
df <- data. frame (date=c(1, 1, 1, 2, 2, 2, 3, 3, 3),
hour=c(1, 2, 3, 1, 2, 3, 1, 2, 3),
sales=c(2, 5, 7, 5, 8, 12, 10, 14, 13))
#view data frame
head(df)
date hour sales
1 1 1 2
2 1 2 5
3 1 3 7
4 2 1 5
5 2 2 8
6 2 3 12
#create second data frame
df_new <- data. frame (date=c(4, 4, 4, 5, 5, 5),
hour=c(1, 2, 3, 1, 2, 3),
sales=c(12, 13, 19, 15, 18, 20))
#view data frame
head(df_new)
date hour sales
1 4 1 12
2 4 2 13
3 4 3 19
4 5 1 15
5 5 2 18
6 5 3 20
现在,假设我们正在尝试创建一个折线图来可视化按天和小时分组的销售额,第一个数据框使用蓝色,第二个数据框使用红色:
library (ggplot2)
#attempt to create line chart
ggplot(df, aes(x=hour, y=sales, group=date)) +
geom_line(color=' blue ') +
geom_line(df_new, aes(x=hour, y=sales, group=date), color=' red ')
Error: ggplot2 doesn't know how to deal with data of class uneval
我们收到错误,因为我们未能在第二个geom_line()函数中使用数据参数。
如何修复错误
修复此错误的方法是简单地将数据输入到第二个geom_line()参数中,以便 R 知道我们要绘制的数据框。
library (ggplot2)
#create line chart
ggplot(df, aes(x=hour, y=sales, group=date)) +
geom_line(color=' blue ') +
geom_line(data=df_new, aes(x=hour, y=sales, group=date), color=' red ')
请注意,这次我们能够成功创建折线图,没有任何错误。
其他资源
以下教程解释了如何解决 R 中的其他常见错误:
如何修复 R:as.Date.numeric(x) 中的错误:必须提供“origin”
如何修复:stripchart.default(x1, …) 中的错误:无效的绘图方法
如何修复:eval 中的错误(predvars、data、env):未找到对象“x”