Gostaria de selecionar para cada um IDdos dois valores mais próximos de Cq. Eu pensei que tinha descoberto, mas depende da posição da linha ...
Aqui está um exemplo da forma do meu conjunto de dados:
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
E o que eu tentei
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
E a saída esperada
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
Eu tentei classificar meu conjunto de dados antes, mas isso não muda nada. Eu também tentei usar, filter(diffvals=wich.min==diffvals)mas não sei como extrair os dois menores.
Se você tem alguma idéia, isso me ajudaria muito!
desde já, obrigado