web-dev-qa-db-fra.com

Trouver la position de la première valeur supérieure à X dans un vecteur

Dans R: J'ai un vecteur et je veux trouver la position de la première valeur supérieure à 100.

16
curbholes
# Randomly generate a suitable vector
set.seed(0)
v <- sample(50:150, size = 50, replace = TRUE)

min(which(v > 100))
27
Phil

Départ which.max

x <- seq(1, 150, 3)
which.max(x > 100)
# [1] 35
x[35]
# [1] 103
12
lukeA

Hadley Wickham a implémenté une fonction, detect_index, pour effectuer exactement cette tâche dans son paquet purrr pour la programmation fonctionnelle.

J'ai récemment utilisé moi-même detect_index et le recommanderais à quiconque ayant le même problème.

La documentation pour detect_index est disponible ici: https://rdrr.io/cran/purrr/man/detect.html

4
Chill2Macht

Il y a beaucoup de solutions, une autre est:

x <- 90:110
which(x > 100)[1]
0
Jeff