我有一个很大的矩阵,我想找出,每一行在零之间的最大长度。小例子
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 0 15 20 17 0 0 4 5
[2,] 0 7 0 8 20 18 0 1
[3,] 0 0 5 8 0 5 7 0我只想要新矩阵中的最大长度数,我希望它能清楚地理解。
发布于 2018-01-31 03:53:35
基本基数R方法使用apply和rle,其中我们返回两个零之间的非零值的最大值。
apply(mat == 0, 1, function(x) {
ind = rle(x)
max(ind$lengths[!ind$values])
})
#[1] 3 3 2另一种更简洁的使用table和cumsum的方法
apply(mat == 0, 1, function(x) max(table(cumsum(x))) - 1)
#[1] 3 3 2https://stackoverflow.com/questions/48534117
复制相似问题