R : Comment trouver la première ligne qui répond aux critères



Vous pouvez utiliser les méthodes suivantes pour rechercher la première ligne d’un bloc de données dans R qui répond à des critères spécifiques :

Méthode 1 : trouver la première ligne qui répond à un critère

#get first row where value in 'team' column is equal to 'B'
df[which(df$team=='B', arr.ind=TRUE)[1],]

Méthode 2 : trouver la première ligne qui répond à plusieurs critères

#get first row where 'points' column > 15 and 'assists' column > 10
df[which(df$points>15 & df$assists>10, arr.ind = TRUE)[1],]

Méthode 3 : Trouver la première ligne qui répond à l’un des nombreux critères

#get first row where 'points' column > 15 or 'assists' column > 10
df[which(df$points>15 | df$assists>10, arr.ind = TRUE)[1],]

Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le bloc de données suivant dans R :

#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'),
                 points=c(18, 13, 19, 14, 24, 21, 20, 28),
                 assists=c(5, 7, 17, 9, 12, 9, 5, 12))

#view data frame
df

  team points assists
1    A     18       5
2    A     13       7
3    A     19      17
4    B     14       9
5    B     24      12
6    C     21       9
7    C     20       5
8    C     28      12

Exemple 1 : Rechercher la première ligne qui répond à un critère

Nous pouvons utiliser la syntaxe suivante pour trouver la première ligne où la valeur dans la colonne équipe est égale à « B » :

#find first row where team is equal to 'B'
df[which(df$team=='B', arr.ind=TRUE)[1],] 

  team points assists
4    B     14       9

Nous pouvons voir que la première ligne où la valeur dans la colonne équipe est égale à « B » est la quatrième ligne du bloc de données.

Exemple 2 : Rechercher la première ligne qui répond à plusieurs critères

Nous pouvons utiliser la syntaxe suivante pour trouver la première ligne où la valeur dans la colonne des points est supérieure à 15 et la valeur dans la colonne des passes décisives est supérieure à 10 :

#find first row where points > 15 and assists > 10
df[which(df$points>15 & df$assists>10, arr.ind = TRUE)[1],] 

  team points assists
3    A     19      17

Nous pouvons voir que la première ligne où la valeur dans la colonne des points est supérieure à 15 et la valeur dans la colonne des passes décisives est supérieure à 10 est la troisième ligne du bloc de données.

Exemple 3 : Rechercher la première ligne qui répond à l’un des nombreux critères

Nous pouvons utiliser la syntaxe suivante pour trouver la première ligne où la valeur dans la colonne des points est supérieure à 15 ou la valeur dans la colonne des passes décisives est supérieure à 10 :

#find first row where points > 15 or assists > 10
df[which(df$points>15 | df$assists>10, arr.ind = TRUE)[1],]

  team points assists
1    A     18       5

Nous pouvons voir que la première ligne où la valeur dans la colonne des points est supérieure à 15 ou la valeur dans la colonne des passes décisives est supérieure à 10 est la première ligne du bloc de données.

Remarque : Les opérateurs & et | représentent « et » et « ou » dans R, respectivement.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment trouver la valeur maximale dans chaque ligne dans R
Comment calculer la valeur médiane des lignes dans R
Comment trouver des lignes uniques sur plusieurs colonnes dans R

Ajouter un commentaire

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