我有一个x与y的散点图。我在情节中间画了一个斜面。我想计算abline左边各点的方差,我想计算abline右边各点的方差。这很可能是一个相对简单的问题,但我很难找到解决方案。任何建议表示赞赏。提前谢谢。
x = rnorm(100,mean=12,sd=2)
y = rnorm(100,mean=20,sd=5)
data = as.data.frame(cbind(x,y))
plot(x=x,y=y,type="p")
abline(v=12,col="red")
答案 0 :(得分:4)
在示例代码中,您有一条垂直线v = 12
。您的数据点(x, y)
分为两个组x < 12
和x >= 12
。这样做很简单:
var(y[x < 12])
var(y[x >= 12])
但我们也可以使用tapply
的一次调用:
tapply(y, x < 12, FUN = var)
更一般地说,如果您有一行y = a * x + b
,其中a
为斜率且b
为截距,则您的数据点(x, y)
将分为两组:{{ 1}}(在线下方)和y < a * x + b
(在线上方),以便您可以使用
y >= a * x + b