我有一个大矩阵,由0和1组成。 我想找到1s之间的距离。
例如,如果我将矩阵的第一行作为
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
我想要输出
0 0 1 0 1 1 0
3是第一个1的位置 2是第一个和第二个之间的距离1 1是第二个和第三个1的位置
我如何做到这一点?
答案 0 :(得分:3)
一个选项是which
和diff
。将vector
转换为逻辑,用which
找到值为1的索引,并获得索引位置的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)