2016-05-01 4 views
0

Schwierig, einen kohärenten Titel zu bekommen; hoffe mein zweiter Versuch ist hier besser. Hier ist ein Problem bei der Bezugnahme auf FAR, über das, was ich herausfinden kann. Und, sehr bedauerlich, ich bin sehr unsicher, wie man ein nützliches Spielzeugbeispiel erzeugt (und nicht praktisch extrahieren kann). Im Grunde handelt es sich bei den Daten um jährliche Höheninkremente von Bäumen, ursprünglich im Breitformat und zu lange geschmolzen, so dass es sich nun um eine Serie handelt, bei der sich alle Individuen für jedes Jahr wiederholen. Es sieht aus wie:

Year Tree HtIncr CumulativeHt 
1986 1  5  5 
1986 2  na  na 
1986 3  7  11 
... 
1992 1  20  73 
1992 2  15  55 
...and so on 

Was ich brauchen, ist: pro Baum, die ersten fünf HtIncrs nach diesem Tree CumulativeHt> = 130 (und im Idealfall das Jahr, das auch startet). So würde die gewünschte Ausgabe so etwas wie:

Tree Year HtIncr CumulativeHt 
1  1998 23  132 
1  1999 19  151 
... 
1  2002 27  218 
2  2000 18  131 
... 

Gibt es eine mad Kombination von Namen und Klammern, die das packen, oder wäre es besser, es durch ein paar for-Schleifen zu laufen? Ich könnte die Schleifen selbst kochen, aber ich würde den verrückten Kombinationsansatz bevorzugen, da dies eine Beschreibung der Datenpunktbeziehungen darstellt, während das Schleifensystem nur eine Sache ist, die mit den Daten passiert.

+0

Subset passieren! Auffallend offensichtlich! Ich habe drastisch überdenken müssen. Vielen Dank. Trotzdem, wenn jemand die Art von Lösung beisteuern könnte, die ich mir vorstellte, wäre ich sehr interessiert - es wäre eine große Hilfe, um mich in die Referenzmuster zu bringen. – uhClem

Antwort

0
subset(df, CumulativeHt > 130, select = c(Year, Tree, HtIncr)) 

oder

df[df$CumulativeHt > 130, c(Year, Tree, HtIncr)] 

oder

require(dplyr) 
df %>% filter(CumulativeHt > 130) 

Hinweis, können Sie mehrere Bedingungen mit |

filter(CumulativeHt > 130 |Year >1888)