if / else tworzy funkcje wewnętrzne i zewnętrzne
Kiedy patrzę na funkcje R, często znajduję następującą strukturę:
f <- function(exp=T) {
if (exp)
a <- 1
else
a <- 2
}
f()
f(F)
Będzie to działać bez błędu. Ale wykonanie wewnętrznego kodu funkcji powoduje błąd, ponieważ R prawdopodobnie zakłada, że instrukcja jest zakończona po pierwszym przypisaniua <- 1
i nie może poradzić sobie z innym.
exp=T
if (exp)
a <- 1
else
a <- 2
Ma to dla mnie sens, ale wciąż chciałbym zrozumieć, dlaczego zachowanie wykonanego kodu różni się, gdy wykonywany jest wewnątrz lub na zewnątrz funkcji.