Я пишу функцию, которая вычисляет новый столбец на основе нескольких полей в моем фрейме данных. Частью процесса является предварительная проверка диапазона одного поля ввода перед фактической обработкой. Странно то, что моя предварительная проверка всегда возвращает одно и то же значение, то есть результат предварительной проверки для первой строки кадра данных.
См. Пример ниже с упрощенной версией моей функции, которая включает только проверку. Даже если переменная должным образом передается в функцию и каждый раз отличается, результат предварительной проверки остается неизменным. Чего мне не хватает?
> my_function = function(x){
+ print(paste(x, x < 32 && x > 0))
+ if (x < 32 && x > 0) {
+ # do_something ...
+ }
+ }
>
> df = data.frame("A" = c(10,20,30,40), "B" = c(0,10,20,30), "C" = c(40,30,20,10))
> my_function(df$A)
[1] "10 TRUE" "20 TRUE" "30 TRUE" "40 TRUE"
> my_function(df$B)
[1] "0 FALSE" "10 FALSE" "20 FALSE" "30 FALSE"
> my_function(df$C)
[1] "40 FALSE" "30 FALSE" "20 FALSE" "10 FALSE"