Проверьте это:
fixed = c(FALSE, FALSE)
params <- fixed
params
params[!fixed]
[1] FALSE FALSE
Первоначально вы просто передаете вектор с двумя логическими значениями.
fixed = c(FALSE, 2)
params <- fixed
params
params[!fixed]
!fixed
> params
[1] 0 2
> params[!fixed]
[1] 0
Но когда вы даете своей функции аргумент, вы видите, что нетFALSE
.Это из-за того, что называется принуждением.FALSE
приводится к 0.
Так что теперь происходит так: вы получаете элемент params, который НЕ является вторым элементом в вашем векторе, а это 0.
Normalиндексирование, как это: c(1,2,3)[2]