У меня есть R script, который принимает аргументы командной строки, где верхняя строка:
#!/usr/bin/Rscript --slave
Я хотел прервать выполнение в функции (чтобы я мог интерактивно использовать переменные данных, которые были загружены этой точкой, чтобы выработать следующий бит кода, который мне нужно написать). Я добавил это внутри рассматриваемой функции:
browser()
но он игнорируется. Немного о поиске говорит, что это может быть потому, что программа работает в неинтерактивном режиме. Но даже больше поиска не отслеживает, как я переключаю script вне неинтерактивный режим, чтобы браузер() работал. Что-то вроде функции browser_yes_I_really_mean_it()
.
P.S. Я хочу, чтобы избежать изменения остальных script, если это вообще возможно. Мой текущий подход заключается в копировании и вставке фрагментов кода, необходимых для подготовки данных, в интерактивную сессию; но по мере того, как script становится все более сложным, становится все более и более необоснованным.
ОБНОВЛЕНИЕ: для кого-то другого с тем же вопросом, кажется, ответ на фактический вопрос заключается в том, что это невозможно. Как только вы запустите R в неинтерактивном режиме, штамп будет отлит. Таким образом, данные ответы обходные: либо вы взломаете свой код (помните, что потом распаковываете его), либо рефакторинг облегчает отладку. (Этот комментарий не предназначен для критики ответов, предлагаемый рефакторинг делает очиститель кода в любом случае.)