如何计算R中矩阵中数字的变化?

时间:2015-04-15 09:10:20

标签: r

我有一个名为“cmat':

的矩阵
> cmat
      [,1]
 [1,]    0
 [2,]    0
 [3,]    0
 [4,]    1
 [5,]    0
 [6,]    1
 [7,]    0
 [8,]    1
 [9,]    0
[10,]    1
[11,]    1
[12,]    1
[13,]    0
[14,]    0
[15,]    1
[16,]    0
[17,]    1
[18,]    0
[19,]    0
[20,]    1
[21,]    0
[22,]    1
[23,]    0

现在,我想要实现的是我想要计算该值从之前的0值变为1的次数。如何在R中执行此操作?

3 个答案:

答案 0 :(得分:7)

如果只有二进制值,

sum(diff(cmat)==1)可能是一种方法。

答案 1 :(得分:3)

你可以做到

sum( cmat[, 1] == 1 & c(NA, head(cmat[, 1], -1)) == 0 , na.rm = TRUE)

答案 2 :(得分:1)

在这里添加替代方案。 rle(cmat)可让您识别值更改的每个位置以及新值。