【发布时间】:2014-01-08 03:20:22
【问题描述】:
我想将前一行的值用于涉及当前行的计算。矩阵看起来像:
A B
[1,] 1 2
[2,] 2 3
[3,] 3 4
[4,] 4 5
[5,] 5 6
我想做以下操作:(cell[i]/cell[i-1])-1,本质上是计算从当前行到上一行(不包括第一行)的百分比变化(-1 到 1)。
输出应如下所示:
C D
[1,] NA NA
[2,] 1.0 0.5
[3,] 0.5 0.33
[4,] 0.33 0.25
[5,] 0.25 0.20
这可以使用 for 循环轻松完成,但我正在处理大型数据集,因此我想使用 apply(或其他内置函数)来提高性能和更简洁的代码。
到目前为止,我想出了:
test.perc <- sapply(test, function(x,y) x-x[y])
但它不起作用。
有什么想法吗?
谢谢。
【问题讨论】: