2011-12-12 6 views
8

Я начинаю отладку в R с помощью traceback() и option(error=recover) и debug(function), чтобы попытаться найти причину ошибки. У меня есть пакет R.как пропустить цикл при отладке кода R

Я отлаживаю функцию с большой петлей, и я хочу «выйти» из цикла в следующий блок. Как я могу это сделать? Я знаю, что вы можете установить точки останова, но я не знаю, где цикл, а какой следующий шаг. Я в единственной текстовой среде, поэтому графическая помощь отладочного пакета, вероятно, не помогает.

Подводя итог, как выйти из цикла при отладке и как войти в функцию для отладки, когда вы уже отлаживаете?

Возможно, на это уже был дан ответ, и я пропустил его. Я видел несколько вопросов отладки SO R, но никто не ответил на эту часть, о которой я знаю.

ответ

9

Я уверен, что система помощи R работает, даже если вы не используете графический интерфейс. Попробуйте ввести ?debug и посмотреть, что произойдет. Вы должны быть проинформированы, что набрав c или cont будет

продолжаются до конца текущего контекста: например, до конца цикла, если внутри цикла или до конца функции.

+1

'browser()' также может быть полезным, чтобы вы могли видеть, какие значения ваших переменных находятся в любой точке цикла, см. '? Browser'. – Gregor

+3

Я только что понял, что 'c' переходит в конец текущего контекста, когда я нажал' c', чтобы перейти к концу скрипта и только дошел до конца цикла. Я получил от раздачи курса «c» или «cont» («Продолжить выполнение без единого шага»), и это меня вводило в заблуждение. благодаря –

Смежные вопросы