Я согласен с большинством плакатов об использовании в качестве тонко замаскированного goto. Макросы также упоминаются как потенциальная мотивация для написания кода в стиле.
Я также видел эту конструкцию, используемую в смешанных средах C / C ++ как исключение бедных. «Do {} while (false)» с «break» можно использовать для перехода в конец блока кода, если в цикле будет встречено что-то, что обычно требует исключения.
Я также использовал эту конструкцию, используемую в магазинах, где применяется идеология «единственного возвращения на каждую функцию». Опять же, это вместо явного «goto», но мотивация заключается в том, чтобы избежать множественных точек возврата, а не «пропустить» код и продолжить фактическое выполнение внутри этой функции.
Это то, что вы ищете?
plot_2 <-
Infil_Data2 %>%
split(.$Site_ID) %>%
map2(names(.), ~ggplot(.x, aes(Sqrt_Time.x, Cal_Vol_cm)) +
geom_point() +
labs(title = paste(.y)) +
theme(plot.margin = unit(c(1, 5, 1, 1), "cm")) +
annotation_custom(tableGrob(cbind(c("Alpha1", "n_ho", "A"),
c(.x$Alpha1[1],
.x$n_ho[1],
.x$A[1])),
rows = NULL),
xmin = unit(20, "npc"), xmax = unit(25, "npc"),
ymin = 0.05, ymax = 0.1))
(я исключил некоторые коды для слоев geom / другие аспекты внешнего вида графика, так как я не думаю, что они являются центральными заданный вопрос.)