我想写一个R代码如下:
给出一个函数说y = xb + c其中b和c是常量。
我想确定一个水平间隔说(alpha,beta)位于函数上方,函数下方或与函数相交。 (参见上传的情节)
我发现自己无法弄清楚如何在R中编写这种编程。
有人会帮助我吗?
答案 0 :(得分:2)
你没有提到你还需要为水平范围指定y值,我在答案中假设。如果y = xb + c
低于行的y值,则给定的水平范围与行y(x.min)
相交,而y(x_max)
高于 y线的值。此处x.min
是范围的开头,x.max
是范围的结尾。
intersect <- function(x.min, x.max, y, b, c) {
y.min <- x.min * b + c
y.max <- x.max * b + c
if (y.min <= y & y.max >= y) {
print("intersection")
}
else if (y > y.min) {
print("above")
}
else {
print("below")
}
}
注意:强>
这个答案假设该线具有正斜率。如果该行也可能具有负斜率,那么交叉存在第二个标准,因此if
语句将如下所示:
if ((y.min <= y & y.max >= y) | (y.min >= y & y.max <= y)) {
print("intersection")
}