从数据框中删除连续的重复项

Tyl*_*ker 13 r range

我有一个数据框,我想删除连续的重复(基础).我知道rle在这里可能会有所帮助,但不能想到如何使用它.示例输出将有助于阐明我的要求.

生成样本数据:

set.seed(12)
samps <- sample(1:5, 20, T)
dat <- data.frame(v1=LETTERS[samps], v2=month.abb[samps])
dat[10, 2] <- "Mar"
Run Code Online (Sandbox Code Playgroud)

样本数据:

   v1  v2
1   A Jan
2   E May
3   E May
4   B Feb
5   A Jan
6   A Jan
7   A Jan
8   D Apr
9   A Jan
10  A Mar
11  B Feb
12  E May
13  B Feb
14  B Feb
15  B Feb
16  C Mar
17  C Mar
18  C Mar
19  D Apr
20  A Jan
Run Code Online (Sandbox Code Playgroud)

期望的结果:

   v1  v2
1   A Jan
3   E May
4   B Feb
7   A Jan
8   D Apr
10  A Mar
11  B Feb
12  E May
15  B Feb
18  C Mar
19  D Apr
20  A Jan
Run Code Online (Sandbox Code Playgroud)

Mat*_*rde 9

这是一种方式,而不是一种方式,rle但不是一种方式:

dat[with(dat, c(TRUE, diff(as.numeric(interaction(v1, v2))) != 0)), ]
Run Code Online (Sandbox Code Playgroud)

这假设您正在使用factor列,如示例数据所示.