我有一个“长”数据框定义为:
q <- data.frame(Indicator.Code=factor(),Year=numeric(),Value=numeric())
并试图在单个 xyplot 中绘制作为年份函数的值,对于每个不同的
Indicator.Code
,如下所示xyplot( Value~Year,data=q,group=Indicator.Code)
到现在为止还挺好。现在我正在尝试添加与线性回归相对应的线
rlm(q$Value[q$Indicator.Code==a]~q$Year[q$Indicator.Code==a])
对于
Indicator.Code
的所有值。我不知道怎么做。添加回归线的常用方法,即
xyplot( Value~Year,data=q,group=Indicator.Code),
panel = function(x, y) {
panel.xyplot(x, y)
panel.abline(rlm(y ~ x))
}))
无法正常工作(它计算单个回归,并为整个数据集添加单个回归线)。此外,我已经计算了回归(除了图形之外我也需要它们),并且讨厌必须重新计算它们的想法。
新手可以遵循的任何提示?
最佳答案
我是一个 ggplot2
瘾君子:)。 ggplot2
中的等价物符合您的预期:
library(ggplot2)
ggplot(q, aes(x = Year, y = Value, color = Indicator.Code)) +
geom_point() + stat_smooth(method = "rlm")
请注意,我相信您将任何函数作为
method
传递,但如果没有可重现的示例,则很难检查。关于r - xyplot 中的多个 ablines,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16361766/