R : Comment ajouter une colonne au bloc de données en fonction d’autres colonnes
Vous pouvez utiliser la syntaxe de base suivante pour ajouter une colonne à un bloc de données dans R en fonction des valeurs des autres colonnes :
#add new column 'col3' with values based on columns 1 and 2 df$col3 <- with(df, ifelse(col1 > col2, value_if_true, value_if_false))
Les exemples suivants montrent comment utiliser cette syntaxe dans la pratique.
Exemple 1 : ajouter une colonne de caractères basée sur d’autres colonnes
Le code suivant montre comment ajouter une nouvelle colonne de caractères basée sur les valeurs des autres colonnes du bloc de données :
#create data frame
df <- data.frame(team=c('Mavs', 'Cavs', 'Spurs', 'Nets'),
scored=c(99, 90, 84, 96),
allowed=c(95, 80, 87, 95))
#view data frame
df
team scored allowed
1 Mavs 99 95
2 Cavs 90 80
3 Spurs 84 87
4 Nets 96 95
#add 'result' column based on values in 'scored' and 'allowed' columns
df$result <- with(df, ifelse(scored > allowed, 'Win', 'Loss'))
#view updated data frame
df
team scored allowed result
1 Mavs 99 95 Win
2 Cavs 90 80 Win
3 Spurs 84 87 Loss
4 Nets 96 95 Win
Et le code suivant montre comment ajouter une nouvelle colonne de caractères qui combine deux fonctions ifelse() pour produire trois valeurs potentielles dans une nouvelle colonne :
#create data frame
df <- data.frame(team=c('Mavs', 'Cavs', 'Spurs', 'Nets'),
scored=c(99, 90, 84, 96),
allowed=c(95, 80, 87, 95))
#view data frame
df
team scored allowed
1 Mavs 99 95
2 Cavs 90 80
3 Spurs 84 87
4 Nets 96 95
#add 'quality' column based on values in 'scored' and 'allowed' columns
df$quality <- with(df, ifelse(scored > 95, 'great',
ifelse(scored > 85, 'good', 'bad')))
#view updated data frame
df
team scored allowed quality
1 Mavs 99 95 great
2 Cavs 90 80 good
3 Spurs 84 87 bad
4 Nets 96 95 great
Exemple 2 : ajouter une colonne numérique basée sur d’autres colonnes
Le code suivant montre comment ajouter une nouvelle colonne numérique à un bloc de données en fonction des valeurs des autres colonnes :
#create data frame
df <- data.frame(team=c('Mavs', 'Cavs', 'Spurs', 'Nets'),
scored=c(99, 90, 84, 96),
allowed=c(95, 80, 87, 95))
#view data frame
df
team scored allowed
1 Mavs 99 95
2 Cavs 90 80
3 Spurs 84 87
4 Nets 96 95
#add 'lower_score' column based on values in 'scored' and 'allowed' columns
df$lower_score <- with(df, ifelse(scored > allowed, allowed, scored))
#view updated data frame
df
team scored allowed lower_score
1 Mavs 99 95 95
2 Cavs 90 80 80
3 Spurs 84 87 84
4 Nets 96 95 95
Ressources additionnelles
Comment ajouter des colonnes au bloc de données dans R
Comment ajouter une colonne vide à un bloc de données dans R
Comment ajouter une colonne d’index au bloc de données dans R