【发布时间】:2014-05-24 02:30:23
【问题描述】:
我有一些使用以下代码行生成的数据,
x <- c(1:10)
y <- x^3
z <- y-20
s <- z/3
t <- s*6
q <- s*y
x1 <- cbind(x,y,z,s,t,q)
x1 <- data.frame(x1)
我想绘制 x 与 y、s 和 t 的关系图,所以我先将数据框 x1 融化,
library(reshape2)
xm <- melt(x1, id=names(x1)[1], measure=names(x1)[c(2, 4, 5)], variable = "cols"`)
然后我使用以下代码将它们与线性拟合一起绘制,
library(ggplot2)
plt <- ggplot(xm, aes(x = x, y = value, color = cols)) +
geom_point(size = 3) +
labs(x = "x", y = "y") +
geom_smooth(method = "lm", se = FALSE)
plt
生成的图如下所示,
现在我想插入线性拟合的 x 截距。图中 y 轴值为 0 的点。
如下代码行如here所示,提取斜率和y截距。
fits <- by(xm[-2], xm$cols, function(i) coef(lm(value ~ x, i)))
data.frame(cols = names(fits), do.call(rbind, fits))
除了从斜率和 y 截距手动计算之外,还有什么方法可以提取 x 截距?
感谢您的帮助!
【问题讨论】: