R 如果特定组中的行不遵循升序,如何删除组?

R 如果特定组中的行不遵循升序,如何删除组?,r,dataframe,group-by,R,Dataframe,Group By,我想知道如何筛选出行不遵循完整升序的组: Example Animal Count Dog 4 Dog 5 Dog 6 Dog 7 Cat 11 Cat 13 Cat 14 Cat 15 Rat 9 Rat 10 Rat 11 Rat 12 Rat 14 Moose 17 Moose 18 Moose 19 M

我想知道如何筛选出行不遵循完整升序的组:

Example

Animal    Count
Dog       4
Dog       5
Dog       6
Dog       7
Cat       11
Cat       13
Cat       14
Cat       15
Rat       9
Rat       10
Rat       11
Rat       12
Rat       14
Moose     17
Moose     18
Moose     19
Moose     20

生成的数据帧应如下所示:

Animal    Count
Dog       4
Dog       5
Dog       6
Dog       7
Moose     17
Moose     18
Moose     19
Moose     20

这里,前面的行值都比前面的行值多一个。我曾尝试将条件语句与dplyr包相结合,但没有成功。任何帮助都将不胜感激。感谢

一种方法是计算每组中连续行之间的差异,并检查它们是否都等于1。假设您的数据位于
df

df %>%
  group_by(Animal) %>%
  filter(all(diff(Count) == 1))

#   Animal Count
#   <chr>  <dbl>
# 1 Dog        4
# 2 Dog        5
# 3 Dog        6
# 4 Dog        7
# 5 Moose     17
# 6 Moose     18
# 7 Moose     19
# 8 Moose     20
df%>%
按(动物)分组%>%
过滤器(全部(差异(计数)==1))
#动物计数
#     
#1只狗4只
#2只狗5只
#3狗6
#4狗7
#5驼鹿17
#6驼鹿18
#7驼鹿19
#8驼鹿20

谢谢您的回答。没有意识到“diff”这么方便。它是:)查看有用的BaseR函数的列表。