在R中,我想要找出数据中是否存在连续的重复值。
A <- c(1,2,3,3,4)
B <- c(1,2,3,4,3)
对于A,我希望获得TRUE,因为有两个3直接相邻。
对于B,我希望获得FALSE,因为3被4隔开了。
谢谢社区!pointingeye
在R中,我想要找出数据中是否存在连续的重复值。
A <- c(1,2,3,3,4)
B <- c(1,2,3,4,3)
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
rle
:any(rle(A)$lengths > 1)
#[1] TRUE
any(rle(B)$lengths > 1)
#[1] FALSE
替代方案({{link1:diff
}}):
any(diff(A)==0)
#[1] TRUE
any(diff(B)==0)
#[1] FALSE
0 %in% diff(A) - TRUE
0 %in% diff(B) - FALSE
rle
就能找到答案。 - A5C1D2H2I1M1N2O1R2T1any(c(FALSE,A[-1]==A[-length(A)]))
。 - akrun