如何找到序列矩阵中两点之间的距离?
How do I find the distance between two points in a matrix of sequences?
我有一个由 0 和 1 组成的大矩阵。
我想找到 1s 之间的距离。
例如,如果我将矩阵的第一行设为
0 0 1 0 1 1 0
我想要输出
3 2 1
3是第1个的位置
2是第一个和第二个1之间的距离
1是第二个和第三个1
的位置
我该如何完成?
一个选项是 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)
我有一个由 0 和 1 组成的大矩阵。 我想找到 1s 之间的距离。
例如,如果我将矩阵的第一行设为
0 0 1 0 1 1 0
我想要输出
3 2 1
3是第1个的位置 2是第一个和第二个1之间的距离 1是第二个和第三个1
的位置我该如何完成?
一个选项是 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)