如何编写用于确定值的R代码是在行之上还是在行之下?

时间:2016-06-23 04:05:49

标签: r

我想写一个R代码如下:

给出一个函数说y = xb + c其中b和c是常量。 我想确定一个水平间隔说(alpha,beta)位于函数上方,函数下方或与函数相交。 (参见上传的情节)Plot of the function and line

我发现自己无法弄清楚如何在R中编写这种编程。

有人会帮助我吗?

1 个答案:

答案 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")
}