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函数的列表。