仅按R中的升序递增过滤组
我很难弄清楚如何过滤数据帧中按降序递增的组。我将从一个输入开始:仅按R中的升序递增过滤组,r,dplyr,R,Dplyr,我很难弄清楚如何过滤数据帧中按降序递增的组。我将从一个输入开始: df <- structure(list(Animal = c("Cat", "Cat", "Cat", "Cat", "Cat", "Cat", "Dog", "Dog", "Dog", "Dog", "Rat&q
df <- structure(list(Animal = c("Cat", "Cat", "Cat", "Cat", "Cat",
"Cat", "Dog", "Dog", "Dog", "Dog", "Rat", "Rat", "Rat", "Rat",
"Rat"), Value = c(2L, 3L, 5L, 8L, 19L, 20L, 4L, 8L, 19L, 33L,
4L, 8L, 15L, 10L, 25L)), class = "data.frame", row.names = c(NA,
-15L))
一个基于dplyr的解决方案可以是:
df %>%
group_by(Animal) %>%
filter(all(diff(Value) > 0))
Animal Value
<chr> <int>
1 Cat 2
2 Cat 3
3 Cat 5
4 Cat 8
5 Cat 19
6 Cat 20
7 Dog 4
8 Dog 8
9 Dog 19
10 Dog 33
df%>%
按(动物)分组%>%
过滤器(所有(差异(值)>0))
动物价值
1第2类
2第3类
3第5类
4第8类
5第19类
6第20类
7狗4
狗8
9狗19
10狗33
数据:
library(dplyr)
df %>%
filter(!Animal == "Rat") %>%
arrange(Animal, Value)
#> Animal Value
#> 1 Cat 2
#> 2 Cat 3
#> 3 Cat 5
#> 4 Cat 8
#> 5 Cat 19
#> 6 Cat 20
#> 7 Dog 4
#> 8 Dog 8
#> 9 Dog 19
#> 10 Dog 33
df我将根据返回布尔值的diff
定义一个名为increating
的函数。以下是带有dplyr
和数据的版本。表
:
库(dplyr)
库(数据表)
df%
过滤器(增加(值))
dt[,.SD[增加(值)],由=动物]
谢谢。我的问题更多的是基于价值差异进行过滤,但这也是一个创造性的解决方案。