Tra*_*iew 4 r matrix cells apply
我想使用前一行值进行涉及当前行的计算。矩阵看起来像:
A B
[1,] 1 2
[2,] 2 3
[3,] 3 4
[4,] 4 5
[5,] 5 6
Run Code Online (Sandbox Code Playgroud)
我想做以下操作:(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
Run Code Online (Sandbox Code Playgroud)
这可以使用 for 循环轻松完成,但我正在处理大型数据集,因此我想使用 apply(或其他内置函数)来提高性能和更清晰的代码。
到目前为止,我想出了:
test.perc <- sapply(test, function(x,y) x-x[y])
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
有任何想法吗?
谢谢。