你在R中可能遇到的一个错误是。
Error: `data` must be a data frame, or other object coercible by `fortify()`,
not a numeric vector
当你试图使用ggplot2来绘制数据框架中的变量时,这个错误就会发生,但你引用的数据参数是一个向量而不是一个数据框架。
本教程确切地分享了如何修复这个错误。
如何重现该错误
假设我们在R中拥有以下数据框:
#create data frame
df <- data.frame(x=c(1, 2, 3, 4, 5, 6, 7, 8),
y=c(4, 8, 14, 19, 14, 13, 9, 9))
#view data frame
df
x y
1 1 4
2 2 8
3 3 14
4 4 19
5 5 14
6 6 13
7 7 9
8 8 9
现在假设我们试图创建一个散点图,以可视化数据框架中的x和y变量:
library(ggplot2)
#attempt to create scatter plot
ggplot(df$x, aes(x=x, y=y)) +
geom_point()
Error: `data` must be a data frame, or other object coercible by `fortify()`,
not a numeric vector
我们收到了一个错误,因为我们在ggplot()函数的数据参数中引用了一个数字向量(df$x),而不是一个数据框架。
如何修复该错误
解决这个错误的方法是在ggplot()函数的数据参数中引用一个数据框架。
在我们的例子中,我们应该使用df,而不是df$x作为数据参数。
library(ggplot2)
#create scatter plot
ggplot(df, aes(x=x, y=y)) +
geom_point()

注意,这次我们能够成功地创建散点图,没有任何错误。
其他资源
下面的教程解释了如何解决R中的其他常见错误。
如何修复:ggplot2不知道如何处理uneval类的数据
如何修复:stripchart.default(x1,...)中的错误:无效的绘图方法
如何修复:eval(predvars, data, env)中的错误:未找到对象'x'