Я пытаюсь создать новую переменную (например, col3), в результате чего значения для конечной переменной вычисляются по-разному в зависимости от уровней другой переменной (например, col2).
Я пробовалНесколько различных методов, таких как создание новых переменных, а также изменение с помощью dplyr.Мои текущие данные выглядят как
> df
Grade Theta
1 -2.39
2 0.11
3 0.30
4 0.23
, и механизмы диалога с новыми переменными будут такими:
df$sstest1[df$Grade=='1']=(((df$Theta--.0961)/.657)*15)+100
df$sstest2[df$Grade=='2']=(((df$Theta--.0406)/.631)*15)+100
df$sstest3[df$Grade=='3']=(((df$Theta-.163)/.621)*15)+100
df$sstest4[df$Grade=="4"]=(((df$Theta-.318)/.702)*15)+100
Таким образом, ожидается, что новый df должен быть
> df
Grade Theta sstest1 sstest2 sstest3 sstest4
1 -2.39 47.627
2 0.11 103.58
3 0.30 103.31
4 0.23 98.12
Однако результат, который я получаю, равен
> df
Grade Theta sstest1 sstest2 sstest3 sstest4
1 -2.39 47.627
2 0.11 44.15
3 0.30 38.33
4 0.23 42.14
, где значение sstest1 является правильным, но я получаю предупреждения о
Warning df$sstest1[df$Grade=='1']=(((df$Theta--.0961)/.657)*15)+100 number of items to replace is not a multiple of replacement length
Warning df$sstest2[df$Grade=='2']=(((df$Theta--.0406)/.631)*15)+100 number of items to replace is not a multiple of replacement length
Warning df$sstest3[df$Grade=='3']=(((df$Theta-.163)/.621)*15)+100 number of items to replace is not a multiple of replacement length
Warning df$sstest4[df$Grade=="4"]=(((df$Theta-.318)/.702)*15)+100 number of items to replace is not a multiple of replacement length
Перед тем, как перейти к полным операторам ifelse или mutate,Я пытаюсь согласовать, как sstest2-sstest4 выдают неправильные значения, где sstest1 выдает правильное значение.