ajout d'une valeur à une colonne sous condition
Bonjour,
Je suis sous R et je voudrais écrire un code qui me permettrai d'ajouter une somme x en fonction de l'année.
En gros ma table se présente comme suit :
ID |
year |
freq |
123 |
2011 |
3 |
342 |
2012 |
9 |
235 |
2013 |
11 |
654 |
2014 |
2 |
393 |
2015 |
8 |
Voici un début de code que j'ai essayé d'écrire sans succès :
Code:
1 2 3 4 5 6 7 8 9
|
for (ventes_final$year in 2011:2015) {
if(ventes_final$year == 2012) {return(ventes_final$frequence_achat_week == ventes_final$frequence_achat_week + 53)}
else{if(ventes_final$year == 2013) {return(ventes_final$frequence_achat_week == ventes_final$frequence_achat_week + 105)}
if(ventes_final$year == 2014) {return(ventes_final$frequence_achat_week == ventes_final$frequence_achat_week + 157)}
if(ventes_final$year == 2015) {return(ventes_final$frequence_achat_week == ventes_final$frequence_achat_week + 209)}
else{return(ventes_final$year)}
}
} |
J'ai également essayé un autre code qui est le suivant, toujours sans succès :
Code:
1 2 3 4 5 6 7 8 9 10 11
| if (ventes_final$year == 2012) {
ventes_final$frequence_achat_week <- ventes_final$frequence_achat_week + 53
}
else if (ventes_final$year == 2013) {
ventes_final$frequence_achat_week <- ventes_final$frequence_achat_week + 105
}
else if (ventes_final$year == 2014) {
ventes_final$frequence_achat_week <- ventes_final$frequence_achat_week + 157
}
else {ventes_final$frequence_achat_week <- ventes_final$frequence_achat_week
} |
je dois sûrement faire une faute quelque part mais je ne vois pas où.
Merci en avance.
Bien cordialement,
Ali3529
Modification d'une valeur sous condition
Bonjour,
Il ne faut pas raisonner en boucles dans R.
Code:
1 2 3 4 5 6 7 8
| > df <- read.table("test.txt",header=TRUE)
> df
ID year freq
1 123 2011 3
2 342 2012 9
3 235 2013 11
4 654 2014 2
5 393 2015 8 |
Code:
1 2 3 4 5 6 7 8 9 10 11
| > df$freq[df$year==2012] <- df$freq[df$year==2012]+53
> df$freq[df$year==2013] <- df$freq[df$year==2013]+105
> df$freq[df$year==2014] <- df$freq[df$year==2014]+157
> df$freq[df$year==2015] <- df$freq[df$year==2015]+209
> df
ID year freq
1 123 2011 3
2 342 2012 62
3 235 2013 116
4 654 2014 159
5 393 2015 217 |
ou avec la fonction ifelse() :
Code:
1 2 3 4 5 6 7 8 9 10 11
| > df$freq <- ifelse(df$year==2012, df$freq+53, df$freq)
> df$freq <- ifelse(df$year==2013, df$freq+105, df$freq)
> df$freq <- ifelse(df$year==2014, df$freq+157, df$freq)
> df$freq <- ifelse(df$year==2015, df$freq+209, df$freq)
> df
ID year freq
1 123 2011 3
2 342 2012 62
3 235 2013 116
4 654 2014 159
5 393 2015 217 |
Cordialement,