Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment utiliser la fonction Which dans R (avec exemples)



La fonction which() dans R renvoie la position des éléments dans un vecteur logique qui sont TRUE .

Ce tutoriel fournit plusieurs exemples d’utilisation pratique de cette fonction.

Exemple 1 : Rechercher des éléments dans un vecteur

Le code suivant montre comment trouver la position de tous les éléments d’un vecteur égaux à 5 :

#create data
data <- c(1, 2, 2, 3, 4, 4, 4, 5, 5, 12)

#find the position of all elements equal to 5
which(data == 5)

[1] 8 9

On voit que les éléments en positions 8 et 9 dans le vecteur sont égaux à la valeur 5.

On peut également trouver la position de tous les éléments d’un vecteur qui ne sont pas égaux à 5 :

#find the position of all elements not equal to 5
which(data != 5)

[1]  1  2  3  4  5  6  7 10

On peut également trouver quels éléments sont entre deux valeurs ou en dehors de deux valeurs :

#find the position of all elements with values between 2 and 4
which(data >= 2 & data <= 4)

[1] 2 3 4 5 6 7

#find the position of all elements with values outside of 2 and 4
which(data < 2 | data > 4)

[1]  1  8  9 10

Exemple 2 : compter les occurrences dans un vecteur

Le code suivant montre comment utiliser la fonction length() pour trouver le nombre d’éléments dans un vecteur supérieur à une certaine valeur :

#create data
data <- c(1, 2, 2, 3, 4, 4, 4, 5, 5, 12)

#find number of elements greater than  4
length(which(data > 4))

[1] 3

On peut voir qu’il y a 3 éléments dans ce vecteur avec des valeurs supérieures à 4.

Exemple 3 : Rechercher des lignes dans un bloc de données

Le code suivant montre comment renvoyer la ligne dans un bloc de données contenant la valeur max ou min dans une certaine colonne :

#create data frame
df <- data.frame(x = c(1, 2, 2, 3, 4, 5),
                 y = c(7, 7, 8, 9, 9, 9),
                 z = c('A', 'B', 'C', 'D', 'E', 'F'))

#view data frame
df

  x y z
1 1 7 A
2 2 7 B
3 2 8 C
4 3 9 D
5 4 9 E
6 5 9 F

#return row that contains the max value in column x
df[which.max(df$x), ]

  x y z
6 5 9 F

#return row that contains the min value in column x
df[which.min(df$x), ]

  x y z
1 1 7 A

Exemple 4 : sous-ensemble par lignes dans un bloc de données

Le code suivant montre comment subdiviser un bloc de données en lignes répondant à certains critères :

#create data frame
df <- data.frame(x = c(1, 2, 2, 3, 4, 5),
                 y = c(7, 7, 8, 9, 9, 9),
                 z = c('A', 'B', 'C', 'D', 'E', 'F'))

#view data frame
df

  x y z
1 1 7 A
2 2 7 B
3 2 8 C
4 3 9 D
5 4 9 E
6 5 9 F

#return subset of data frame where values in column y are greater than 8
df[which(df$y > 8), ]

  x y z
4 3 9 D
5 4 9 E
6 5 9 F

Trouvez plus de didacticiels R sur cette page .

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *