Je suis nouveau à R et je reçois des résultats inattendus en utilisant la fonction ifelse(). Voici un exemple. Voici un sous-ensemble de la base de données avec laquelle je travaille. Après la dernière commande, pourquoi la colonne exemple $ Points contient-elle 12 au lieu de 2? J'ai essayé ceci pour de nombreuses valeurs différentes de l'exemple $ Value et le résultat est toujours 10 de plus que ce à quoi je m'attendais.R Question: ifelse produisant des résultats inattendus
Exemple:
example
Question StudentID SchoolID Value Worth Answer Points
2926 18 101290 84386 2 2 Co 0
2927 18 100878 84386 2 2 Co 0
2928 18 100895 84386 1 5 Co 0
2929 18 100913 84386 2 2 Co 0
2930 18 100884 84386 2 2 Co 0
example$Points <- ifelse(example$Answer == "Co", example$Value, example$Points)
example
Question StudentID SchoolID Value Worth Answer Points
2926 18 101290 84386 2 2 Co 12
2927 18 100878 84386 2 2 Co 12
2928 18 100895 84386 1 5 Co 11
2929 18 100913 84386 2 2 Co 12
2930 18 100884 84386 2 2 Co 12
J'utilise le travail autour d'un peu puis en soustrayant 10 de la colonne, mais je voudrais éviter cela et aller au fond de ce qui se passe ici.
Toute aide serait grandement apprécié. Je vous remercie!
Pouvez-vous fournir la sortie de str (par exemple) '' ou dput (par exemple [2926: 2930,]) '? –
Pouvez-vous essayer cela dans une session R propre? J'obtiens le résultat désiré quand j'essaye votre code. N'appelez pas la trame de données 'example' car c'est une fonction R; essayez un nom différent. Vous pouvez également simplifier le code pour utiliser 'within()'; si j'ai vos données dans la trame de données 'DF',' DF <- dedans (DF, Points <- ifelse (Réponse == "Co", Valeur, Points)) 'fera la même chose que votre code sans avoir à répéter tout les bits 'DF $' ('exmaple $' dans votre cas). –