Производная матрица - PullRequest
       33

Производная матрица

0 голосов
/ 20 марта 2019

У меня матрица 42x39 в R.

Extract from my data set being used

Я пытаюсь получить первую производную от переменных Y для каждого X и не нашел в сети ничего, что могло бы работать.

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

Так как вы не предоставите образец, давайте сгенерируем 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

Теперь мы можем вычислить разницу каждой ячейки с ячейкой над ней, используя apply с MARGIN = 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
0 голосов
/ 20 марта 2019

Если вам нужна разница между ячейкой и ячейкой над ней, вы можете использовать функцию diff. Сначала прочитайте ваши данные как dataframe.

просто чтобы посмотреть, как это работает, попробуйте diff(c(1, 3))

Ниже приведен быстрый способ сделать это и вернуть новый фрейм данных.

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