Ich habe versucht, eine Möglichkeit zu finden, dies durch R zu schreiben, aber kann es einfach nicht bekommen. Ich habe einen Datensatz wie folgt aus:Wählen Sie bestimmte Zeilen basierend auf vorherigen Zeile Wert (in der gleichen Spalte)
Trial Type Correct Latency
1 55 0 0
3 30 1 766
4 10 1 344
6 40 1 716
7 10 1 326
9 30 1 550
10 10 1 350
11 64 0 0
13 30 1 683
14 10 1 270
16 30 1 666
17 10 1 297
19 40 1 616
20 10 1 315
21 64 0 0
23 40 1 850
24 10 1 322
26 30 1 566
27 20 0 766
28 40 1 500
29 20 1 230
, die viel länger geht (um 1000 Zeilen).
Von diesem einen Datensatz, würde ich gerne 4 separate data.frames erstellen/Tabellen Ich kann Tabellen exportieren mit als auch tun, um meine eigene Berechnungen
Ich möchte einen data.frame (insgesamt 4 haben), ein für jedes dieser Aufzählungspunkte:
- Typ 10 Zeilen, die von einem Typ 30 Zeile
- Typ 10 Zeilen vorausgehen, die von einem Typ 40 Zeile
- Typ 20 Zeilen vorausgehen, die vorangeht durch eine Reihe vom Typ 30
- Typ 20 Zeilen, die von einer Art 40 Reihe voraus sind
ich für alle Spalten in den entsprechenden Zeilen in diese neuen Tabellen platziert werden möchte, aber die Spalte Informationen von Zeilentypen 10 oder 20 nur mit . die erste Tabelle
beispielsweise (Typen von Typ 30 voran 10) würde diese auf den Probendaten basierend mag:
Trial Type Correct Latency
4 10 1 344
10 10 1 350
14 10 1 270
17 10 1 297
zweite Tabelle (Typ 10 nach Art voran 40):
Trial Type Correct Latency
7 10 1 326
20 10 1 315
24 10 1 322
dritte Tabelle (Typ nach Art voran 20 30):
Trial Type Correct Latency
27 20 0 766
vierte Tabelle (Tabelle nach Art voran 20 40):
Trial Type Correct Latency
29 20 1 230
Ich kann nur eine Teilmenge von 10 Zeilen und eine andere für 20 Zeilen, aber ich kann nicht finde heraus, wie man verschiedene Tabellen für die Zeilen vom Typ 10 und 20 basierend auf dem vorherigen Typwert erstellt. Ein Problem ist auch, dass "Trials" nicht in Ordnung ist (überspringt Zahlen).
Jede Hilfe würde sehr geschätzt werden. Vielen Dank.
Auch, gibt es eine Möglichkeit, die vorherige Zeile als auch enthalten, so dass der Ausgang für die vierte Tabelle würde wie folgt aussehen:
Vierte Tabelle (Tabellen nach Typ voran 20 40):
Trial Type Correct Latency
28 40 1 500
29 20 1 230
Hallo mtoto, ich habe den Code ausprobiert, aber ich bekomme nur eine leere Tabelle (mit nur den Spaltenüberschriften). Irgendwelche Vorschläge, was ich falsch machen könnte? Vielen Dank. – pdhami
Ich habe das Problem herausgefunden, wir brauchen 'lag()' aus 'dplyr', nicht aus' stats' Paket. Antwort aktualisiert – mtoto
Sie können es auch komplett in 'dplyr' mit' filter (df, Type == 10 & lag (Type) == 30) ' – User7598