检测R中的连续重复

时间:2015-02-20 15:38:44

标签: r

在R中,我想知道我的数据中是否有连续的重复。

A <- c(1,2,3,3,4)

B <- c(1,2,3,4,3)

对于A,我想得到TRUE,因为有两个3s直接一个接一个。

对于B,我想得到FALSE,因为3s被4分开。

谢谢社区! pointingeye

3 个答案:

答案 0 :(得分:6)

您可以使用rle

> rle(A)
Run Length Encoding
  lengths: int [1:4] 1 1 2 1
  values : num [1:4] 1 2 3 4
> any(rle(A)$lengths > 1)
[1] TRUE
> any(rle(B)$lengths > 1)
[1] FALSE

答案 1 :(得分:4)

尝试rle

any(rle(A)$lengths > 1)
#[1] TRUE
any(rle(B)$lengths > 1)
#[1] FALSE

替代解决方案(diff):

any(diff(A)==0)
#[1] TRUE
any(diff(B)==0)
#[1] FALSE

答案 2 :(得分:2)

0 %in% diff(A) - TRUE
0 %in% diff(B) - FALSE

仅在(至少)两个连续相同的数字差异的情况下才能等于0.