繁体   English   中英

计算2个向量之间的断点距离

[英]Calculate breakpoint distances between 2 vectors

我有2个向量;

a<-c(1,2,4,3,5,6)   
b<-c(1,4,3,2,5,6) 

a和b之间的断点数为3 ([1,2] [2,4] [3,5])

b和a之间的断点数为3 ([1,4] [2,3] [2,5])

我基本上想检查数字是否彼此相邻并打印出来,所以我不必每次都手动进行

这是两个解决方案。 首先让

a <- c(1, 2, 4, 3, 5, 6)
b <- c(1, 4, 3, 2, 6, 5)

请注意,我切换了b的最后两个元素。 然后

# Creating a vector of pairs of subsequent elements of x
fun <- function(x) paste(head(x, -1), tail(x, -1))
BP <- function(x, y) fun(a)[!fun(a) %in% fun(b)]
BP(a, b)
# [1] "1 2" "2 4" "3 5" "5 6"

考虑到此顺序。 即,它包括5 6作为断点。 或者,如果顺序无关紧要,而仅仅是彼此相邻:

BP <- function(x, y) fun(a)[!(fun(a) %in% fun(b) | fun(a) %in% fun(rev(b)))]
BP(a, b)
# [1] "1 2" "2 4" "3 5"

然后length(BP(a, b))给出距离。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM