r - 矩阵行方向滞后差异

标签 r matrix

假设我有以下矩阵,名为ma​​trix1

      [,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/

相关文章:

r - 在 R 中将 LASSO 与分类变量结合使用

r - 在多列上进行变异,跳过 NA 值

c - 用 malloc/calloc 初始化的二维数组

r - 区分向量和 R 中的矩阵

c++ - Rcpp 创建具有可变列数的 DataFrame

R:通过将一个函数与另一个函数组合来设置该函数的参数

r - 可以使用 xlim 和 ylim 参数仅更改 R 直方图 (hist) 中的下限/上限吗?

arrays - Julia:更快的矩阵计算

matlab - 为连续测量创建缓冲矩阵

c++ - 矩阵乘法在 C++ 中不起作用