es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Encuentra el mínimo y máximo de una columna dada un índice ordenado en Dplyr.

Tengo un vector y le añado sus índices de la siguiente manera:

“`{r}
library(tidyverse)

Crear el vector

vector_ex <- c(44, 30, 24, 32, 35)

Añadir índices

vector_ex_indexed <- cbind(seq_along(vector_ex), vector_ex)

as.data.frame(vector_ex_indexed) %>%
rename(Index = V1)


Index vector_ex
1 1 44
2 2 30
3 3 24
4 4 32
5 5 35


Me gustaría encontrar el <strong>primer</strong> valor mínimo de `vector_ex` teniendo en cuenta el orden del Índice, y el <strong>primer</strong> valor máximo de `vector_ex` justo después del índice adjunto al mínimo. Por ejemplo, en este caso quiero identificar - con dplyr: - El primer par de `Index` y `vector_ex` con el valor mínimo es:

Index vector_ex
3 3 24


- El primer par de `Index` y `vector_ex` con el valor máximo es:

Index vector_ex
5 5 35
“`

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para encontrar el primer valor mínimo de vector_ex teniendo en cuenta el orden del índice, podemos usar la función which.min() para determinar el índice del valor mínimo, y luego usar la función slice() de dplyr para extraer la fila correspondiente.

    library(dplyr)
    
    vector_ex_indexed %>%
      rename(Index = V1, vector_ex = V2) %>%
      slice(which.min(vector_ex))
    
    # Resultado
      Index vector_ex
    1     3        24
    

    De manera similar, para encontrar el primer valor máximo de vector_ex justo después del índice adjunto al mínimo, podemos primero extraer la fila con el valor mínimo como se muestra arriba, y luego usar la función filter() para seleccionar el valor máximo que viene después del índice mínimo utilizando la función lead().

    vector_ex_indexed %>%
      rename(Index = V1, vector_ex = V2) %>%
      slice(which.min(vector_ex)) %>%
      filter(vector_ex == max(lead(vector_ex)))
    
    # Resultado
      Index vector_ex
    1     5        35
    

Comments are closed.