Разрешено ли нам быть немного более креативным? Не могли бы вы изменить свою проблему, чтобы воспользоваться преимуществами следующего подхода, где операция основана на векторах?
x <- 1:3
y <- x[x-2 < 0] - 2 + 100 # I'm leaving the "- 2" separate to highlight the parallel to your code
y
Если, однако, в основе вопроса лежит более глубокая форма, и нам нужно сейчас следовать этой схеме, возможно, немного ее подправить ...
foo <- function(x) {
y <- x - 2
if (y != 0) {
z <- y + 100
z
} # else implicitly return value is NULL
}
for (i in 1:3) {
if (is.numeric(result <- foo(i))) {
print(result)
} else {
break
}
}