2016-05-08 6 views
-1

ich eine df haben, die wie folgt aussieht:R max Wert in einer Spalte finden, für die es keine Werte in entsprechenden Spalten

Ich mag würde wissen, wie ich die letzte Zeile finden, die keinen Wert für D hat oder L, wie ich dies als die x-Achse Plot Grenze für eine Schleife Histogramm festlegen möchte. Ich muss der rowname Wert sein (hier entspricht es eigentlich einer Länge), das ist das höchste für das es irgendwelche Werte gab), es könnte andere Längen geben, die auch 0 Werte haben (dh wie 51 in diesem df) aber ich will die Länge, die keine anderen Längen hat, folgt ihr mit Werten (in diesem 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 
+0

Was ist die erwartete Ausgabe? (Und - in Bezug auf Ihre ex. Daten - warum?) – lukeA

+0

Hatten Sie eine Chance, [diese Diskussion] (http://stackoverflow.com/questions/26771343/conconditional-calculating-maximum-value-in- die Kolumne); Es beschreibt eine Reihe von Ansätzen, die sich mit der bedingten Identifizierung von maximalen Reihen befassen. – Konrad

Antwort

0

Ein Ansatz ist smwrBase :: eventNum von github zu verwenden. Im Folgenden wird t4a nur mit den letzten Datensätzen mit D & L == 0 zurückgegeben. Dann nehmen Sie einfach den ersten Datensatz (d. H. T4a 1) auf, um den Datensatz nach dem letzten Eintrag ungleich null zu erhalten.

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)),] 
Verwandte Themen