如果行不按顺序,如何删除数据框中的行
我有这个数据框:
x year bucket price
1 2108 2010 7 100000
2 2108 2010 2 95000
3 2108 2010 3 93000
4 2108 2010 14 92000
5 2108 2010 13 91000
6 2108 2010 8 90500
7 2108 2010 10 89000
8 2108 2010 5 88000
9 2108 2010 9 87000
10 2108 2010 11 86000
11 2108 2010 16 85000
12 2108 2010 12 84000
13 2108 2010 1 83000
我是按照价格排列的,但是桶的顺序不对,我想把它们拆下来,变成这样:
x year bucket price
1 2108 2010 7 100000
4 2108 2010 14 92000
11 2108 2010 16 85000
有没有直接的方法可以在 R 中做到这一点
回答
您可以cummax用于子集化。
x[x$bucket == cummax(x$bucket),]
# x year bucket price
#1 2108 2010 7 100000
#4 2108 2010 14 92000
#11 2108 2010 16 85000
数据:
x <- read.table(header=TRUE, text=" x year bucket price
1 2108 2010 7 100000
2 2108 2010 2 95000
3 2108 2010 3 93000
4 2108 2010 14 92000
5 2108 2010 13 91000
6 2108 2010 8 90500
7 2108 2010 10 89000
8 2108 2010 5 88000
9 2108 2010 9 87000
10 2108 2010 11 86000
11 2108 2010 16 85000
12 2108 2010 12 84000
13 2108 2010 1 83000 ")