如何创建一个函数来查找两个向量的索引斜率

时间:2015-03-25 17:45:15

标签: r

我到处寻找这个答案,但我很难弄清楚如何提出这个问题。我正在尝试创建一个函数,使其创建一个向量,该向量是另外两个向量的函数,其中我使用for循环来索引k和k + 1处的值。这是我的代码示例,它不起作用:

x <- 1:10
y <- x^2

d <- data.frame(x,y)

invSlope <- NULL

invSlope.f <- function(X,Y){
    for(k in 1:length(X)-1){
        invSlope[k] = (X[k+1] - X[k])/ (Y[k+1] - Y[k])
        invSlope[length(X)] = 0
        return(invSlope)
    }
}

d$invSlope <- invSlope.f(d$x,d$y)

我想要完成的是在d $ invSlope [1]我得到它后面的线的斜率的倒数(delta x / delta y)。向量的最后一个值只是0.我可以使用for循环(甚至嵌套for循环)来实现这一点,但我想将其概括为函数。

由于

1 个答案:

答案 0 :(得分:1)

diff函数是一种矢量化方法......我们不需要steenkin'循环:

finvslope <- function(xseq, yseq) { c( diff(xseq)/diff(yseq) , 0) }