R在相应列中没有值的列中查找最大值

时间:2016-05-08 10:42:53

标签: r

我的df看起来像这样:

我想知道如何找到没有D或L值的最后一行,因为我想将其设置为循环直方图的x轴绘图限制。 我需要是rowname值(这里它实际上对应一个长度),这是有任何值的最高值),可能有其他长度也有0值(即在这个df中像51)但我想要长度,其后面没有其他长度的值(在此df = 60)。

> t4
           D         L
5    0.00000   0.00000
6    0.00000   0.00000
7    0.00000   0.00000
8    0.00000   0.00000
9    0.00000   0.00000
10   2.83726   0.28757
11   1.84987   0.28757
12   5.03907   0.00000
13   9.88651   0.00000
14  17.70186   0.00000
15  17.79735   0.00000
16  22.11712   0.00000
17  15.28029   0.00000
18  18.78395   0.20838
19  35.36764   0.00000
20  32.69343   0.00000
21  34.89597   0.00000
22  45.05710   0.00000
23  52.12515   0.00000
24  56.68825   0.10399
25  42.82138   2.70632
26  43.87267   9.75719
27  40.92407  17.95513
28  48.11841  21.02564
29  48.36029  31.34945
30  39.96910  69.62344
31  41.95327  63.31533
32  48.08798 111.20725
33  35.59892  82.59722
34  27.07698 209.27335
35  31.77831 192.61394
36  31.61700 298.17208
37  20.90314 353.80105
38  14.74480 322.15964
39  15.83181 326.86597
40  20.77642 409.25021
41   2.65196 370.75941
42   7.51343 396.27318
43   2.72389 386.30825
44   5.08969 468.23395
45   5.57108 456.78302
46   4.05819 418.21052
47   0.16106 376.49471
48   1.27724 332.54223
49   1.25692 264.52353
50   1.25692 198.16843
51   0.00000 0.00000
52   0.00000 186.77477
53   0.00000 208.19134
54   3.68738 171.52916
55   0.00000 127.77642
56   8.80174 157.18997
60   0.00000 0.00000
61   0.00000 0.00000

1 个答案:

答案 0 :(得分:0)

一种方法是使用github中的smwrBase :: eventNum。以下将返回t4a,只有最后一个记录与D& L == 0。然后你只需拿起第一条记录(即t4a 1)即可获得最后一次非零条目后的记录。

library(smwrBase) # from https://github.com/USGS-R
t4a<-t4[smwrBase::eventNum(t4$D==0 & t4$L==0, reset=TRUE)==
         max(smwrBase::eventNum(t4$D==0 & t4$L==0, reset=TRUE)),]