Nehmen wir an, ich habe eine Antwortvariable, die mit der Zeit steigt und fällt. Jedes Mal, wenn die Antwortvariable über einen Schwellenwert steigt, haben wir eine neue "Testversion". Das heißt, wenn ich eine Spalte Threshold
, das heißt TRUE
ist, wenn sie über einem bestimmten Wert liegen, bilden aufeinanderfolgende Blöcke von Datenpunkten, bei denen Threshold
TRUE
ist, einen neuen Versuch.Binning Daten nach einem Schwellenwert?
Time <- seq(1, 10, by = 0.5)
Response <- abs(sin(Time))
Threshold <- Response > 0.6
data <- data.frame(Time, Response, Threshold)
Time
, Response
, gegeben und Threshold
, wie könnte ich mich über einen Trial
Faktor hinzufügen, die für jede Gruppe von TRUE
Schwellen einen neuen Wert hat? Etwas wie folgt aus:
Time Response Threshold Trial
1 1.0 0.84147098 TRUE A
2 1.5 0.99749499 TRUE A
3 2.0 0.90929743 TRUE A
4 2.5 0.59847214 FALSE NA
5 3.0 0.14112001 FALSE NA
6 3.5 0.35078323 FALSE NA
7 4.0 0.75680250 TRUE B
8 4.5 0.97753012 TRUE B
9 5.0 0.95892427 TRUE B
10 5.5 0.70554033 TRUE B
11 6.0 0.27941550 FALSE NA
12 6.5 0.21511999 FALSE NA
13 7.0 0.65698660 TRUE C
14 7.5 0.93799998 TRUE C
15 8.0 0.98935825 TRUE C
16 8.5 0.79848711 TRUE C
17 9.0 0.41211849 FALSE NA
18 9.5 0.07515112 FALSE NA
19 10.0 0.54402111 FALSE NA
+1. Dies wäre schneller als Jakes Antwort, insbesondere wenn die Daten größer werden. Es kann weiter optimiert werden. Siehe hier: https://gist.github.com/mrdwab/8601445 – A5C1D2H2I1M1N2O1R2T1
@AnandaMahto, danke für deine Kommentare und Verbesserungsvorschläge! – Henrik