Я использую проверки данных в моем коде, например, следующий:остановка выполнения кода в R
if (...)
stop(paste('Warning: Weights do not sum up to 1')
Проблема в том, что если условие истинно, и предупреждение появляется в консоли, код не прекратить бег. Если вы скрыты в длинном коде, нужно всегда прокручивать его на выходе консоли, чтобы увидеть, появилось ли предупреждение.
Есть ли способ рассказать R, чтобы перехватить ВСЕ код, когда появляется предупреждение о прекращении, и условие истинно? Что-то вроде BREAK?
Я не являюсь воспроизводимым примером здесь, потому что мой код довольно длинный.
EDIT:
Вот мини-пример:
Когда я исполняю
a=1+2
if (a==3)
stop('a equals 3')
b=4
1+1
Я хотел бы, чтобы остановить после печати
> a=1+2
>
> if (a==3)
+ stop('a equals 3')
Error: a equals 3
но R выполняет все, также последняя часть:
> a=1+2
>
> if (a==3)
+ stop('a equals 3')
Error: a equals 3
>
>
> b=4
>
> 1+1
[1] 2
Having «довольно длинный» код не повод, чтобы не приложить усилия, чтобы создать воспроизводимый пример. Это помогает не только тем, кто хотел бы помочь, и много раз вы выясните решение в этом процессе. –
Итак, вы источник что-то вроде 'stop (" foo_error "); print (iris) 'и хотите избежать эха/оценки« print (iris) »? 'stop' предназначен для использования в функциях, и вы можете обернуть свой код в функции. Например, 'fun <- function() {stop (" foo_error "); печать (радужная оболочка)}; весело() '. – Roland
Вы делаете «источник все» или похожий? – sdgfsdh