首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >零之间每个数的最大长度

零之间每个数的最大长度
EN

Stack Overflow用户
提问于 2018-01-31 03:44:19
回答 1查看 42关注 0票数 0

我有一个很大的矩阵,我想找出,每一行在零之间的最大长度。小例子

代码语言:javascript
复制
      [,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
  • 第一行在零之间有两个数字组,第一个有3个数字,第二个有2个,最大长度是3,这就是我要找的。
  • 第二行在零之间有三个组,第一个有一个数字,第二个有三个,第三个有一个,最大长度是三个。
  • 第三行在零之间有2组,第1行和第2组有2个数字,最大长度是2。

我只想要新矩阵中的最大长度数,我希望它能清楚地理解。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-31 03:53:35

基本基数R方法使用applyrle,其中我们返回两个零之间的非零值的最大值。

代码语言:javascript
复制
apply(mat == 0, 1, function(x) {
    ind = rle(x)
    max(ind$lengths[!ind$values])
})

#[1] 3 3 2

另一种更简洁的使用tablecumsum的方法

代码语言:javascript
复制
apply(mat == 0, 1, function(x) max(table(cumsum(x))) - 1)

#[1] 3 3 2
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48534117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档