Я новичок в R и получаю неожиданные результаты при использовании функции ifelse(). Вот пример. Ниже приведено подмножество кадра данных, с которым я работаю. После последней команды, почему столбец $ Points содержит пример 12 вместо 2? Я пробовал это для многих разных значений примера $ Value, и результат всегда на 10 больше, чем я ожидаю.R Вопрос: ifelse производит неожиданные результаты
Пример:
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
Я использовал обходные чуть вычитая 10 из колонки, но я хотел бы избежать этого и добраться до сути того, что здесь происходит.
Любая помощь была бы принята с благодарностью. Спасибо!
Можете ли вы предоставить вывод 'str (example)' или 'dput (пример [2926: 2930,])'? –
Можете ли вы попробовать это в чистой сессии R? Я получаю желаемый результат, когда я пытаюсь выполнить код. Не вызывайте фрейм данных 'example', поскольку это функция R; попробуйте другое имя. Вы также можете упростить код для использования 'inside()'; если у меня есть данные в фрейме данных 'DF',' DF <- внутри (DF, Points <- ifelse (Ответ == "Co", Value, Points)) 'будет делать то же, что и ваш код, не повторяя все бит 'DF $' ('exmaple $' в вашем случае). –