我有一个数据框,我想删除连续的重复项(在基数中)。我知道 rle
在这里可能会有所帮助,但想不出如何使用它。示例输出将有助于阐明我的要求。
生成样本数据:
set.seed(12)
samps <- sample(1:5, 20, T)
dat <- data.frame(v1=LETTERS[samps], v2=month.abb[samps])
dat[10, 2] <- "Mar"
样本数据:
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
预期结果:
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
最佳答案
这里有一个方法,不是用 rle
,但无论如何:
dat[with(dat, c(TRUE, diff(as.numeric(interaction(v1, v2))) != 0)), ]
这假设您正在使用
factor
列,正如您的示例数据所暗示的那样。
关于从数据框中删除连续的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14056153/