Hello,
L'erreur vient du fait que tu appliques une condition if sur un vecteur donc R te dit qu'il testera ta condition sur le premier élément du vecteur uniquement.
Il y a qqs autres erreurs dans ton code notamment dans l'utilisation de mutate pour créer la colonne Period et quand tu remplis Period:
1 2 3 4 5 6 7 8
|
ChickWeight2 <- mutate(ChickWeight,
if (Time <= 10) {
Period == "Period 1"
} else if (Time > 10) {
Period == "Period 2"
}
) |
Avec mutate tu utilises une syntaxe
mutate(data, newvar = ...)
Ici newvar est Period. Lorsque tu veux remplir Period selon ta condition tu utilises "==" or pour assigner en R c'est "<-", si tu utilises == tu réalises un test d'égalité.
Utiliser ifelse n'est pas une mauvaise idée, une possibilité ci-après :
1 2
|
ChickWeight2 <- mutate(ChickWeight, Period = ifelse(Time <= 10, yes = "Period 1", no = "Period 2") |
en gros ifelse te permets d'appliquer le test Time <= 10 en chaque element de ton vecteur, si la réponse est oui alors tu mets period1 sinon period2.
De plus je nesais pas si tu devrais mettre des espaces dans tes noms de labels (Period_1 ou period1 seront plus simple à gérer je pense).
Partager