R 错误:自动批不支持lm类型的对象
我试图创建一个简单的函数,它接受两个参数: 一个线性模型和一个与颜色对应的字符串,按顺序排列 它应该为该线性模型创建残差vs拟合和Q-Q图,并根据字符串参数为点上色,如下所示:R 错误:自动批不支持lm类型的对象,r,ggplot2,R,Ggplot2,我试图创建一个简单的函数,它接受两个参数: 一个线性模型和一个与颜色对应的字符串,按顺序排列 它应该为该线性模型创建残差vs拟合和Q-Q图,并根据字符串参数为点上色,如下所示: 这里有一些东西可以让你开始。来自autoplot的错误消息清楚地表明它无法处理lm对象。只需提取残差和拟合值,然后绘制: answer7 <- function(my_lm, color_str){ resids <- residuals(my_lm) fitted <- fitted(
这里有一些东西可以让你开始。来自
autoplot
的错误消息清楚地表明它无法处理lm
对象。只需提取残差和拟合值,然后绘制:
answer7 <- function(my_lm, color_str){
resids <- residuals(my_lm)
fitted <- fitted(my_lm)
p_vs_r <- ggplot(data = NULL, aes(x = fitted, y = resids))+
geom_point(colour = color_str)
qq_r <- ggplot(data = NULL, aes(sample = resids))+
stat_qq(colour = color_str)
plot(p_vs_r)
plot(qq_r)
}
answer7使用ggfortify
时不应出现错误,这使autoplot
能够使用更多不同的对象类型
library(ggplot2)
library(ggfortify)
demo_lm <- lm(dist ~ speed, data=cars)
answer7 <- function(my_lm)
{
autoplot(my_lm, which = 1:2) +
theme_bw()
}
answer7(demo_lm)
库(ggplot2)
图书馆(GGF)
演示为什么要使用autoplot
?是否必须为ggplot2
编写此函数?@bouncyball是的。罗兰我不确定,但我认为就我所知,对于残差vs Fitted和QQ绘图,ggplot2只提供了autoplot
的通用方法,而没有。如果你想在这里使用它,你需要找到一个定义lm
方法的包,或者自己编写一个。虽然不推荐,但是可以强制导出autoplot.lm
。例如,ggfortify:::autoplot.lm(lm(mpg~wt,mtcars),它=1:2)
library(ggplot2)
library(ggfortify)
demo_lm <- lm(dist ~ speed, data=cars)
answer7 <- function(my_lm)
{
autoplot(my_lm, which = 1:2) +
theme_bw()
}
answer7(demo_lm)