2016-07-29 36 views
0

angesichts der Beispieltabelle,R: Wie zwei Reihen auf der Grundlage spezifischer Werte

ID T A B X Y Z 
    1 S 1 
    2 S 2 
    1 E 4 a b c 
    3 S 5 
    2 E 8 d e f 

und die Annahmen fusionieren:

  1. für die gleiche ID gibt es ein Paar von Reihen (erste Reihe T == S; zweite Zeile T == E)
  2. in der ersten Reihe (T == S) die Spalten ID, T, A haben Werte
  3. in der zweiten Reihe (T == E) die Spalten-ID , T, B, X, Y, Z haben Werte
  4. die beiden Reihenpaare sind nicht unbedingt untereinander

Ich versuche folgendes zu tun:

  1. Nach den Reihen mit der gleichen ID
  2. und fusionieren die Werte (in die Reihe T == S)
  3. entfernen Reihen mit T == E // da mit anderer Reihe zusammen

Das Ergebnis aussehen würde, wie dieser

ID T A B X Y Z 
    1 S 1 4 a b c 
    2 S 2 8 d e f 
    3 S 5 
    ... 

Derzeit verwende ich zwei verschachtelte for-Schleifen, die zu langsam ist. Hat jemand eine Idee, die schneller ist als zwei geschachtelte for-Schleifen?

Antwort