Когда я смотрю на функции R, я часто нахожу следующую структуру:
f <- function(exp=T) {
if (exp)
a <- 1
else
a <- 2
}
f()
f(F)
Это будет работать без ошибок. Но выполнение внутреннего кода функции вызывает ошибку, так как R, вероятно, предполагает, что оператор завершается после первого присваивания a <- 1
и не может обрабатывать следующее.
exp=T
if (exp)
a <- 1
else
a <- 2
Теперь это имеет смысл для меня, но мне все же хотелось бы понять, почему поведение исполняемого кода отличается при выполнении внутри или вне функции.