首页 > 解决方案 > 如何找到序列矩阵中两点之间的距离?

问题描述

我有一个由 0 和 1 组成的大矩阵。我想找到1s之间的距离。

例如,如果我有一个矩阵的第一行

 0  0  1  0  1  1  0

我想要输出

3  2  1  

3 是第一个 1 的位置 2 是第一个和第二个 1 之间的距离 1 是第二个和第三个 1 的位置

我该如何做到这一点?

标签: rsequencedistance

解决方案


一种选择是which使用diff. 将 转换vector为逻辑,找到值为 1的索引which并获得diff索引位置的erence

i1 <- which(as.logical(v1))
out <- c(i1[1], diff(i1))
out
#[1] 3 2 1

数据

v1 <- c(0, 0, 1, 0, 1, 1, 0)

推荐阅读