这结果有点挑战。我有三个向量x,y& ž
x = c('a','b','c','d','f','m','n')
y = c('b','c','f')
z = c('b','a','n')
x是我的超集。它指定元素a,b,c ......等应出现的顺序。 我想要做的是能够判断向量是否遵循x具有的相同顺序。例如,y与x具有相同的顺序。 'b'在'c'之前,而'c'在'f'之前。然而,由于“a”在“b”之后出现,因此z无序。有没有快速检查方法?
非常感谢。
答案 0 :(得分:5)
试试这个:
all(diff(match(y,x)) > 0)
[1] TRUE
all(diff(match(z,x)) > 0)
[1] FALSE
match
返回x
中每个元素的数字位置,然后我们只检查该向量是否总是增加值。