R问题:ifelse产生意外结果

Jef*_*son 2 if-statement r dataframe

我是R的新手,在使用ifelse()函数时会得到意想不到的结果.这是一个例子.下面是我正在使用的数据框的子集.在最后一个命令之后,为什么示例$ Points列包含12而不是2?我已经尝试了这个示例$ Value的许多不同值,结果总是比我预期的多10.

例:

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
Run Code Online (Sandbox Code Playgroud)

我一直在使用从列中减去10的解决方法,但我想避免这种情况并深入了解这里发生的事情.

任何帮助将不胜感激.谢谢!

Jos*_*ich 7

我猜这example$Value是一个因素,你得到的是基础代码而不是标签.我建议您在读入R后立即查看数据,看看是什么导致您的输入法将这些值视为因子而不是整数/数字.