In un dataframe di grandi dimensioni ("myfile") con quattro colonne devo aggiungere una quinta colonna con valori basati condizionatamente sulle prime quattro colonne.
Preferisci risposte con dplyre mutate, principalmente a causa della sua velocità in set di dati di grandi dimensioni.
Il mio dataframe ha questo aspetto:
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
...
I valori della quinta colonna (V5) si basano su alcune regole condizionali:
if (V1==1 & V2!=4) {
V5 <- 1
} else if (V2==4 & V3!=1) {
V5 <- 2
} else {
V5 <- 0
}
Ora voglio utilizzare la mutatefunzione per utilizzare queste regole su tutte le righe (per evitare cicli lenti). Qualcosa del genere (e sì, lo so che non funziona in questo modo!):
myfile <- mutate(myfile, if (V1==1 & V2!=4){V5 = 1}
else if (V2==4 & V3!=1){V5 = 2}
else {V5 = 0})
Questo dovrebbe essere il risultato:
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
Come farlo in dplyr?
NA, (NaN, +Inf, -Inf)?