首页 > 解决方案 > 如果行不正确,如何删除数据框中的行

问题描述

我有这个数据框:

      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 中做到这一点

标签: rdataframe

解决方案


您可以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 ")

推荐阅读