Ich möchte für jeden auswählen ID
die beiden nächsten Werte vonCq
. Ich dachte, ich hätte es herausgefunden, aber es hängt von der Reihenposition ab ...
Hier ist ein Beispiel für die Form meines Datensatzes:
df <- data.frame(ID = c("A","A","A","B","B","B","C","C","C"),
Cq = c(34.32,34.40,34.31,31.49,31.40,31.49,31.22,31.31,31.08))
ID Cq
1 A 34.32
2 A 34.40
3 A 34.31
4 B 31.49
5 B 31.40
6 B 31.49
7 C 31.22
8 C 31.31
9 C 31.08
Und was ich versucht habe
df4 <-df %>%
group_by(ID) %>%
arrange(Cq) %>%
mutate(diffvals= Cq - lag(Cq)) %>%
filter(row_number() == 1 | row_number() == 2)
#Output
ID Cq diffvals
1 A 34.31 NA
2 A 34.32 0.0100
3 B 31.40 NA
4 B 31.49 0.0900
5 C 31.08 NA
6 C 31.22 0.14
Und die erwartete Leistung
ID Cq
1 A 34.32
2 A 34.31
3 B 31.49
4 B 31.49
5 C 31.22
6 C 31.31
Ich habe bereits versucht, meinen Datensatz zu sortieren, aber er ändert nichts. Ich habe es auch versuchtfilter(diffvals=wich.min==diffvals)
aber ich weiß nicht, wie ich die zwei kleinsten extrahieren soll.
Wenn Sie irgendwelche Ideen haben, würde es mir sehr helfen!
Danke im Voraus