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

标签 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"

样本数据:
   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/

相关文章:

r - 提取有关 tidygraph 中特定节点的邻域/子图

r - 降低栅格 R 分辨率的更快函数

r - 更新到 R3.2.1 后包 'stringi' 不起作用

c# - 从现在到 20 年的 ASP MVC Datetime 范围数据注释?

javascript - 显示 0-100 范围输入,最小值为 30,但仍显示输入上的 0-30 区域

r - 合并具有共同元素的行

r - 使用 R 的频率表比较

Ruby Range 额外打印出来

android - 区分 Kotlin 中不明确的扩展

c++ - C++14 中 char 类型下限的变化是否会破坏与补码系统的兼容性?