Dans un grand dataframe ("myfile") avec quatre colonnes, je dois ajouter une cinquième colonne avec des valeurs conditionnellement basées sur les quatre premières colonnes.
Préférez les réponses avec dplyret mutate, principalement en raison de sa rapidité dans les grands ensembles de données.
Mon dataframe ressemble à ceci:
V1 V2 V3 V4
1 1 2 3 5
2 2 4 4 1
3 1 4 1 1
4 4 5 1 3
5 5 5 5 4
...
Les valeurs de la cinquième colonne (V5) sont basées sur certaines règles conditionnelles:
if (V1==1 & V2!=4) {
V5 <- 1
} else if (V2==4 & V3!=1) {
V5 <- 2
} else {
V5 <- 0
}
Maintenant, je veux utiliser la mutatefonction pour utiliser ces règles sur toutes les lignes (pour éviter les boucles lentes). Quelque chose comme ça (et oui, je sais que ça ne marche pas comme ça!):
myfile <- mutate(myfile, if (V1==1 & V2!=4){V5 = 1}
else if (V2==4 & V3!=1){V5 = 2}
else {V5 = 0})
Cela devrait être le résultat:
V1 V2 V3 V4 V5
1 1 2 3 5 1
2 2 4 4 1 2
3 1 4 1 1 0
4 4 5 1 3 0
5 5 5 5 4 0
Comment faire cela dplyr?
NA, (NaN, +Inf, -Inf)?