Index als Schleife

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
jessi
Beiträge: 100
Registriert: Mo Jul 10, 2017 9:23 am

Index als Schleife

Beitrag von jessi »

Hallo zusammen,

ich möchte meine Programme gerne weiter automatisieren und steh gerade erneut vor einem Problem.
Ich habe Windmessdaten die phi und lam Koordinaten zugeordnet sind. Aus diesen habe ich mir jetzt die 10 höchsten Windspitzen ausgeben lassen

Code: Alles auswählen

max_boen_50 <- sort(boen, decreasing = TRUE)[1:50]
print(max_boen50)
Anschließend habe ich den Index (phi und lam) dieser Werte gesucht:

Code: Alles auswählen

index_boen <- data.frame(name=character(0), len=numeric(0))
for (i in 1:50){
index_boen <- rbind(index_boen, data.frame(which(boen == max_boen50[i], arr.ind=TRUE)))}

df_index_boen <- data.frame(index_boen, max_boen50)

print(df_index_boen)
df_index_boen
          lam    phi          max_boen50
100      1       6 		19.186738
1001     1       5 		18.931313
1002     1       4 		18.702394
1003     1       1 		18.548133
...
So weit so gut. Nun möchte ich allerdings auch den Mittelwind und später die Windrichtung an diesen Indizes wissen. Bis jetzt habe ich das immer händisch abgefragt mit

Code: Alles auswählen

 mittelwind[1,6] 
, da es anfangs nur die höchsten 10 Böen waren. Mit 50 Werte stellte sich das ganz dann doch als etwas aufwendig heraus. Leider schaffe ich es nicht, die lam und phi-Indizes aus df_index_boen in eine Formel zu packen, versucht habe ich das mit einer Doppelschleife über i und j. Das hat leider nicht so recht funktioniert und vielleicht gibt es auch eine einfachere/schönere Lösung, wie man dieses Problem lösen kann.

Vielen Dank für eure Unterstützung.
Jessi
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Index als Schleife

Beitrag von EDi »

Hast du hier

Code: Alles auswählen

max_boen_50 <- sort(boen, decreasing = TRUE)[1:50]
nicht einen identifier für die Beobachtung bzw. Wetterstation?

Oder meinst du sowas:

Code: Alles auswählen

mittelwind[mittelwind$lam %in% df_index_boen$lam & mittelwind$phi %in% df_index_boen$phi]
Ansonsten bitte ein reproduzierbares Beispiel posten - ich verstehe nämlich fast gar nichts...
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Antworten