我有一个表示平面中点的数据框。

     x     y
1  0.0   0.0
2  0.2   0.0
3  0.3  -0.1
...

我想为该数据编写一个类似 diff 的函数。我已经编写了距离函数 myDist(不是欧几里得),但是如何将其应用于数据框?

即:通过调用 someFunction( myData, myDist ) ,我想获得一个向量,其值为 myDist(myData[1,],myData[2,])myDist(myData[2,],myData[3,])myDist(myData[3,],myData[4,]) ,...

是否有执行此操作的函数,还是我必须编写一个循环?

最佳答案

lapply 解决了这个问题:

lapply(seq_len(nrow(myData) - 1),
    function(i){
        myDist( myData[i,], myData[i+1,] )
    })

关于r - 如何将函数应用于 data.frame 中的成对行,类似于 diff?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13505126/

10-13 06:22