Tengo un aspecto de datos como:

power = seq(1:10)
Rsq = c(-0.503268561,-0.337920056,-0.000470763,0.204181075,0.299591119,0.376839371,0.424761718, 0.424487633, 0.642269314, 0.194640766)
df = data.frame(power,Rsq)

Ahora, quiero elegir el valor máximo POR PRIMERA VEZ en la columna 'Rsq'. A partir de eso, mi resultado esperado se ve así:

power ------- Rsq

7 ----------0.424761718
r
0
Huy Nguyen 26 jun. 2020 a las 22:13

2 respuestas

La mejor respuesta

Podemos obtener la diff diferencia de elementos adyacentes en 'Rsq', verificar si es menor que 0 y obtener el índice de max

library(dplyr)
df %>%
    slice(which.max(c(diff(Rsq), NA) < 0))
#   power       Rsq
#1     7 0.4247617
1
akrun 26 jun. 2020 a las 19:26

En Base-R

  df[which.max(df$Rsq),]

  power       Rsq
7     7 0.4247617
0
Daniel O 26 jun. 2020 a las 19:22