导数矩阵

时间:2019-03-19 21:50:12

标签: r matrix derivative

我在R中有一个42x39的矩阵。

Extract from my data set being used

我正在尝试获得每个X的Y变量的一阶导数,但是没有找到任何有效的在线方法。

2 个答案:

答案 0 :(得分:0)

如果您想要一个单元格与其上方的单元格之间的差异,可以使用diff函数。首先以dataframe的格式读取数据。

仅查看其工作原理,请尝试diff(c(1, 3))

下面是执行此操作并返回新数据帧的快速方法。

lapply(YourDataFrame, diff) %>% 
  dplyr::bind_cols()

答案 1 :(得分:0)

由于您不提供样本,所以我们生成一个6x6样本矩阵

set.seed(2018)
mat <- matrix(sample(36), nrow = 6)
#     [,1] [,2] [,3] [,4] [,5] [,6]
#[1,]   13   19   24   21   31   33
#[2,]   17    4   32   28   20    8
#[3,]    3   27   18    5   29   30
#[4,]    7   15   14    9   25   36
#[5,]   16   11    6   34   23   22
#[6,]   10   35   26    2    1   12

我们现在可以使用applyMARGIN = 2来计算每个单元格与其上方单元格的差值

apply(mat, 2, function(x) c(NA, diff(x)))
#     [,1] [,2] [,3] [,4] [,5] [,6]
#[1,]   NA   NA   NA   NA   NA   NA
#[2,]    4  -15    8    7  -11  -25
#[3,]  -14   23  -14  -23    9   22
#[4,]    4  -12   -4    4   -4    6
#[5,]    9   -4   -8   25   -2  -14
#[6,]   -6   24   20  -32  -22  -10