Comment calculer la valeur médiane des lignes dans R



Vous pouvez utiliser les méthodes suivantes pour calculer la valeur médiane des lignes dans R :

Méthode 1 : calculer la médiane des lignes en utilisant la base R

df$row_median = apply(df, 1, median, na.rm=TRUE)

Méthode 2 : calculer la médiane des lignes à l’aide de dplyr

library(dplyr) 

df %>%
  rowwise() %>%
  mutate(row_median = median(c_across(where(is.numeric)), na.rm=TRUE))

Les exemples suivants montrent comment utiliser chaque méthode dans la pratique.

Exemple 1 : calculer la médiane des lignes en utilisant la base R

Supposons que nous ayons le bloc de données suivant dans R qui montre les points marqués par différents joueurs de basket-ball au cours de trois matchs différents :

#create data frame
df <- data.frame(game1=c(10, 12, 14, 15, 16, 18, 19),
                 game2=c(14, 19, 13, 8, 15, 15, 17),
                 game3=c(9, NA, 15, 25, 26, 30, 19))

#view data frame
df

  game1 game2 game3
1    10    14     9
2    12    19    NA
3    14    13    15
4    15     8    25
5    16    15    26
6    18    15    30
7    19    17    19

Nous pouvons utiliser la fonction apply() de la base R pour créer une nouvelle colonne qui affiche la valeur médiane de chaque ligne :

#calculate median of each row
df$row_median = apply(df, 1, median, na.rm=TRUE)

#view updated data frame
df

  game1 game2 game3 row_median
1    10    14     9       10.0
2    12    19    NA       15.5
3    14    13    15       14.0
4    15     8    25       15.0
5    16    15    26       16.0
6    18    15    30       18.0
7    19    17    19       19.0

La nouvelle colonne appelée row_median contient la valeur médiane de chaque ligne du bloc de données.

Exemple 2 : calculer la médiane des lignes à l’aide de dplyr

Supposons que nous ayons le bloc de données suivant dans R qui montre les points marqués par différents joueurs de basket-ball au cours de trois matchs différents :

#create data frame
df <- data.frame(player=c('A', 'B', 'C', 'D', 'E', 'F', 'G'),
                 game1=c(10, 12, 14, 15, 16, 18, 19),
                 game2=c(14, 19, 13, 8, 15, 15, 17),
                 game3=c(9, NA, 15, 25, 26, 30, 19))

#view data frame
df

  player game1 game2 game3
1      A    10    14     9
2      B    12    19    NA
3      C    14    13    15
4      D    15     8    25
5      E    16    15    26
6      F    18    15    30
7      G    19    17    19

Nous pouvons utiliser la fonction mutate() du package dplyr pour créer une nouvelle colonne qui affiche la valeur médiane de chaque ligne pour les colonnes numériques uniquement :

library(dplyr)

#calculate median of rows for numeric columns only
df %>%
  rowwise() %>%
  mutate(row_median = median(c_across(where(is.numeric)), na.rm=TRUE))

# A tibble: 7 x 5
# Rowwise: 
  player game1 game2 game3 row_median
            
1 A         10    14     9         10  
2 B         12    19    NA       15.5
3 C         14    13    15         14  
4 D         15     8    25         15  
5 E         16    15    26         16  
6 F         18    15    30         18  
7 G         19    17    19         19  

La nouvelle colonne appelée row_median contient la valeur médiane de chaque ligne du bloc de données pour les colonnes numériques uniquement.

Ressources additionnelles

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

Comment remplacer NA par la médiane dans R
Comment calculer une moyenne tronquée dans R
Comment calculer une moyenne pondérée dans R

Ajouter un commentaire

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