假设我有以下矩阵,名为matrix1
[,1] [,2] [,3]
[1,] 1.5 1.5 1.5
[2,] 2.0 1.7 0.9
[3,] 2.2 2.3 1.4
我想创建一个如下所示的结果矩阵:
[,1] [,2] [,3]
[1,] 0 0 0
[2,] 0.5 0.2 -0.6
[3,] 0.2 0.6 0.5
哪里
result[2, ] = matrix1[2, ] - matrix1[1, ]
result[3, ] = matrix1[3, ] - matrix1[2, ]
...
第 1 行设置为 0
有人有执行此操作的代码吗?
问候
最佳答案
如果m
是你的矩阵尝试:
rbind(0, diff(m))
# [,1] [,2] [,3]
#[1,] 0.0 0.0 0.0
#[2,] 0.5 0.2 -0.6
#[3,] 0.2 0.6 0.5
另一个解决方案 - 实际上是 diff
的分解:
rbind(0, tail(m,-1) - head(m,-1))
# [,1] [,2] [,3]
# 0.0 0.0 0.0
#[2,] 0.5 0.2 -0.6
#[3,] 0.2 0.6 0.5
关于r - 矩阵行方向滞后差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30423663/