首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >保持连续副本

保持连续副本
EN

Stack Overflow用户
提问于 2019-10-21 14:13:40
回答 6查看 258关注 0票数 0

我有一个数据框架,其中一个列包含一些连续的重复项。我希望保留连续重复的行(任意长度>1)。我更喜欢dplyrdata.table中的解决方案。

示例数据:

代码语言:javascript
复制
a <- seq(10,150,10)
b <- c("A", "A", "B", "C", "C", "A", "B", "B", "B", "C", "A", "C", "D", "E", "E")

df <- tibble(a, b)

数据:

代码语言:javascript
复制
# A tibble: 15 x 2
       a b    
   <dbl> <chr>
 1    10 A    
 2    20 A    
 3    30 B    
 4    40 C    
 5    50 C    
 6    60 A    
 7    70 B    
 8    80 B    
 9    90 B    
10   100 C    
11   110 A    
12   120 C    
13   130 D    
14   140 E    
15   150 E 

因此,我希望在列b中保留连续重复的行。

预期成果:

代码语言:javascript
复制
# A tibble: 9 x 2
       a b    
   <dbl> <chr>
 1    10 A    
 2    20 A    
 4    40 C    
 5    50 C    
 7    70 B    
 8    80 B    
 9    90 B          
14   140 E    
15   150 E 

谢谢!

EN

Stack Overflow用户

发布于 2019-10-21 14:17:32

由于您还有data.table标记,所以我喜欢将data.table::rleid函数用于这些任务,即

代码语言:javascript
复制
library(dplyr)

df %>% 
 group_by(grp = data.table::rleid(b), b) %>% 
 filter(n() > 1)

这给了,

A tibble: 9 x 3#组: grp,b 4 a a b grp 1 10 A 1 2 2 0 A 1 2 2 0 A 1 40 C 3 4 50 C 3 5 70 B 5 80 B 5 5 7 90 B 5 5 140 E 10 9 150 E 10

票数 0
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58488164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档